diff --git a/.github/actions/lib/action-context.js b/.github/actions/lib/action-context.js new file mode 100644 index 0000000000..137abec732 --- /dev/null +++ b/.github/actions/lib/action-context.js @@ -0,0 +1,15 @@ +import { readFileSync } from 'fs' + +// Parses the action event payload sets repo and owner to an object from runner environment +export function getActionContext() { + const context = JSON.parse(readFileSync(process.env.GITHUB_EVENT_PATH, 'utf8')) + if (context.repository) { + context.owner = context.repository.owner.login + context.repo = context.repository.name + } else { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/') + context.owner = owner + context.repo = repo + } + return context +} diff --git a/.github/actions/lib/debug-time-taken.js b/.github/actions/lib/debug-time-taken.js new file mode 100644 index 0000000000..bfd484ea1f --- /dev/null +++ b/.github/actions/lib/debug-time-taken.js @@ -0,0 +1,32 @@ +const timeInstances = new Map() + +/* Meant to be called before debugTimeEnd with the same instanceName to behave like console.time() */ +export function debugTimeStart(core, instanceName) { + if (timeInstances.has(instanceName)) { + core.warn(`instanceName: ${instanceName} has already been used for a debug instance.`) + return + } + + timeInstances.set(instanceName, new Date()) +} + +/* Meant to be called after debugTimeStart with the same instanceName to behave like console.timeEnd() */ +export function debugTimeEnd(core, instanceName) { + if (!timeInstances.has(instanceName)) { + core.warn( + `Invalid instanceName: ${instanceName} in debugTimeEnd. Did you call debugTimeStart first with the same instanceName?` + ) + return + } + const startTime = timeInstances.get(instanceName) + const ms = new Date().getTime() - startTime.getTime() + const seconds = ms / 1000 + const minutes = seconds / 60 + let display = `${ms.toFixed(1)} ms` + if (minutes > 1) { + display = `${minutes.toFixed(1)} minutes` + } else if (seconds > 1) { + display = `${seconds.toFixed(1)} seconds` + } + core.debug(`Completed ${instanceName} in ${display}`) +} diff --git a/.github/actions/lib/get-env-inputs.js b/.github/actions/lib/get-env-inputs.js new file mode 100644 index 0000000000..42aa5119fb --- /dev/null +++ b/.github/actions/lib/get-env-inputs.js @@ -0,0 +1,18 @@ +/* + * Validates and returns an object of expected environment variables + * + * @param {Array} options - Array of environment variables expected + * + * @returns {Object} - key value of expected env variables and their values + */ +export function getEnvInputs(options) { + return Object.fromEntries( + options.map((envVarName) => { + const envVarValue = process.env[envVarName] + if (!envVarValue) { + throw new Error(`You must supply a ${envVarName} environment variable`) + } + return [envVarName, envVarValue] + }) + ) +} diff --git a/.github/actions/lib/upload-artifact.js b/.github/actions/lib/upload-artifact.js new file mode 100644 index 0000000000..143e1824f2 --- /dev/null +++ b/.github/actions/lib/upload-artifact.js @@ -0,0 +1,16 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import fs from 'fs' + +/* Writes string to file to be uploaded as an action artifact. + * Useful for debugging or passing results to downstream action + * + * @param {string} name - name of artifact + * @param {string} contents - string contents of artifact + */ +export async function uploadArtifact(name, contents) { + if (!fs.existsSync('./artifacts')) { + fs.mkdirSync('./artifacts/') + } + const filePath = `./artifacts/${name}` + fs.writeFileSync(filePath, contents) +} diff --git a/.github/actions/rendered-content-link-checker.js b/.github/actions/rendered-content-link-checker.js new file mode 100755 index 0000000000..7b762399da --- /dev/null +++ b/.github/actions/rendered-content-link-checker.js @@ -0,0 +1,987 @@ +/* See function main in this file for documentation */ + +import fs from 'fs' +import path from 'path' +import cheerio from 'cheerio' +import coreLib from '@actions/core' +import got, { RequestError } from 'got' +import chalk from 'chalk' + +import shortVersions from '../../middleware/contextualizers/short-versions.js' +import contextualize from '../../middleware/context.js' +import getRedirect from '../../lib/get-redirect.js' +import warmServer from '../../lib/warm-server.js' +import renderContent from '../../lib/render-content/index.js' +import { deprecated } from '../../lib/enterprise-server-releases.js' +import excludedLinks from '../../lib/excluded-links.js' +import { getEnvInputs } from './lib/get-env-inputs.js' +import { debugTimeEnd, debugTimeStart } from './lib/debug-time-taken.js' +import { uploadArtifact as uploadArtifactLib } from './lib/upload-artifact.js' +import github from '../../script/helpers/github.js' +import { getActionContext } from './lib/action-context.js' + +const STATIC_PREFIXES = { + assets: path.resolve('assets'), + public: path.resolve(path.join('data', 'graphql')), +} +// Sanity check that these are valid paths +Object.entries(STATIC_PREFIXES).forEach(([key, value]) => { + if (!fs.existsSync(value)) { + throw new Error(`Can't find static prefix (${key}): ${value}`) + } +}) + +// Return a function that can as quickly as possible check if a certain +// href input should be skipped. +// Do this so we can use a `Set` and a `iterable.some()` for a speedier +// check. +function linksToSkipFactory() { + const set = new Set(excludedLinks.filter((regexOrURL) => typeof regexOrURL === 'string')) + const regexes = excludedLinks.filter((regexOrURL) => regexOrURL instanceof RegExp) + return (href) => set.has(href) || regexes.some((regex) => regex.test(href)) +} + +const linksToSkip = linksToSkipFactory(excludedLinks) + +const CONTENT_ROOT = path.resolve('content') + +const deprecatedVersionPrefixesRegex = new RegExp( + `enterprise(-server@|/)(${deprecated.join('|')})(/|$)` +) + +// When this file is invoked directly from action as opposed to being imported +if (import.meta.url.endsWith(process.argv[1])) { + // Validate that required action inputs are present + getEnvInputs(['GITHUB_TOKEN']) + + // Optional env vars + const { + ACTION_RUN_URL, + CREATE_REPORT, + CHECK_EXTERNAL_LINKS, + LEVEL, + SHOULD_COMMENT, + COMMENT_LIMIT_TO_EXTERNAL_LINKS, + FAIL_ON_FLAW, + FILES_CHANGED, + REPORT_REPOSITORY, + REPORT_AUTHOR, + REPORT_LABEL, + } = process.env + + const octokit = github() + + // Parse changed files JSON string + let files + if (FILES_CHANGED) { + const fileList = JSON.parse(FILES_CHANGED) + if (Array.isArray(fileList) && fileList.length > 0) { + files = fileList + } else { + console.warn(`No changed files found in PR: ${FILES_CHANGED}. Exiting...`) + process.exit(0) + } + } + + const opts = { + level: LEVEL, + files, + verbose: true, + linkReports: true, + checkImages: true, + patient: true, + random: false, + language: 'en', + actionUrl: ACTION_RUN_URL, + checkExternalLinks: CHECK_EXTERNAL_LINKS === 'true', + shouldComment: SHOULD_COMMENT === 'true', + commentLimitToExternalLinks: COMMENT_LIMIT_TO_EXTERNAL_LINKS === 'true', + failOnFlaw: FAIL_ON_FLAW === 'true', + createReport: CREATE_REPORT === 'true', + reportRepository: REPORT_REPOSITORY, + reportLabel: REPORT_LABEL, + reportAuthor: REPORT_AUTHOR, + actionContext: getActionContext(), + } + + main(coreLib, octokit, uploadArtifactLib, opts, {}) +} + +/* + * Renders all or specified pages to gather all links on them and verify them. + * Checks internal links deterministically using filesystem and external links via external requests. + * Links are considered broken for reporting and commenting if they are broken at the specified "level". + * e.g. redirects are considered a "warning" while 404s are considered "critical" + * + * When there are broken links (flaws) this action can: + * 1. Create a report issue in a specified reportRepository and link it to previous reportIssues + * 2. Create a comment similar to a report on a PR that triggered this action + * 3. Fail using core.setFailed when there are broken links + * + * opts: + * level {"warning" | "critical"} Counts links as "flaws" based on this value and status criteria + * files {Array} - Limit link checking to specific files (usually changed in PR) + * language {string | Array} - Render pages to check from included language (or languages array) + * checkExternalLinks {boolean} - Checks non docs.github.com urls (takes significantly longer) + * checkImages {boolean} - Check image src urls + * failOnFlaw {boolean} - When true will fail using core.setFailed when links are broken according to level (flaw) + * shouldComment {boolean} - When true attempts to comment flaws on PR that triggered action + * commentLimitToExternalLinks {boolean} - When true PR comment only includes external links + * createReport {boolean} - Creates an issue comment in reportRepository with links considered broken (flaws) + * linkReports {boolean} - When createReport is true, link the issue report to previous report(s) via comments + * reportRepository {string} - Repository in form of "owner/repo-name" that report issue will be created in + * reportLabel {string} - Label assigned to report issue, + * reportAuthor {string} - Expected author of previous report issue for linking reports (a bot user like Docubot) + * actionUrl {string} - Used to link report or comment to the action instance for debugging + * actionContext {object} - Event payload context when run from action or injected. Should include { repo, owner } + * verbose {boolean} - Set to true for more verbose logging + * random {boolean} - Randomize page order for debugging when true + * patient {boolean} - Wait longer and retry more times for rate-limited external URLS + * + */ +async function main(core, octokit, uploadArtifact, opts = {}) { + const { + level = 'warning', + files = [], + random, + language = 'en', + filter, + max, + verbose, + checkExternalLinks = false, + createReport = false, + failOnFlaw = false, + shouldComment = false, + } = opts + + // Note! The reason we're using `warmServer()` in this script, + // even though there's no server involved, is because + // the `contextualize()` function calls it. + // And because warmServer() is actually idempotent, meaning it's + // cheap to call it more than once, it would be expensive to call it + // twice unnecessarily. + // If we'd manually do the same operations that `warmServer()` does + // here (e.g. `loadPageMap()`), we'd end up having to do it all over + // again, the next time `contextualize()` is called. + const { redirects, pages: pageMap, pageList } = await warmServer() + + if (files.length) { + core.debug(`Limitting to files list: ${files.join(', ')}`) + } + + let languages = language + if (!Array.isArray(languages)) { + languages = [languages] + } + + const filters = filter || [] + if (!Array.isArray(filters)) { + core.warning(`filters, ${filters} is not an array`) + } + + if (random) { + shuffle(pageList) + } + + debugTimeStart(core, 'getPages') + const pages = getPages(pageList, languages, filters, files, max) + debugTimeEnd(core, 'getPages') + + if (checkExternalLinks && pages.length >= 100) { + core.warning( + `Warning! Checking external URLs can be time costly. You're testing ${pages.length} pages.` + ) + } + + debugTimeStart(core, 'processPages') + const flawsGroups = await Promise.all( + pages.map((page) => processPage(core, page, pageMap, redirects, opts)) + ) + debugTimeEnd(core, 'processPages') + + const flaws = flawsGroups.flat() + + printGlobalCacheHitRatio(core) + + if (verbose) { + summarizeCounts(core, pages) + core.info(`Checked ${(globalCacheHitCount + globalCacheMissCount).toLocaleString()} links`) + } + + summarizeFlaws(core, flaws) + + if (flaws.length > 0) { + await uploadJsonFlawsArtifact(uploadArtifact, flaws, opts) + core.info(`All flaws written to artifact log.`) + if (createReport) { + core.info(`Creating issue for flaws...`) + const newReport = await createReportIssue(core, octokit, flaws, opts) + if (linkReports) { + await linkReports(core, octokit, newReport, opts) + } + } + if (shouldComment) { + await commentOnPR(core, octokit, flaws, opts) + } + + const flawsInLevel = flaws.filter((flaw) => { + if (level === 'critical') { + return flaw?.flaw?.CRITICAL + } + // WARNING level and above + return true + }) + + if (flawsInLevel.length > 0) { + core.setOutput('has_flaws_at_level', flawsInLevel.length > 0) + if (failOnFlaw) { + core.setFailed( + `${flaws.length + 1} broken links found. See action artifact uploads for details` + ) + } + } + } +} + +async function createReportIssue(core, octokit, flaws, opts) { + const { reportRepository = 'github/docs-content', reportLabel = 'broken link report' } = opts + const [owner, repo] = reportRepository.split('/') + + const brokenLinksDisplay = flawIssueDisplay(flaws, opts) + + // Create issue with broken links + let newReport + try { + const { data } = await octokit.request('POST /repos/{owner}/{repo}/issues', { + owner, + repo, + title: `${flaws.length + 1} broken links found`, + body: brokenLinksDisplay, + labels: [reportLabel], + }) + newReport = data + core.info(`Created broken links report at ${newReport.html_url}\n`) + } catch (error) { + core.error(error) + core.setFailed('Error creating new issue') + throw error + } + + return newReport +} + +async function linkReports(core, octokit, newReport, opts) { + const { + reportRepository = 'github/docs-content', + reportAuthor = 'docubot', + reportLabel = 'broken link report', + } = opts + + const [owner, repo] = reportRepository.split('/') + + core.debug('Attempting to link reports...') + // Find previous broken link report issue + let previousReports + try { + previousReports = await octokit.rest.issues.listForRepo({ + owner, + repo, + creator: reportAuthor, + labels: reportLabel, + state: 'all', // We want to get the previous report, even if it is closed + sort: 'created', + direction: 'desc', + per_page: 25, + }) + previousReports = previousReports.data + } catch (error) { + core.setFailed('Error listing issues for repo') + throw error + } + core.debug(`Found ${previousReports.length} previous reports`) + + if (previousReports.length <= 1) { + core.info('No previous reports to link to') + return + } + + // 2nd report should be most recent previous report + const previousReport = previousReports[1] + + // Comment the old report link on the new report + try { + await octokit.rest.issues.createComment({ + owner, + repo, + issue_number: newReport.number, + body: `⬅️ [Previous report](${previousReport.html_url})`, + }) + core.info(`Linked old report to new report via comment on new report, #${newReport.number}`) + } catch (error) { + core.setFailed(`Error commenting on newReport, #${newReport.number}`) + throw error + } + + // Comment on all previous reports that are still open + for (const previousReport of previousReports) { + if (previousReport.state === 'closed' || previousReport.html_url === newReport.html_url) { + continue + } + + // If an old report is not assigned to someone we close it + const shouldClose = !previousReport.assignees.length + let body = `➡️ [Newer report](${newReport.html_url})` + if (shouldClose) { + body += '\n\nClosing in favor of newer report since there are no assignees on this issue' + } + try { + await octokit.rest.issues.createComment({ + owner, + repo, + issue_number: previousReport.number, + body, + }) + core.info( + `Linked old report to new report via comment on old report: #${previousReport.number}.` + ) + } catch (error) { + core.setFailed(`Error commenting on previousReport, #${previousReport.number}`) + throw error + } + if (shouldClose) { + try { + await octokit.rest.issues.update({ + owner, + repo, + issue_number: previousReport.number, + state: 'closed', + }) + core.info(`Closing old report: #${previousReport.number} because it doesn't have assignees`) + } catch (error) { + core.setFailed(`Error closing previousReport, #${previousReport.number}`) + throw error + } + } + } +} + +async function commentOnPR(core, octokit, flaws, opts) { + const { actionContext = {} } = opts + const { owner, repo } = actionContext + const pullNumber = actionContext?.pull_request?.number + if (!owner || !repo || !pullNumber) { + core.warning(`commentOnPR called outside of PR action runner context. Not creating comment.`) + return + } + + const body = flawIssueDisplay(flaws, opts, false) + // Since failed external urls aren't included in PR comment, body may be empty + if (!body) { + core.info('No flaws qualify for comment') + return + } + + try { + await octokit.rest.issues.createComment({ + owner, + repo, + issue_number: pullNumber, + body, + }) + core.info(`Created comment on PR: ${pullNumber}`) + } catch (error) { + core.setFailed(`Error commenting on PR when there are flaws`) + throw error + } +} + +function flawIssueDisplay(flaws, opts, includeExternalLinkList = true) { + let output = '' + let flawsToDisplay = 0 + + // Group broken links for each page + const hrefsOnPageGroup = {} + for (const { page, permalink, href, text, src, flaw } of flaws) { + // When we don't want to include external links in PR comments + if (opts.commentLimitToExternalLinks && !flaw.isExternal) { + continue + } + + flawsToDisplay++ + + const pageKey = page.fullPath + if (!hrefsOnPageGroup[pageKey]) { + hrefsOnPageGroup[pageKey] = {} + } + + const linkKey = href || src + if (!hrefsOnPageGroup[pageKey][linkKey]) { + hrefsOnPageGroup[page.fullPath][linkKey] = { href, text, src, flaw, permalinkHrefs: [] } + } + + if (!hrefsOnPageGroup[pageKey][linkKey].permalinkHrefs.includes(permalink.href)) { + hrefsOnPageGroup[pageKey][linkKey].permalinkHrefs.push(permalink.href) + } + } + + // Don't comment if there are no qualifying flaws + if (!flawsToDisplay) { + return '' + } + + // Build flaw display text + for (const [pagePath, pageHrefs] of Object.entries(hrefsOnPageGroup)) { + const fullPath = prettyFullPath(pagePath) + output += `\n\n### In \`${fullPath}\`\n` + + for (const [, hrefObj] of Object.entries(pageHrefs)) { + if (hrefObj.href) { + output += `\n\n - Href: [${hrefObj.href}](${hrefObj.href})` + output += `\n - Text: ${hrefObj.text}` + } else if (hrefObj.src) { + output += `\n\n - Image src: [${hrefObj.src}](${hrefObj.src})` + } else { + output += `\n\n - WORKFLOW ERROR: Flaw has neither 'href' nor 'src'` + } + output += `\n - Flaw: \`${ + hrefObj.flaw.CRITICAL ? hrefObj.flaw.CRITICAL : hrefObj.flaw.WARNING + }\`` + output += `\n - On permalinks` + for (const permalinkHref of hrefObj.permalinkHrefs) { + output += `\n - \`${permalinkHref}\`` + } + } + } + + if (includeExternalLinkList) { + output += + '\n\n## External URLs\n\nThe following external URLs must be verified manually. If an external URL gives a false negative, add it to the file `lib/excluded-links.js`\n\n' + for (const link of excludedLinks) { + if (typeof link === 'string') { + output += `\n - [${link}](${link})` + } else { + output += `\n - Pattern: \`${link.toString()}\`` + } + } + } + + return `${flawsToDisplay} broken${ + opts.commentLimitToExternalLinks ? ' **external** ' : ' ' + }links found in [this](${opts.actionUrl}) workflow.\n${output}` +} + +function printGlobalCacheHitRatio(core) { + const hits = globalCacheHitCount + const misses = globalCacheMissCount + // It could be that the files that were tested didn't have a single + // link in them. In that case, there's no cache misses or hits at all. + // So avoid the division by zero. + if (misses + hits) { + core.debug( + `Cache hit ratio: ${hits.toLocaleString()} of ${(misses + hits).toLocaleString()} (${( + (100 * hits) / + (misses + hits) + ).toFixed(1)}%)` + ) + } +} + +function getPages(pageList, languages, filters, files, max) { + return pageList + .filter((page) => { + if (languages.length && !languages.includes(page.languageCode)) { + return false + } + + if (filters.length && !filters.find((filter) => page.relativePath.includes(filter))) { + return false + } + + if ( + files.length && + // The reason for checking each file against the `relativePath` + // or the `fullPath` is to make it flexible for the user. + !files.find((file) => { + if (page.relativePath === file) return true + if (page.fullPath === file) return true + // The `page.relativePath` will always be *from* the containing + // directory it came from an might not be relative to the repo + // root. I.e. + // `content/education/quickstart.md` is the path relative to + // the repo root. But the `page.relativePath` will + // in this case be `education/quickstart.md`. + // So give it one last chance to relate to the repo root. + // This is important because you might use `git diff --name-only` + // to get the list of files to focus specifically on. + if (path.join(CONTENT_ROOT, page.relativePath) === path.resolve(file)) return true + return false + }) + ) { + return false + } + + return true + }) + .slice(0, max ? Math.min(max, pageList.length) : pageList.length) +} + +async function processPage(core, page, pageMap, redirects, opts) { + const { verbose, verboseUrl } = opts + + const allFlawsEach = await Promise.all( + page.permalinks.map((permalink) => { + return processPermalink(core, permalink, page, pageMap, redirects, opts) + }) + ) + + const allFlaws = allFlawsEach.flat() + + if (allFlaws.length > 0) { + if (verbose) { + printFlaws(core, allFlaws, { verboseUrl }) + } + } + + return allFlaws +} + +async function processPermalink(core, permalink, page, pageMap, redirects, opts) { + const { + level = 'critical', + checkAnchors, + checkImages, + checkExternalLinks, + verbose, + patient, + } = opts + const html = await renderInnerHTML(page, permalink) + const $ = cheerio.load(html) + const flaws = [] + const links = [] + $('a[href]').each((i, link) => { + links.push(link) + }) + const newFlaws = await Promise.all( + links.map(async (link) => { + const { href } = link.attribs + + // The global cache can't be used for anchor links because they + // depend on each page it renders + if (!href.startsWith('#')) { + if (globalHrefCheckCache.has(href)) { + globalCacheHitCount++ + return globalHrefCheckCache.get(href) + } + globalCacheMissCount++ + } + + const flaw = await checkHrefLink( + core, + href, + $, + redirects, + pageMap, + checkAnchors, + checkExternalLinks, + { verbose, patient } + ) + + if (flaw) { + if (level === 'critical' && !flaw.CRITICAL) { + return + } + const text = $(link).text() + if (!href.startsWith('#')) { + globalHrefCheckCache.set(href, { href, flaw, text }) + } + return { href, flaw, text } + } else { + if (!href.startsWith('#')) { + globalHrefCheckCache.set(href, flaw) + } + } + }) + ) + + for (const flaw of newFlaws) { + if (flaw) { + flaws.push(Object.assign(flaw, { page, permalink })) + } + } + + if (checkImages) { + $('img[src]').each((i, img) => { + let { src } = img.attribs + + // Images get a cache-busting prefix injected in the image + // E.g. + // We need to remove that otherwise we can't look up the image + // on disk. + src = src.replace(/\/cb-\d+\//, '/') + + if (globalImageSrcCheckCache.has(src)) { + globalCacheHitCount++ + return globalImageSrcCheckCache.get(src) + } + + const flaw = checkImageSrc(src, $) + + globalImageSrcCheckCache.set(src, flaw) + + if (flaw) { + if (level === 'critical' && !flaw.CRITICAL) { + return + } + flaws.push({ permalink, page, src, flaw }) + } + }) + } + + return flaws +} + +async function uploadJsonFlawsArtifact( + uploadArtifact, + flaws, + { verboseUrl = null } = {}, + artifactName = 'all-rendered-link-flaws.json' +) { + const printableFlaws = {} + for (const { page, permalink, href, text, src, flaw } of flaws) { + const fullPath = prettyFullPath(page.fullPath) + + if (!(fullPath in printableFlaws)) { + printableFlaws[fullPath] = [] + } + if (href) { + printableFlaws[fullPath].push({ + href, + url: verboseUrl ? new URL(permalink.href, verboseUrl).toString() : permalink.href, + text, + flaw, + }) + } else if (src) { + printableFlaws[fullPath].push({ + src, + }) + } + } + const message = JSON.stringify(printableFlaws, undefined, 2) + return uploadArtifact(artifactName, message) +} + +function printFlaws(core, flaws, { verboseUrl = null } = {}) { + let previousPage = null + let previousPermalink = null + + for (const { page, permalink, href, text, src, flaw } of flaws) { + const fullPath = prettyFullPath(page.fullPath) + if (page !== previousPage) { + core.info(`PAGE: ${chalk.bold(fullPath)}`) + } + previousPage = page + + if (href) { + if (previousPermalink !== permalink.href) { + if (verboseUrl) { + core.info(` URL: ${new URL(permalink.href, verboseUrl).toString()}`) + } else { + core.info(` PERMALINK: ${permalink.href}`) + } + } + previousPermalink = permalink.href + + core.info(` HREF: ${chalk.bold(href)}`) + core.info(` TEXT: ${text}`) + } else if (src) { + core.info(` IMG SRC: ${chalk.bold(src)}`) + } else { + throw new Error("Flaw has neither 'href' nor 'src'") + } + + core.info(` FLAW: ${flaw.CRITICAL ? chalk.red(flaw.CRITICAL) : chalk.yellow(flaw.WARNING)}`) + } +} + +// Given a full path, change to so it's relative to the `cwd()` so that you +// can take it from the output and paste it to something like `code ...here...` +// The problem with displaying the full path is that it's quite noisy and +// takes up a lot of space. Sure, you can copy and paste it in front of +// `vi` or `ls` or `code` but if we display it relative to `cwd()` you +// can still paste it to the next command but it's not taking up so much +// space. +function prettyFullPath(fullPath) { + return path.relative(process.cwd(), fullPath) +} + +const globalHrefCheckCache = new Map() +const globalImageSrcCheckCache = new Map() +let globalCacheHitCount = 0 +let globalCacheMissCount = 0 + +async function checkHrefLink( + core, + href, + $, + redirects, + pageMap, + checkAnchors = false, + checkExternalLinks = false, + { verbose = false, patient = false } = {} +) { + if (href === '#') { + if (checkAnchors) { + return { WARNING: 'Link is just an empty `#`' } + } + } else if (href.startsWith('#')) { + if (checkAnchors) { + const countDOMItems = $(href).length + if (countDOMItems !== 1) { + return { WARNING: `Anchor is an empty string` } + } + } + } else if (href.startsWith('/')) { + const pathname = new URL(href, 'http://example.com').pathname + + // Remember, if the Markdown has something like + // + // See [my link][/some/page/] + // + // In the post-processing, that will actually become + // + // See my link + // + // But, if that link was a redirect, that would have been left + // untouched. + if (pathname.endsWith('/')) { + return { WARNING: 'Links with a trailing / will always redirect' } + } else { + if (pathname.split('/')[1] in STATIC_PREFIXES) { + const staticFilePath = path.join( + STATIC_PREFIXES[pathname.split('/')[1]], + pathname.split(path.sep).slice(2).join(path.sep) + ) + if (!fs.existsSync(staticFilePath)) { + return { CRITICAL: `Static file not found ${staticFilePath} (${pathname})` } + } + } else if (getRedirect(pathname, { redirects, pages: pageMap })) { + return { WARNING: `Redirect to ${getRedirect(pathname, { redirects, pages: pageMap })}` } + } else if (!pageMap[pathname]) { + if (deprecatedVersionPrefixesRegex.test(pathname)) { + return + } + + return { CRITICAL: 'Broken link' } + } + } + } else if (checkExternalLinks) { + if (!href.startsWith('https://')) { + return { WARNING: `Will not check external URLs that are not HTTPS (${href})` } + } + if (linksToSkip(href)) { + return + } + const { ok, ...info } = await checkExternalURL(core, href, { verbose, patient }) + if (!ok) { + return { CRITICAL: `Broken external link (${JSON.stringify(info)})`, isExternal: true } + } + } +} + +const _fetchCache = new Map() +async function checkExternalURL(core, url, { verbose = false, patient = false } = {}) { + if (!url.startsWith('https://')) throw new Error('Invalid URL') + const cleanURL = url.split('#')[0] + if (!_fetchCache.has(cleanURL)) { + _fetchCache.set(cleanURL, innerFetch(core, cleanURL, { verbose, patient })) + } + return _fetchCache.get(cleanURL) +} + +const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)) + +// Global for recording which domains we get rate-limited on. +// For example, if you got rate limited on `something.github.com/foo` +// and now we're asked to fetch for `something.github.com/bar` +// it's good to know to now bother yet. +const _rateLimitedDomains = new Map() + +async function innerFetch(core, url, config = {}) { + const { verbose, useGET, patient } = config + + const { hostname } = new URL(url) + if (_rateLimitedDomains.has(hostname)) { + await sleep(_rateLimitedDomains.get(hostname)) + } + // The way `got` does retries: + // + // sleep = 1000 * Math.pow(2, retry - 1) + Math.random() * 100 + // + // So, it means: + // + // 1. ~1000ms + // 2. ~2000ms + // 3. ~4000ms + // + // ...if the limit we set is 3. + // Our own timeout, in ./middleware/timeout.js defaults to 10 seconds. + // So there's no point in trying more attempts than 3 because it would + // just timeout on the 10s. (i.e. 1000 + 2000 + 4000 + 8000 > 10,000) + const retry = { + limit: patient ? 5 : 2, + } + const timeout = { request: patient ? 10000 : 2000 } + + const headers = { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + } + + const retries = config.retries || 0 + const httpFunction = useGET ? got.get : got.head + + if (verbose) core.info(`External URL ${useGET ? 'GET' : 'HEAD'}: ${url} (retries: ${retries})`) + try { + const r = await httpFunction(url, { + headers, + throwHttpErrors: false, + retry, + timeout, + }) + if (verbose) { + core.info( + `External URL ${useGET ? 'GET' : 'HEAD'} ${url}: ${r.statusCode} (retries: ${retries})` + ) + } + + // If we get rate limited, remember that this hostname is now all + // rate limited. And sleep for the number of seconds that the + // `retry-after` header indicated. + if (r.statusCode === 429) { + let sleepTime = Math.min( + 60_000, + Math.max(10_000, getRetryAfterSleep(r.headers['retry-after'])) + ) + // Sprinkle a little jitter so it doesn't all start again all + // at the same time + sleepTime += Math.random() * 10 * 1000 + // Give it a bit extra when we can be really patient + if (patient) sleepTime += 30 * 1000 + + _rateLimitedDomains.set(hostname, sleepTime + Math.random() * 10 * 1000) + if (verbose) + core.info( + chalk.yellow( + `Rate limited on ${hostname} (${url}). Sleeping for ${(sleepTime / 1000).toFixed(1)}s` + ) + ) + await sleep(sleepTime) + return innerFetch(core, url, Object.assign({}, config, { retries: retries + 1 })) + } else { + _rateLimitedDomains.delete(hostname) + } + + // Perhaps the server doesn't support HEAD requests. + // If so, try again with a regular GET. + if ((r.statusCode === 405 || r.statusCode === 404 || r.statusCode === 403) && !useGET) { + return innerFetch(core, url, Object.assign({}, config, { useGET: true })) + } + if (verbose) { + core.info((r.ok ? chalk.green : chalk.red)(`${r.statusCode} on ${url}`)) + } + return { ok: r.ok, statusCode: r.statusCode } + } catch (err) { + if (err instanceof RequestError) { + if (verbose) { + core.info(chalk.yellow(`RequestError (${err.message}) on ${url}`)) + } + return { ok: false, requestError: err.message } + } + throw err + } +} + +// Return number of milliseconds from a `Retry-After` header value +function getRetryAfterSleep(headerValue) { + if (!headerValue) return 0 + let ms = Math.round(parseFloat(headerValue) * 1000) + if (isNaN(ms)) { + ms = Math.max(0, new Date(headerValue) - new Date()) + } + return ms +} + +function checkImageSrc(src, $) { + const pathname = new URL(src, 'http://example.com').pathname + if (!pathname.startsWith('/')) { + return { WARNING: "External images can't not be checked" } + } + const prefix = pathname.split('/')[1] + if (prefix in STATIC_PREFIXES) { + const staticFilePath = path.join( + STATIC_PREFIXES[prefix], + pathname.split(path.sep).slice(2).join(path.sep) + ) + if (!fs.existsSync(staticFilePath)) { + return { CRITICAL: `Static file not found (${pathname})` } + } + } else { + return { WARNING: `Unrecognized image src prefix (${prefix})` } + } +} + +function summarizeFlaws(core, flaws) { + if (flaws.length) { + core.info( + chalk.bold( + `Found ${flaws.length.toLocaleString()} flaw${flaws.length === 1 ? '' : 's'} in total.` + ) + ) + } else { + core.info(chalk.green('No flaws found! 💖')) + } +} + +function summarizeCounts(core, pages) { + const count = pages.map((page) => page.permalinks.length).reduce((a, b) => a + b, 0) + core.info( + `Tested ${count.toLocaleString()} permalinks across ${pages.length.toLocaleString()} pages` + ) +} + +function shuffle(array) { + let currentIndex = array.length + let randomIndex + + // While there remain elements to shuffle... + while (currentIndex !== 0) { + // Pick a remaining element... + randomIndex = Math.floor(Math.random() * currentIndex) + currentIndex-- + + // And swap it with the current element. + ;[array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]] + } + + return array +} + +async function renderInnerHTML(page, permalink) { + const next = () => {} + const res = {} + + const pagePath = permalink.href + const req = { + path: pagePath, + language: permalink.languageCode, + pagePath, + cookies: {}, + } + await contextualize(req, res, next) + await shortVersions(req, res, next) + const context = Object.assign({}, req.context, { page }) + context.relativePath = page.relativePath + return await renderContent(page.markdown, context) +} + +export default main diff --git a/.github/workflows/azure-preview-env-deploy.yml b/.github/workflows/azure-preview-env-deploy.yml index 5aed121469..7df60ce3b4 100644 --- a/.github/workflows/azure-preview-env-deploy.yml +++ b/.github/workflows/azure-preview-env-deploy.yml @@ -45,7 +45,7 @@ jobs: # Ensure this is actually a pull request and not a merge group # If its a merge group, report success without doing anything # See https://bit.ly/3qB9nZW > If a job in a workflow is skipped due to a conditional, it will report its status as "Success". - if: (github.event.pull_request.head.sha || github.event.inputs.COMMIT_REF) && (github.event.number || github.event.inputs.PR_NUMBER || github.run_id) + if: ((github.event.pull_request.head.sha || github.event.inputs.COMMIT_REF) && (github.event.number || github.event.inputs.PR_NUMBER || github.run_id)) && (github.repository == 'github/docs-internal' || github.repository == 'github/docs') timeout-minutes: 15 environment: name: preview-env-${{ github.event.number }} diff --git a/.github/workflows/azure-preview-env-destroy.yml b/.github/workflows/azure-preview-env-destroy.yml index be47225893..b8b67e774c 100644 --- a/.github/workflows/azure-preview-env-destroy.yml +++ b/.github/workflows/azure-preview-env-destroy.yml @@ -28,6 +28,7 @@ jobs: destory-azure-preview-env: name: Destroy runs-on: ubuntu-latest + if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' timeout-minutes: 5 env: PR_NUMBER: ${{ github.event.number || github.event.inputs.PR_NUMBER }} diff --git a/.github/workflows/browser-test.yml b/.github/workflows/browser-test.yml index ac54746fc1..21efec43e0 100644 --- a/.github/workflows/browser-test.yml +++ b/.github/workflows/browser-test.yml @@ -32,6 +32,7 @@ env: jobs: build: + if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' runs-on: ${{ fromJSON('["ubuntu-latest", "ubuntu-20.04-xl"]')[github.repository == 'github/docs-internal'] }} steps: - name: Install a local Elasticsearch for testing diff --git a/.github/workflows/check-all-english-links.yml b/.github/workflows/check-all-english-links.yml deleted file mode 100644 index 10fe7804ba..0000000000 --- a/.github/workflows/check-all-english-links.yml +++ /dev/null @@ -1,162 +0,0 @@ -name: Check all English links - -# **What it does**: This script once a day checks all English links and reports in issues. -# **Why we have it**: We want to know if any links break. -# **Who does it impact**: Docs content. - -on: - workflow_dispatch: - schedule: - - cron: '40 19 * * *' # once a day at 19:40 UTC / 11:40 PST - -permissions: - contents: read - issues: write - -jobs: - check_all_english_links: - name: Check all links - if: github.repository == 'github/docs-internal' - runs-on: ubuntu-20.04-xl - env: - GITHUB_TOKEN: ${{ secrets.DOCUBOT_READORG_REPO_WORKFLOW_SCOPES }} - FIRST_RESPONDER_PROJECT: Docs content first responder - REPORT_AUTHOR: docubot - REPORT_LABEL: broken link report - REPORT_REPOSITORY: github/docs-content - steps: - - name: Check that gh CLI is installed - run: gh --version - - - name: Check out repo's default branch - uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 - - name: Setup Node - uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 - with: - node-version: '16.17.0' - cache: npm - - - name: Install dependencies - run: npm ci - - - name: Cache nextjs build - uses: actions/cache@48af2dc4a9e8278b89d7fa154b955c30c6aaab09 - with: - path: .next/cache - key: ${{ runner.os }}-nextjs-${{ hashFiles('package*.json') }} - - - name: Build server - run: npm run build - - - name: Start server in the background - env: - NODE_ENV: production - PORT: 4000 - # We don't want or need the changelog entries in this context. - CHANGELOG_DISABLED: true - # The default is 10s. But because this runs overnight, we can - # be a lot more patient. - REQUEST_TIMEOUT: 20000 - # Don't care about CDN caching image URLs - DISABLE_REWRITE_ASSET_URLS: true - run: | - node server.js > /tmp/stdout.log 2> /tmp/stderr.log & - sleep 6 - curl --retry-connrefused --retry 5 -I http://localhost:4000/ - - - if: ${{ failure() }} - name: Debug server outputs on errors - run: | - echo "____STDOUT____" - cat /tmp/stdout.log - echo "____STDERR____" - cat /tmp/stderr.log - - - name: Run script - timeout-minutes: 120 - env: - # The default is 300 which works OK on a fast macbook pro - # but not so well in Actions. - LINKINATOR_CONCURRENCY: 100 - LINKINATOR_LOG_FILE_PATH: linkinator.log - run: | - script/check-english-links.js > broken_links.md - - # check-english-links.js returns 0 if no links are broken, and 1 if any links - # are broken. When an Actions step's exit code is 1, the action run's job status - # is failure and the run ends. The following steps create an issue for the - # broken link report only if any links are broken, so `if: ${{ failure() }}` - # ensures the steps run despite the previous step's failure of the job. - # - # https://docs.github.com/actions/reference/context-and-expression-syntax-for-github-actions#job-status-check-functions - - - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 - with: - name: linkinator_log - path: linkinator.log - - uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535 - if: ${{ failure() }} - with: - name: broken_links - path: ./broken_links.md - - if: ${{ failure() }} - name: Get title for issue - id: check - run: echo "::set-output name=title::$(head -1 broken_links.md)" - - if: ${{ failure() }} - name: Create issue from file - id: broken-link-report - uses: peter-evans/create-issue-from-file@b4f9ee0a9d4abbfc6986601d9b1a4f8f8e74c77e - with: - token: ${{ env.GITHUB_TOKEN }} - title: ${{ steps.check.outputs.title }} - content-filepath: ./broken_links.md - repository: ${{ env.REPORT_REPOSITORY }} - labels: ${{ env.REPORT_LABEL }} - - if: ${{ failure() }} - name: Close and/or comment on old issues - env: - NEW_REPORT_URL: 'https://github.com/${{ env.REPORT_REPOSITORY }}/issues/${{ steps.broken-link-report.outputs.issue-number }}' - run: | - gh alias set list-reports "issue list \ - --repo ${{ env.REPORT_REPOSITORY }} \ - --author ${{ env.REPORT_AUTHOR }} \ - --label '${{ env.REPORT_LABEL }}'" - - # Link to the previous report from the new report that triggered this - # workflow run. - - previous_report_url=$(gh list-reports \ - --state all \ - --limit 2 \ - --json url \ - --jq '.[].url' \ - | grep -v ${{ env.NEW_REPORT_URL }} | head -1) - - gh issue comment ${{ env.NEW_REPORT_URL }} --body "⬅️ [Previous report]($previous_report_url)" - - # If an old report is open and assigned to someone, link to the newer - # report without closing the old report. - - for issue_url in $(gh list-reports \ - --json assignees,url \ - --jq '.[] | select (.assignees != []) | .url'); do - if [ "$issue_url" != "${{ env.NEW_REPORT_URL }}" ]; then - gh issue comment $issue_url --body "➡️ [Newer report](${{ env.NEW_REPORT_URL }})" - fi - done - - # Link to the newer report from any older report that is still open, - # then close the older report and remove it from the first responder's - # project board. - - for issue_url in $(gh list-reports \ - --search 'no:assignee' \ - --json url \ - --jq '.[].url'); do - if [ "$issue_url" != "${{ env.NEW_REPORT_URL }}" ]; then - gh issue comment $issue_url --body "➡️ [Newer report](${{ env.NEW_REPORT_URL }})" - gh issue close $issue_url - gh issue edit $issue_url --remove-project "${{ env.FIRST_RESPONDER_PROJECT }}" - fi - done diff --git a/.github/workflows/code-lint.yml b/.github/workflows/code-lint.yml index c1050322b4..5308e63658 100644 --- a/.github/workflows/code-lint.yml +++ b/.github/workflows/code-lint.yml @@ -31,6 +31,7 @@ concurrency: jobs: lint: + if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' runs-on: ubuntu-latest steps: - name: Check out repo diff --git a/.github/workflows/content-changes-table-comment.yml b/.github/workflows/content-changes-table-comment.yml index f9de701362..5c0ab572c3 100644 --- a/.github/workflows/content-changes-table-comment.yml +++ b/.github/workflows/content-changes-table-comment.yml @@ -19,7 +19,7 @@ concurrency: jobs: PR-Preview-Links: - if: github.event.pull_request.user.login != 'Octomerger' + if: github.event.pull_request.user.login != 'Octomerger' && (github.repository == 'github/docs-internal' || github.repository == 'github/docs') name: Add staging/live links to PR runs-on: ubuntu-latest outputs: diff --git a/.github/workflows/link-check-all.yml b/.github/workflows/link-check-all.yml deleted file mode 100644 index 5d9d969291..0000000000 --- a/.github/workflows/link-check-all.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: 'Link Checker: All English' - -# **What it does**: Renders the content of every page and check all internal links. -# **Why we have it**: To make sure all links connect correctly. -# **Who does it impact**: Docs content. - -on: - workflow_dispatch: - merge_group: - push: - branches: - - main - pull_request: - -permissions: - contents: read - # Needed for the 'trilom/file-changes-action' action - pull-requests: read - -# This allows a subsequently queued workflow run to interrupt previous runs -concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' - cancel-in-progress: true - -jobs: - check-links: - runs-on: ${{ fromJSON('["ubuntu-latest", "ubuntu-20.04-xl"]')[github.repository == 'github/docs-internal'] }} - steps: - - name: Checkout - uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 - - - name: Setup node - uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 - with: - node-version: '16.17.0' - cache: npm - - - name: Install - run: npm ci - - - name: Gather files changed - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - PR: ${{ github.event.pull_request.number }} - HEAD: ${{ github.event.pull_request.head.ref || github.event.merge_group.head_ref }} - run: | - # Find the file diff in the pull request or merge group - # If its a pull request, use the faster call to the GitHub API - # For push, workflow_dispatch, and merge_group, use git diff - if [ -n "$PR" ] - then - echo __ running gh pr diff __ - DIFF=`gh pr diff $PR --name-only` - elif [ -n "$HEAD" ] - then - echo __ running git fetch main __ - git fetch origin main --depth 1 - echo __ running git diff __ - DIFF=`git diff --name-only origin/main` - else - echo __ no head, empty diff __ - DIFF='' - fi - # So we can inspect the output - echo __ DIFF found __ - echo $DIFF - - # Formats into single line JSON array, removing any empty strings - echo __ format, write to files.json __ - echo $DIFF | \ - tr ' ' '\n' | \ - jq --raw-input | \ - jq --slurp --compact-output 'map(select(length > 0))' \ - > $HOME/files.json - - - name: Link check (warnings, changed files) - env: - # Don't care about CDN caching image URLs - DISABLE_REWRITE_ASSET_URLS: true - run: | - # Note as of Aug 2022, we *don't* check external links - # on the pages you touched in the PR. We could enable that - # but it has the added risk of false positives blocking CI. - # We are using this script for the daily/nightly checker that - # checks external links too. Once we're confident it really works - # well, we can consider enabling it here on every content PR too. - - ./script/rendered-content-link-checker.js \ - --language en \ - --max 100 \ - --check-anchors \ - --check-images \ - --verbose \ - --list $HOME/files.json - - - name: Link check (critical, all files) - env: - # Don't care about CDN caching image URLs - DISABLE_REWRITE_ASSET_URLS: true - run: | - ./script/rendered-content-link-checker.js \ - --language en \ - --exit \ - --verbose \ - --check-images \ - --level critical diff --git a/.github/workflows/link-check-daily.yml b/.github/workflows/link-check-daily.yml new file mode 100644 index 0000000000..846e0a5c78 --- /dev/null +++ b/.github/workflows/link-check-daily.yml @@ -0,0 +1,55 @@ +name: 'Link Checker: Daily' + +# **What it does**: This script once a day checks all English links and reports in issue if any are broken. +# **Why we have it**: We want to know if any links break internally or externally. +# **Who does it impact**: Docs content. + +on: + workflow_dispatch: + schedule: + - cron: '40 19 * * *' # once a day at 19:40 UTC / 11:40 PST + +permissions: + contents: read + issues: write + +jobs: + check_all_english_links: + name: Check all links + if: github.repository == 'github/docs-internal' + runs-on: ubuntu-20.04-xl + steps: + - name: Check that gh CLI is installed + run: gh --version + + - name: Check out repo's default branch + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 + - name: Setup Node + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 + with: + node-version: '16.15.0' + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Run link checker + env: + LEVEL: 'critical' + # Set this to true in repo scope to enable debug logs + # ACTIONS_RUNNER_DEBUG = true + ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + GITHUB_TOKEN: ${{ secrets.DOCS_BOT_FR }} + REPORT_AUTHOR: docubot + REPORT_LABEL: broken link report + REPORT_REPOSITORY: github/docs-content + CREATE_REPORT: true + CHECK_EXTERNAL_LINKS: true + timeout-minutes: 30 + run: node .github/actions/rendered-content-link-checker.js + + - name: Upload artifact(s) + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 + with: + name: artifacts + path: ./artifacts diff --git a/.github/workflows/link-check-on-pr.yml b/.github/workflows/link-check-on-pr.yml new file mode 100644 index 0000000000..6a5b7fa147 --- /dev/null +++ b/.github/workflows/link-check-on-pr.yml @@ -0,0 +1,89 @@ +name: 'Link Checker: On PR' + +# **What it does**: Renders the content of every page and check all internal links on PR. +# **Why we have it**: To make sure all links connect correctly on changed files. +# **Who does it impact**: Docs content. + +on: + workflow_dispatch: + merge_group: + push: + branches: + - main + pull_request: + +permissions: + contents: read + # TODO: Uncomment if we uncomment below + # Needed for the 'trilom/file-changes-action' action + # pull-requests: read + +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + +jobs: + check-links: + runs-on: ${{ fromJSON('["ubuntu-latest", "ubuntu-20.04-xl"]')[github.repository == 'github/docs-internal'] }} + if: (github.repository == 'github/docs-internal' || github.repository == 'github/docs') && github.repository_owner == 'github' + steps: + - name: Checkout + uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 + + - name: Setup node + uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 + with: + node-version: '16.15.0' + cache: npm + + - name: Install + run: npm ci + + # TODO: When we want to fix redirects on changed files we can uncomment everything below + # Creates file "${{ env.HOME }}/files.json", among others + # - name: Gather files changed + # if: github.event_name != 'merge_group' + # id: file_changes + # uses: trilom/file-changes-action@a6ca26c14274c33b15e6499323aac178af06ad4b + # with: + # fileOutput: 'json' + + # For verification + # - name: Show files changed (debug) + # if: github.event_name != 'merge_group' + # run: cat $HOME/files.json + + # - name: Link check changed pages (external links only) + # if: github.event_name != 'merge_group' + # id: changed_links + # env: + # LEVEL: 'warning' + # FILES_CHANGED: ${{ steps.file_changes.outputs.files }} + # ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + # GITHUB_TOKEN: ${{ secrets.DOCS_BOT_FR }} + # SHOULD_COMMENT: true + # CREATE_REPORT: false + # run: node .github/actions/rendered-content-link-checker.js + + - name: Link check all pages (internal links only) + id: all_links + env: + LEVEL: 'critical' + ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + GITHUB_TOKEN: ${{ secrets.DOCS_BOT_FR }} + SHOULD_COMMENT: true + CHECK_EXTERNAL_LINKS: false + CREATE_REPORT: false + run: node .github/actions/rendered-content-link-checker.js + + - name: Upload artifact(s) + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 + with: + name: artifacts + path: ./artifacts + + - name: Fail if either check has broken links in its level + if: ${{ steps.changed_links.outputs.has_flaws_at_level == 'true' || steps.all_links.outputs.has_flaws_at_level == 'true' }} + run: | + exit 1 diff --git a/.github/workflows/no-response.yaml b/.github/workflows/no-response.yaml index c75179a19e..2c3ade37b5 100644 --- a/.github/workflows/no-response.yaml +++ b/.github/workflows/no-response.yaml @@ -21,6 +21,7 @@ permissions: jobs: noResponse: runs-on: ubuntu-latest + if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' steps: - uses: lee-dohm/no-response@9bb0a4b5e6a45046f00353d5de7d90fb8bd773bb with: diff --git a/.github/workflows/package-lock-lint.yml b/.github/workflows/package-lock-lint.yml index b9d4663ba3..0e1908319f 100644 --- a/.github/workflows/package-lock-lint.yml +++ b/.github/workflows/package-lock-lint.yml @@ -22,6 +22,7 @@ concurrency: jobs: lint: runs-on: ubuntu-latest + if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' steps: - name: Check out repo uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 diff --git a/.github/workflows/sync-search-pr.yml b/.github/workflows/sync-search-pr.yml index eee3262022..41c2c573ff 100644 --- a/.github/workflows/sync-search-pr.yml +++ b/.github/workflows/sync-search-pr.yml @@ -31,6 +31,7 @@ env: jobs: lint: runs-on: ${{ fromJSON('["ubuntu-latest", "ubuntu-20.04-xl"]')[github.repository == 'github/docs-internal'] }} + if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' steps: - uses: getong/elasticsearch-action@95b501ab0c83dee0aac7c39b7cea3723bef14954 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 61ce3c85d0..000c0ad107 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,6 +29,7 @@ env: jobs: test: + if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' # Run on ubuntu-20.04-xl if the private repo or ubuntu-latest if the public repo # See pull # 17442 in the private repo for context runs-on: ${{ fromJSON('["ubuntu-latest", "ubuntu-20.04-xl"]')[github.repository == 'github/docs-internal'] }} @@ -79,7 +80,7 @@ jobs: - name: Figure out which docs-early-access branch to checkout, if internal repo if: ${{ github.repository == 'github/docs-internal' }} id: check-early-access - uses: actions/github-script@2b34a689ec86a68d8ab9478298f91d5401337b7d + uses: actions/github-script@d556feaca394842dc55e4734bf3bb9f685482fa0 env: BRANCH_NAME: ${{ github.head_ref || github.ref_name }} with: @@ -91,7 +92,7 @@ jobs: // example, the value becomes 'main'. const { BRANCH_NAME } = process.env try { - const response = await github.repos.getBranch({ + const response = await github.rest.repos.getBranch({ owner: 'github', repo: 'docs-early-access', branch: BRANCH_NAME, diff --git a/.gitignore b/.gitignore index d610611db9..d26ed900b4 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,6 @@ lib/redirects/.redirects-cache*.json # During the preview deploy untrusted user code may be cloned into this directory # We ignore it from git to keep things deterministic user-code/ + +# Logs from scripts +script/logs/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index babc51f666..ec99f26684 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -64,9 +64,7 @@ For more information about using a codespace for working on GitHub documentation ### Commit your update -Commit the changes once you are happy with them. See [Atom's contributing guide](https://github.com/atom/atom/blob/master/CONTRIBUTING.md#git-commit-messages) to know how to use emoji for commit messages. - -Once your changes are ready, don't forget to [self-review](/contributing/self-review.md) to speed up the review process:zap:. +Commit the changes once you are happy with them. Don't forget to [self-review](/contributing/self-review.md) to speed up the review process:zap:. ### Pull Request @@ -74,7 +72,7 @@ When you're finished with the changes, create a pull request, also known as a PR - Fill the "Ready for review" template so that we can review your PR. This template helps reviewers understand your changes as well as the purpose of your pull request. - Don't forget to [link PR to issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) if you are solving one. - Enable the checkbox to [allow maintainer edits](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork) so the branch can be updated for a merge. -Once you submit your PR, a Docs team member will review your proposal. We may ask questions or request for additional information. +Once you submit your PR, a Docs team member will review your proposal. We may ask questions or request additional information. - We may ask for changes to be made before a PR can be merged, either using [suggested changes](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/incorporating-feedback-in-your-pull-request) or pull request comments. You can apply suggested changes directly through the UI. You can make any other changes in your fork, then commit them to your branch. - As you update your PR and apply changes, mark each conversation as [resolved](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#resolving-conversations). - If you run into any merge issues, checkout this [git tutorial](https://github.com/skills/resolve-merge-conflicts) to help you resolve merge conflicts and other issues. @@ -91,9 +89,9 @@ Now that you are part of the GitHub docs community, see how else you can [contri This site can be developed on Windows, however a few potential gotchas need to be kept in mind: -1. Regular Expressions: Windows uses `\r\n` for line endings, while Unix based systems use `\n`. Therefore when working on Regular Expressions, use `\r?\n` instead of `\n` in order to support both environments. The Node.js [`os.EOL`](https://nodejs.org/api/os.html#os_os_eol) property can be used to get an OS-specific end-of-line marker. +1. Regular Expressions: Windows uses `\r\n` for line endings, while Unix-based systems use `\n`. Therefore, when working on Regular Expressions, use `\r?\n` instead of `\n` in order to support both environments. The Node.js [`os.EOL`](https://nodejs.org/api/os.html#os_os_eol) property can be used to get an OS-specific end-of-line marker. 2. Paths: Windows systems use `\` for the path separator, which would be returned by `path.join` and others. You could use `path.posix`, `path.posix.join` etc and the [slash](https://ghub.io/slash) module, if you need forward slashes - like for constructing URLs - or ensure your code works with either. 3. Bash: Not every Windows developer has a terminal that fully supports Bash, so it's generally preferred to write [scripts](/script) in JavaScript instead of Bash. -4. Filename too long error: There is a 260 character limit for a filename when Git is compiled with `msys`. While the suggestions below are not guaranteed to work and could possibly cause other issues, a few workarounds include: +4. Filename too long error: There is a 260 character limit for a filename when Git is compiled with `msys`. While the suggestions below are not guaranteed to work and could cause other issues, a few workarounds include: - Update Git configuration: `git config --system core.longpaths true` - Consider using a different Git client on Windows diff --git a/assets/images/help/projects-v2/archive-workflows.png b/assets/images/help/projects-v2/archive-workflows.png new file mode 100644 index 0000000000..bfbc3d9603 Binary files /dev/null and b/assets/images/help/projects-v2/archive-workflows.png differ diff --git a/assets/images/help/projects-v2/auto-archive-filter.png b/assets/images/help/projects-v2/auto-archive-filter.png new file mode 100644 index 0000000000..8ad5b8c899 Binary files /dev/null and b/assets/images/help/projects-v2/auto-archive-filter.png differ diff --git a/assets/images/help/projects-v2/board-add-column.png b/assets/images/help/projects-v2/board-add-column.png new file mode 100644 index 0000000000..35acc42763 Binary files /dev/null and b/assets/images/help/projects-v2/board-add-column.png differ diff --git a/assets/images/help/projects-v2/board-select-columns.png b/assets/images/help/projects-v2/board-select-columns.png new file mode 100644 index 0000000000..ad64d347a7 Binary files /dev/null and b/assets/images/help/projects-v2/board-select-columns.png differ diff --git a/assets/images/help/projects-v2/field-sum-menu.png b/assets/images/help/projects-v2/field-sum-menu.png new file mode 100644 index 0000000000..d0f63626a1 Binary files /dev/null and b/assets/images/help/projects-v2/field-sum-menu.png differ diff --git a/assets/images/help/projects-v2/field-sum-select-field.png b/assets/images/help/projects-v2/field-sum-select-field.png new file mode 100644 index 0000000000..12279d1c9f Binary files /dev/null and b/assets/images/help/projects-v2/field-sum-select-field.png differ diff --git a/assets/images/help/projects-v2/workflow-enable.png b/assets/images/help/projects-v2/workflow-enable.png index 0c15d2b214..6d1403addd 100644 Binary files a/assets/images/help/projects-v2/workflow-enable.png and b/assets/images/help/projects-v2/workflow-enable.png differ diff --git a/assets/images/help/projects-v2/workflow-when-archive.png b/assets/images/help/projects-v2/workflow-when-archive.png new file mode 100644 index 0000000000..f64ed48446 Binary files /dev/null and b/assets/images/help/projects-v2/workflow-when-archive.png differ diff --git a/assets/images/help/releases/latest-release-checkbox.png b/assets/images/help/releases/latest-release-checkbox.png new file mode 100644 index 0000000000..5ebf27be67 Binary files /dev/null and b/assets/images/help/releases/latest-release-checkbox.png differ diff --git a/components/article/ArticlePage.tsx b/components/article/ArticlePage.tsx index de1d2e5f87..f7f80ecf19 100644 --- a/components/article/ArticlePage.tsx +++ b/components/article/ArticlePage.tsx @@ -95,8 +95,8 @@ export const ArticlePage = () => { )} - {includesPlatformSpecificContent && } - {includesToolSpecificContent && } + {includesPlatformSpecificContent && } + {includesToolSpecificContent && } {product && ( void + preferenceName: string + options: Option[] + ariaLabel: string +} +export const InArticlePicker = ({ + defaultValue, + fallbackValue, + cookieKey, + queryStringKey, + onValue, + preferenceName, + options, + ariaLabel, +}: Props) => { + const router = useRouter() + const { query, locale } = router + const [currentValue, setCurrentValue] = useState('') + + // Run on mount for client-side only features + useEffect(() => { + const raw = query[queryStringKey] + let value = '' + if (raw) { + if (Array.isArray(raw)) value = raw[0] + else value = raw + } + // Only pick it up from the possible query string if its value + // is a valid option. + const possibleValues = options.map((option) => option.value) + if (!value || !possibleValues.includes(value)) { + const cookieValue = Cookies.get(cookieKey) + if (defaultValue) { + value = defaultValue + } else if (cookieValue && possibleValues.includes(cookieValue)) { + value = cookieValue + } else { + value = fallbackValue + } + } + setCurrentValue(value) + }, [query, fallbackValue, defaultValue, options]) + + useEffect(() => { + // This will make the hook run this callback on mount and on change. + // That's important because even though the user hasn't interacted + // and made an overriding choice, we still want to run this callback + // because the page might need to be corrected based on *a* choice + // independent of whether it's a change. + if (currentValue) { + onValue(currentValue) + } + }, [currentValue]) + + const [asPathRoot, asPathQuery = ''] = router.asPath.split('#')[0].split('?') + + function onClickChoice(value: string) { + const params = new URLSearchParams(asPathQuery) + params.set(queryStringKey, value) + const newPath = `/${locale}${asPathRoot}?${params}` + router.push(newPath, undefined, { shallow: true, locale }) + + sendEvent({ + type: EventType.preference, + preference_name: preferenceName, + preference_value: value, + }) + + Cookies.set(cookieKey, value, { + sameSite: 'strict', + secure: document.location.protocol !== 'http:', + expires: 365, + }) + } + + const sharedContainerProps = { + 'data-testid': `${queryStringKey}-picker`, + 'aria-label': ariaLabel, + [`data-default-${queryStringKey}`]: defaultValue || '', + className: 'mb-4', + } + + const params = new URLSearchParams(asPathQuery) + + return ( + + {options.map((option) => { + params.set(queryStringKey, option.value) + const linkProps = { + [`data-${queryStringKey}`]: option.value, + } + return ( + { + event.preventDefault() + onClickChoice(option.value) + }} + {...linkProps} + > + {option.label} + + ) + })} + + ) +} diff --git a/components/article/PlatformPicker.tsx b/components/article/PlatformPicker.tsx index 234b2e5af3..579542eb3c 100644 --- a/components/article/PlatformPicker.tsx +++ b/components/article/PlatformPicker.tsx @@ -1,17 +1,14 @@ -import { useCallback, useEffect, useState } from 'react' -import Cookies from 'js-cookie' -import { SubNav, TabNav, UnderlineNav } from '@primer/react' -import { sendEvent, EventType } from 'components/lib/events' -import { useRouter } from 'next/router' +import { useEffect, useState } from 'react' import { useArticleContext } from 'components/context/ArticleContext' import { parseUserAgent } from 'components/lib/user-agent' +import { InArticlePicker } from './InArticlePicker' const platformQueryKey = 'platform' const platforms = [ - { id: 'mac', label: 'Mac' }, - { id: 'windows', label: 'Windows' }, - { id: 'linux', label: 'Linux' }, + { value: 'mac', label: 'Mac' }, + { value: 'windows', label: 'Windows' }, + { value: 'linux', label: 'Linux' }, ] // Nota bene: platform === os @@ -22,7 +19,7 @@ const platforms = [ function showPlatformSpecificContent(platform: string) { const markdowns = Array.from(document.querySelectorAll('.extended-markdown')) markdowns - .filter((el) => platforms.some((platform) => el.classList.contains(platform.id))) + .filter((el) => platforms.some((platform) => el.classList.contains(platform.value))) .forEach((el) => { el.style.display = el.classList.contains(platform) ? '' : 'none' }) @@ -31,7 +28,7 @@ function showPlatformSpecificContent(platform: string) { // example: inline content const platformEls = Array.from( document.querySelectorAll( - platforms.map((platform) => `.platform-${platform.id}`).join(', ') + platforms.map((platform) => `.platform-${platform.value}`).join(', ') ) ) platformEls.forEach((el) => { @@ -39,153 +36,39 @@ function showPlatformSpecificContent(platform: string) { }) } -// uses the order of the supportedPlatforms array to -// determine the default platform -const getFallbackPlatform = (detectedPlatforms: Array): string => { - const foundPlatform = platforms.find((platform) => detectedPlatforms.includes(platform.id)) - return foundPlatform?.id || 'linux' -} - -type Props = { - variant?: 'subnav' | 'tabnav' | 'underlinenav' -} -export const PlatformPicker = ({ variant = 'subnav' }: Props) => { - const router = useRouter() - const { query, asPath, locale } = router +export const PlatformPicker = () => { const { defaultPlatform, detectedPlatforms } = useArticleContext() - const [currentPlatform, setCurrentPlatform] = useState(defaultPlatform || '') - // Run on mount for client-side only features + const [defaultUA, setDefaultUA] = useState('') useEffect(() => { let userAgent = parseUserAgent().os if (userAgent === 'ios') { userAgent = 'mac' } + setDefaultUA(userAgent) + }, []) - // If it's a valid platform option, set platform from query param - let platform = - query[platformQueryKey] && Array.isArray(query[platformQueryKey]) - ? query[platformQueryKey][0] - : query[platformQueryKey] || '' - if (!platform || !platforms.some((platform) => platform.id === query.platform)) { - platform = defaultPlatform || Cookies.get('osPreferred') || userAgent || 'linux' - } + // Defensively, just in case some article happens to have an array + // but for some reasons, it might be empty, let's not have a picker + // at all. + if (!detectedPlatforms.length) return null - setCurrentPlatform(platform) - - // always trigger this on initial render. if the default doesn't change the other useEffect won't fire - showPlatformSpecificContent(platform) - }, [asPath]) - - // Make sure we've always selected a platform that exists in the article - useEffect(() => { - // Only check *after* current platform has been determined - if (currentPlatform && !detectedPlatforms.includes(currentPlatform)) { - setCurrentPlatform(getFallbackPlatform(detectedPlatforms)) - } - }, [currentPlatform, detectedPlatforms.join(',')]) - - const onClickPlatform = useCallback( - (platform: string) => { - // Set platform in query param without altering other query params - const [asPathRoot, asPathQuery = ''] = router.asPath.split('#')[0].split('?') - const params = new URLSearchParams(asPathQuery) - params.set(platformQueryKey, platform) - const newPath = `/${locale}${asPathRoot}?${params}` - router.push(newPath, undefined, { shallow: true, locale }) - - sendEvent({ - type: EventType.preference, - preference_name: 'os', - preference_value: platform, - }) - - Cookies.set('osPreferred', platform, { - sameSite: 'strict', - secure: document.location.protocol !== 'http:', - expires: 365, - }) - }, - [asPath, locale] - ) - - // only show platforms that are in the current article - const platformOptions = platforms.filter((platform) => detectedPlatforms.includes(platform.id)) - - const sharedContainerProps = { - 'data-testid': 'platform-picker', - 'aria-label': 'Platform picker', - 'data-default-platform': defaultPlatform, - className: 'mb-4', - } - - if (variant === 'subnav') { - return ( - - - {platformOptions.map((option) => { - return ( - { - onClickPlatform(option.id) - }} - > - {option.label} - - ) - })} - - - ) - } - - if (variant === 'underlinenav') { - const [, pathQuery = ''] = asPath.split('?') - const params = new URLSearchParams(pathQuery) - return ( - - {platformOptions.map((option) => { - params.set(platformQueryKey, option.id) - return ( - { - event.preventDefault() - onClickPlatform(option.id) - }} - > - {option.label} - - ) - })} - - ) - } + const options = platforms.filter((platform) => detectedPlatforms.includes(platform.value)) return ( - - {platformOptions.map((option) => { - return ( - { - onClickPlatform(option.id) - }} - > - {option.label} - - ) - })} - + ) } diff --git a/components/article/ToolPicker.tsx b/components/article/ToolPicker.tsx index 753a71a406..171865fb8e 100644 --- a/components/article/ToolPicker.tsx +++ b/components/article/ToolPicker.tsx @@ -1,11 +1,7 @@ -import { useCallback, useEffect, useState } from 'react' -import { useRouter } from 'next/router' -import Cookies from 'js-cookie' -import { UnderlineNav } from '@primer/react' -import { sendEvent, EventType } from 'components/lib/events' import { preserveAnchorNodePosition } from 'scroll-anchoring' import { useArticleContext } from 'components/context/ArticleContext' +import { InArticlePicker } from './InArticlePicker' // example: http://localhost:4000/en/codespaces/developing-in-codespaces/creating-a-codespace @@ -48,97 +44,29 @@ function getDefaultTool(defaultTool: string | undefined, detectedTools: Array { - const router = useRouter() - const { asPath, query, locale } = router +export const ToolPicker = () => { // allTools comes from the ArticleContext which contains the list of tools available const { defaultTool, detectedTools, allTools } = 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', - } + if (!detectedTools.length) return null - // 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) - } - }, []) + const options = detectedTools.map((value) => { + return { value, label: allTools[value] } + }) - // Whenever the currentTool is changed, update the article content or selected tool from query param - useEffect(() => { - preserveAnchorNodePosition(document, () => { - showToolSpecificContent(currentTool, Object.keys(allTools)) - }) - - // If tool from query is a valid option, use it - const tool = - query[toolQueryKey] && Array.isArray(query[toolQueryKey]) - ? query[toolQueryKey][0] - : query[toolQueryKey] || '' - if (tool && detectedTools.includes(tool)) { - setCurrentTool(tool) - } - }, [currentTool, asPath]) - - const onClickTool = useCallback( - (tool: string) => { - // Set tool in query param without altering other query params - const [asPathRoot, asPathQuery = ''] = router.asPath.split('#')[0].split('?') - const params = new URLSearchParams(asPathQuery) - params.set(toolQueryKey, tool) - const newPath = `/${locale}${asPathRoot}?${params}` - router.push(newPath, undefined, { shallow: true, locale }) - - sendEvent({ - type: EventType.preference, - preference_name: 'application', - preference_value: tool, - }) - Cookies.set('toolPreferred', tool, { - sameSite: 'strict', - secure: document.location.protocol !== 'http:', - expires: 365, - }) - }, - [asPath, locale] + return ( + { + preserveAnchorNodePosition(document, () => { + showToolSpecificContent(value, Object.keys(allTools)) + }) + }} + preferenceName="application" + ariaLabel="Tool" + options={options} + /> ) - - if (variant === 'underlinenav') { - const [, pathQuery = ''] = asPath.split('?') - const params = new URLSearchParams(pathQuery) - return ( - - {detectedTools.map((tool) => { - params.set(toolQueryKey, tool) - return ( - { - event.preventDefault() - onClickTool(tool) - }} - > - {allTools[tool]} - - ) - })} - - ) - } - - return null } diff --git a/components/context/MainContext.tsx b/components/context/MainContext.tsx index e06ef3cfcf..f14b0ac877 100644 --- a/components/context/MainContext.tsx +++ b/components/context/MainContext.tsx @@ -13,13 +13,6 @@ export type ProductT = { versions?: Array } -export type ProductGroupT = { - name: string - icon: string - octicon: string - children: Array -} - type VersionItem = { // free-pro-team@latest, enterprise-cloud@latest, enterprise-server@3.3 ... version: string @@ -77,7 +70,6 @@ export type MainContextT = { article?: BreadcrumbT } activeProducts: Array - productGroups: Array communityRedirect: { name: string href: string @@ -137,7 +129,6 @@ export const getMainContext = async (req: any, res: any): Promise return { breadcrumbs: req.context.breadcrumbs || {}, activeProducts: req.context.activeProducts, - productGroups: req.context.productGroups, communityRedirect: req.context.page?.communityRedirect || {}, currentProduct: req.context.productMap[req.context.currentProduct] || null, currentLayoutName: req.context.currentLayoutName, diff --git a/components/homepage/ProductSelectionCard.tsx b/components/homepage/ProductSelectionCard.tsx index 7a758a4cd4..6d9b5065b4 100644 --- a/components/homepage/ProductSelectionCard.tsx +++ b/components/homepage/ProductSelectionCard.tsx @@ -1,4 +1,5 @@ -import { ProductT, ProductGroupT, useMainContext } from 'components/context/MainContext' +import { ProductT, useMainContext } from 'components/context/MainContext' +import type { ProductGroupT } from 'components/homepage/ProductSelections' import React from 'react' import { useRouter } from 'next/router' diff --git a/components/homepage/ProductSelections.tsx b/components/homepage/ProductSelections.tsx index 2aa0d014a2..852fedaf00 100644 --- a/components/homepage/ProductSelections.tsx +++ b/components/homepage/ProductSelections.tsx @@ -1,11 +1,20 @@ -import { useMainContext } from 'components/context/MainContext' - import React from 'react' + +import type { ProductT } from 'components/context/MainContext' import { ProductSelectionCard } from './ProductSelectionCard' -export const ProductSelections = () => { - const { productGroups } = useMainContext() +export type ProductGroupT = { + name: string + icon: string + octicon: string + children: Array +} +type Props = { + productGroups: Array +} + +export const ProductSelections = ({ productGroups }: Props) => { return (
diff --git a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications.md b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications.md index 84b6cb5632..18798d0d6f 100644 --- a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications.md +++ b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications.md @@ -1,6 +1,6 @@ --- title: About notifications -intro: 'Notifications provide updates about the activity on {% data variables.product.product_location %} that you''ve subscribed to. You can use the notifications inbox to customize, triage, and manage your updates.' +intro: 'Notifications provide updates about the activity on {% data variables.location.product_location %} that you''ve subscribed to. You can use the notifications inbox to customize, triage, and manage your updates.' redirect_from: - /articles/notifications - /articles/about-notifications @@ -18,7 +18,7 @@ topics: ## Notifications and subscriptions -You can choose to receive ongoing updates about specific activity on {% data variables.product.product_location %} through a subscription. Notifications are updates that you receive for specific activity that you are subscribed to. +You can choose to receive ongoing updates about specific activity on {% data variables.location.product_location %} through a subscription. Notifications are updates that you receive for specific activity that you are subscribed to. ### Subscription options @@ -46,7 +46,7 @@ In general, you are automatically subscribed to conversations by default when yo By default, you also automatically watch all repositories that you create and are owned by your personal account. -To unsubscribe from conversations you're automatically subscribed to, you can change your notification settings or directly unsubscribe or unwatch activity on {% data variables.product.product_location %}. For more information, see "[Managing your subscriptions](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)." +To unsubscribe from conversations you're automatically subscribed to, you can change your notification settings or directly unsubscribe or unwatch activity on {% data variables.location.product_location %}. For more information, see "[Managing your subscriptions](/github/managing-subscriptions-and-notifications-on-github/managing-your-subscriptions)." ## Customizing notifications and subscriptions @@ -88,7 +88,7 @@ From your inbox you can also triage multiple notifications at once. For more inf ## Customizing your notifications inbox -To focus on a group of notifications in your inbox on {% data variables.product.product_location %}{% ifversion fpt or ghes or ghec %} or {% data variables.product.prodname_mobile %}{% endif %}, you can create custom filters. For example, you can create a custom filter for an open source project you contribute to and only see notifications for that repository in which you are mentioned. For more information, see "[Managing notifications from your inbox](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox)." For more examples of how to customize your triaging workflow, see "[Customizing a workflow for triaging your notifications](/github/managing-subscriptions-and-notifications-on-github/customizing-a-workflow-for-triaging-your-notifications)." +To focus on a group of notifications in your inbox on {% data variables.location.product_location %}{% ifversion fpt or ghes or ghec %} or {% data variables.product.prodname_mobile %}{% endif %}, you can create custom filters. For example, you can create a custom filter for an open source project you contribute to and only see notifications for that repository in which you are mentioned. For more information, see "[Managing notifications from your inbox](/github/managing-subscriptions-and-notifications-on-github/managing-notifications-from-your-inbox)." For more examples of how to customize your triaging workflow, see "[Customizing a workflow for triaging your notifications](/github/managing-subscriptions-and-notifications-on-github/customizing-a-workflow-for-triaging-your-notifications)." ## Notification retention policy diff --git a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md index f0ec8c75e9..ee9ed4f6aa 100644 --- a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md +++ b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md @@ -26,11 +26,11 @@ topics: ## Notification delivery options -You can receive notifications for activity on {% data variables.product.product_location %} in the following locations. +You can receive notifications for activity on {% data variables.location.product_location %} in the following locations. - - The notifications inbox in the {% data variables.product.product_location %} web interface{% ifversion fpt or ghes or ghec %} - - The notifications inbox on {% data variables.product.prodname_mobile %}, which syncs with the inbox on {% data variables.product.product_location %}{% endif %} - - An email client that uses a verified email address, which can also sync with the notifications inbox on {% data variables.product.product_location %}{% ifversion fpt or ghes or ghec %} and {% data variables.product.prodname_mobile %}{% endif %} + - The notifications inbox in the {% data variables.location.product_location %} web interface{% ifversion fpt or ghes or ghec %} + - The notifications inbox on {% data variables.product.prodname_mobile %}, which syncs with the inbox on {% data variables.location.product_location %}{% endif %} + - An email client that uses a verified email address, which can also sync with the notifications inbox on {% data variables.location.product_location %}{% ifversion fpt or ghes or ghec %} and {% data variables.product.prodname_mobile %}{% endif %} {% ifversion fpt or ghes or ghec %} {% data reusables.notifications-v2.notifications-inbox-required-setting %} For more information, see "[Choosing your notification settings](#choosing-your-notification-settings)." @@ -40,12 +40,12 @@ You can receive notifications for activity on {% data variables.product.product_ ### Benefits of the notifications inbox -The notifications inbox on {% data variables.product.product_location %}{% ifversion fpt or ghes or ghec %} and {% data variables.product.prodname_mobile %}{% endif %} includes triaging options designed specifically for your {% data variables.product.prodname_dotcom %} notifications flow, including options to: +The notifications inbox on {% data variables.location.product_location %}{% ifversion fpt or ghes or ghec %} and {% data variables.product.prodname_mobile %}{% endif %} includes triaging options designed specifically for your {% data variables.product.prodname_dotcom %} notifications flow, including options to: - Triage multiple notifications at once. - Mark completed notifications as **Done** and remove them from your inbox. To view all of your notifications marked as **Done**, use the `is:done` query. - Save a notification to review later. Saved notifications are flagged in your inbox and kept indefinitely. To view all of your saved notifications, use the `is:saved` query. - Unsubscribe and remove a notification from your inbox. - - Preview the issue, pull request, or team discussion where the notification originates on {% data variables.product.product_location %} from within the notifications inbox. + - Preview the issue, pull request, or team discussion where the notification originates on {% data variables.location.product_location %} from within the notifications inbox. - See one of the latest reasons you're receiving a notification from your inbox with a `reasons` label. - Create custom filters to focus on different notifications when you want. - Group notifications in your inbox by repository or date to get a quick overview with less context switching @@ -85,7 +85,7 @@ Anytime you comment in a conversation or when someone @mentions your username, y {% else %} -For conversations you're watching or participating in, you can choose whether you want to receive notifications by email or through the notifications inbox on {% data variables.product.product_location %}{% ifversion ghes %} and {% data variables.product.prodname_mobile %}{% endif %}. For more information, see "[Choosing your notification settings](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#choosing-your-notification-settings)." +For conversations you're watching or participating in, you can choose whether you want to receive notifications by email or through the notifications inbox on {% data variables.location.product_location %}{% ifversion ghes %} and {% data variables.product.prodname_mobile %}{% endif %}. For more information, see "[Choosing your notification settings](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#choosing-your-notification-settings)." ![Screenshot of participating and watching notifications options](/assets/images/help/notifications-v2/participating-and-watching-options.png){% endif %} @@ -103,7 +103,7 @@ If you do not enable watching or participating notifications for web{% ifversion ## Customizing your email notifications -After enabling email notifications, {% data variables.product.product_location %} will send notifications to you as multipart emails that contain both HTML and plain text copies of the content. Email notification content includes any Markdown, @mentions, emojis, hash-links, and more, that appear in the original content on {% data variables.product.product_location %}. If you only want to see the text in the email, you can configure your email client to display the plain text copy only. +After enabling email notifications, {% data variables.location.product_location %} will send notifications to you as multipart emails that contain both HTML and plain text copies of the content. Email notification content includes any Markdown, @mentions, emojis, hash-links, and more, that appear in the original content on {% data variables.location.product_location %}. If you only want to see the text in the email, you can configure your email client to display the plain text copy only. {% data reusables.notifications.outbound_email_tip %} @@ -117,7 +117,7 @@ If you're using Gmail, you can click a button beside the notification email to v {% endif %} -Choose a default email address where you want to send updates for conversations you're participating in or watching. You can also specify which activity on {% data variables.product.product_location %} you want to receive updates for using your default email address. For example, choose whether you want updates to your default email from: +Choose a default email address where you want to send updates for conversations you're participating in or watching. You can also specify which activity on {% data variables.location.product_location %} you want to receive updates for using your default email address. For example, choose whether you want updates to your default email from: - Comments on issues and pull requests. - Pull request reviews. - Pull request pushes. @@ -131,11 +131,11 @@ You can also send notifications for a specific repository to an email address. F ## Filtering email notifications -Each email notification that {% data variables.product.product_location %} sends contains header information. The header information in every email is consistent, so you can use it in your email client to filter or forward all {% data variables.product.prodname_dotcom %} notifications, or certain types of {% data variables.product.prodname_dotcom %} notifications. +Each email notification that {% data variables.location.product_location %} sends contains header information. The header information in every email is consistent, so you can use it in your email client to filter or forward all {% data variables.product.prodname_dotcom %} notifications, or certain types of {% data variables.product.prodname_dotcom %} notifications. If you believe you're receiving notifications that don't belong to you, examine the `X-GitHub-Recipient` and `X-GitHub-Recipient-Address` headers. These headers show who the intended recipient is. Depending on your email setup, you may receive notifications intended for another user. -Email notifications from {% data variables.product.product_location %} contain the following header information: +Email notifications from {% data variables.location.product_location %} contain the following header information: | Header | Information | | --- | --- | diff --git a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox.md b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox.md index aa99fde1db..ba60987068 100644 --- a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox.md +++ b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox.md @@ -105,7 +105,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.location.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` diff --git a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md index c0511693a3..b7f02b36e0 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme.md @@ -14,7 +14,7 @@ shortTitle: Your profile README --- ## About your profile README -You can share information about yourself with the community on {% data variables.product.product_location %} by creating a profile README. {% data variables.product.prodname_dotcom %} shows your profile README at the top of your profile page. +You can share information about yourself with the community on {% data variables.location.product_location %} by creating a profile README. {% data variables.product.prodname_dotcom %} shows your profile README at the top of your profile page. You decide what information to include in your profile README, so you have full control over how you present yourself on {% data variables.product.prodname_dotcom %}. Here are some examples of information that visitors may find interesting, fun, or useful in your profile README. diff --git a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md index 850fdd4282..e8a2772e9f 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile.md @@ -59,7 +59,7 @@ You can change the name that is displayed on your profile. This name may also be {% ifversion fpt or ghec %} {% note %} -**Note:** If you're a member of an {% data variables.product.prodname_emu_enterprise %}, any changes to your profile name must be made through your identity provider instead of {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.enterprise-accounts.emu-more-info-account %} +**Note:** If you're a member of an {% data variables.enterprise.prodname_emu_enterprise %}, any changes to your profile name must be made through your identity provider instead of {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.enterprise-accounts.emu-more-info-account %} {% endnote %} {% endif %} diff --git a/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-your-private-contributions-and-achievements-on-your-profile.md b/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-your-private-contributions-and-achievements-on-your-profile.md index fa7327e5cf..e88e940a1c 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-your-private-contributions-and-achievements-on-your-profile.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/showing-your-private-contributions-and-achievements-on-your-profile.md @@ -20,7 +20,7 @@ If you publicize your private contributions, people without access to the privat {% note %} -**Note:** {% ifversion fpt or ghes or ghec %}On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.product.product_name %}{% endif %}, public contributions on your profile are visible {% ifversion fpt or ghec %}to anyone in the world who can access {% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}only to other users of {% data variables.product.product_location%}{% endif %}.{% elsif ghae %}On {% data variables.product.prodname_ghe_managed %}, only other members of your enterprise can see the contributions on your profile.{% endif %} +**Note:** {% ifversion fpt or ghes or ghec %}On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.product.product_name %}{% endif %}, public contributions on your profile are visible {% ifversion fpt or ghec %}to anyone in the world who can access {% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}only to other users of {% data variables.location.product_location%}{% endif %}.{% elsif ghae %}On {% data variables.product.prodname_ghe_managed %}, only other members of your enterprise can see the contributions on your profile.{% endif %} {% endnote %} diff --git a/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/viewing-contributions-on-your-profile.md b/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/viewing-contributions-on-your-profile.md index 9e6c6be225..5581d21cd0 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/viewing-contributions-on-your-profile.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/viewing-contributions-on-your-profile.md @@ -93,5 +93,5 @@ The contribution activity section includes a detailed timeline of your work, inc ## Viewing contributions from {% data variables.product.prodname_enterprise %} on {% data variables.product.prodname_dotcom_the_website %} -If you use {% ifversion fpt or ghec %}{% data variables.product.prodname_ghe_server %}{% ifversion ghae %} or {% data variables.product.prodname_ghe_managed %}{% endif %}{% else %}{% data variables.product.product_name %}{% endif %} and your enterprise owner enables {% data variables.product.prodname_unified_contributions %}, you can send enterprise contribution counts from to your {% data variables.product.prodname_dotcom_the_website %} profile. For more information, see "[Sending enterprise contributions to your {% data variables.product.prodname_dotcom_the_website %} profile](/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-graphs-on-your-profile/sending-enterprise-contributions-to-your-githubcom-profile)." +If you use {% ifversion fpt or ghec %}{% data variables.product.prodname_ghe_server %}{% ifversion ghae %} or {% data variables.product.prodname_ghe_managed %}{% endif %}{% else %}{% data variables.product.product_name %}{% endif %} and your enterprise owner enables {% data variables.enterprise.prodname_unified_contributions %}, you can send enterprise contribution counts from to your {% data variables.product.prodname_dotcom_the_website %} profile. For more information, see "[Sending enterprise contributions to your {% data variables.product.prodname_dotcom_the_website %} profile](/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-graphs-on-your-profile/sending-enterprise-contributions-to-your-githubcom-profile)." diff --git a/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/why-are-my-contributions-not-showing-up-on-my-profile.md b/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/why-are-my-contributions-not-showing-up-on-my-profile.md index eaab305808..3e24053ec8 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/why-are-my-contributions-not-showing-up-on-my-profile.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/why-are-my-contributions-not-showing-up-on-my-profile.md @@ -18,7 +18,7 @@ shortTitle: Missing contributions ## About your contribution graph -Your profile contributions graph is a record of contributions you've made to repositories {% ifversion ghae %}owned by{% else %}on{% endif %} {% data variables.product.product_location %}. Contributions are timestamped according to Coordinated Universal Time (UTC) rather than your local time zone. Contributions are only counted if they meet certain criteria. In some cases, we may need to rebuild your graph in order for contributions to appear. +Your profile contributions graph is a record of contributions you've made to repositories {% ifversion ghae %}owned by{% else %}on{% endif %} {% data variables.location.product_location %}. Contributions are timestamped according to Coordinated Universal Time (UTC) rather than your local time zone. Contributions are only counted if they meet certain criteria. In some cases, we may need to rebuild your graph in order for contributions to appear. If you are part of an organization that uses SAML single sign-on (SSO), you won’t be able to see contribution activity from the organization on your profile if you do not have an active SSO session. People viewing your profile from outside your organization will see anonymized contribution activity of your contribution activity for your organization. @@ -30,7 +30,7 @@ Issues, pull requests and discussions will appear on your contribution graph if ### Commits Commits will appear on your contributions graph if they meet **all** of the following conditions: -- The email address used for the commits is associated with your account on {% data variables.product.product_location %}. +- The email address used for the commits is associated with your account on {% data variables.location.product_location %}. - The commits were made in a standalone repository, not a fork. - The commits were made: - In the repository's default branch @@ -54,7 +54,7 @@ After making a commit that meets the requirements to count as a contribution, yo ### Your local Git commit email isn't connected to your account -Commits must be made with an email address that is connected to your account on {% data variables.product.product_location %}{% ifversion fpt or ghec %}, or the {% data variables.product.prodname_dotcom %}-provided `noreply` email address provided to you in your email settings,{% endif %} in order to appear on your contributions graph.{% ifversion fpt or ghec %} For more information about `noreply` email addresses, see "[Setting your commit email address](/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#about-commit-email-addresses)."{% endif %} +Commits must be made with an email address that is connected to your account on {% data variables.location.product_location %}{% ifversion fpt or ghec %}, or the {% data variables.product.prodname_dotcom %}-provided `noreply` email address provided to you in your email settings,{% endif %} in order to appear on your contributions graph.{% ifversion fpt or ghec %} For more information about `noreply` email addresses, see "[Setting your commit email address](/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#about-commit-email-addresses)."{% endif %} You can check the email address used for a commit by adding `.patch` to the end of a commit URL, e.g. https://github.com/octocat/octocat.github.io/commit/67c0afc1da354d8571f51b6f0af8f2794117fd10.patch: @@ -67,7 +67,7 @@ Subject: [PATCH] updated index for better welcome message The email address in the `From:` field is the address that was set in the [local git config settings](/articles/set-up-git). In this example, the email address used for the commit is `octocat@nowhere.com`. -If the email address used for the commit is not connected to your account on {% data variables.product.product_location %}, {% ifversion ghae %}change the email address used to author commits in Git. For more information, see "[Setting your commit email address](/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#setting-your-commit-email-address-in-git)."{% else %}you must [add the email address](/articles/adding-an-email-address-to-your-github-account) to your account on {% data variables.product.product_location %}. Your contributions graph will be rebuilt automatically when you add the new address.{% endif %} +If the email address used for the commit is not connected to your account on {% data variables.location.product_location %}, {% ifversion ghae %}change the email address used to author commits in Git. For more information, see "[Setting your commit email address](/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#setting-your-commit-email-address-in-git)."{% else %}you must [add the email address](/articles/adding-an-email-address-to-your-github-account) to your account on {% data variables.location.product_location %}. Your contributions graph will be rebuilt automatically when you add the new address.{% endif %} {% warning %} @@ -93,7 +93,7 @@ If your commits are in a non-default or non-`gh-pages` branch and you'd like the Commits made in a fork will not count toward your contributions. To make them count, you must do one of the following: - [Open a pull request](/articles/creating-a-pull-request) to have your changes merged into the parent repository. -- To detach the fork and turn it into a standalone repository on {% data variables.product.product_location %}, contact {% data variables.contact.contact_support %}. If the fork has forks of its own, let {% data variables.contact.contact_support %} know if the forks should move with your repository into a new network or remain in the current network. For more information, see "[About forks](/articles/about-forks/)." +- To detach the fork and turn it into a standalone repository on {% data variables.location.product_location %}, contact {% data variables.contact.contact_support %}. If the fork has forks of its own, let {% data variables.contact.contact_support %} know if the forks should move with your repository into a new network or remain in the current network. For more information, see "[About forks](/articles/about-forks/)." ## Further reading diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/index.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/index.md index 6c35133ec7..63b2860091 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/index.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/index.md @@ -1,6 +1,6 @@ --- title: Setting up and managing your personal account on GitHub -intro: You can manage settings for your personal account on {% ifversion fpt or ghec or ghes %}{% data variables.product.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}, including email preferences, access to personal repositories, and organization memberships. You can also manage the account itself. +intro: You can manage settings for your personal account on {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}, including email preferences, access to personal repositories, and organization memberships. You can also manage the account itself. shortTitle: Personal accounts redirect_from: - /categories/setting-up-and-managing-your-github-user-account diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository.md index 8a8d6ef9a6..cd599dfdc0 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository.md @@ -25,7 +25,7 @@ Repositories owned by an organization can grant more granular access. For more i {% ifversion fpt or ghec %} -If you're a member of an {% data variables.product.prodname_emu_enterprise %}, you can only invite other members of your enterprise to collaborate with you. {% data reusables.enterprise-accounts.emu-more-info-account %} +If you're a member of an {% data variables.enterprise.prodname_emu_enterprise %}, you can only invite other members of your enterprise to collaborate with you. {% data reusables.enterprise-accounts.emu-more-info-account %} {% note %} diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/adding-an-email-address-to-your-github-account.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/adding-an-email-address-to-your-github-account.md index 3b5045f83d..0d8d4fd6b1 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/adding-an-email-address-to-your-github-account.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/adding-an-email-address-to-your-github-account.md @@ -21,7 +21,7 @@ shortTitle: Add an email address **Notes**: - {% data reusables.user-settings.no-verification-disposable-emails %} - - If you're a member of an {% data variables.product.prodname_emu_enterprise %}, you cannot make changes to your email address on {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.enterprise-accounts.emu-more-info-account %} + - If you're a member of an {% data variables.enterprise.prodname_emu_enterprise %}, you cannot make changes to your email address on {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.enterprise-accounts.emu-more-info-account %} {% endnote %} diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/index.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/index.md index af6670e2c7..a45d2f7f77 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/index.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/index.md @@ -1,6 +1,6 @@ --- title: Managing email preferences -intro: 'You can add or change the email addresses associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. You can also manage emails you receive from {% data variables.product.product_name %}.' +intro: 'You can add or change the email addresses associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. You can also manage emails you receive from {% data variables.product.product_name %}.' redirect_from: - /categories/managing-email-preferences - /articles/managing-email-preferences diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/remembering-your-github-username-or-email.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/remembering-your-github-username-or-email.md index 607592a402..d8d8d78c24 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/remembering-your-github-username-or-email.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/remembering-your-github-username-or-email.md @@ -1,6 +1,6 @@ --- title: Remembering your GitHub username or email -intro: 'Are you signing in to {% data variables.product.product_location %} for the first time in a while? If so, welcome back! If you can''t remember the username for your personal account on {% data variables.product.product_name %}, you can try these methods for remembering it.' +intro: 'Are you signing in to {% data variables.location.product_location %} for the first time in a while? If so, welcome back! If you can''t remember the username for your personal account on {% data variables.product.product_name %}, you can try these methods for remembering it.' redirect_from: - /articles/oh-noes-i-ve-forgotten-my-username-email - /articles/oh-noes-i-ve-forgotten-my-username-or-email diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md index 66e0967805..660ceca3bd 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address.md @@ -1,6 +1,6 @@ --- title: Setting your commit email address -intro: 'You can set the email address that is used to author commits on {% data variables.product.product_location %} and on your computer.' +intro: 'You can set the email address that is used to author commits on {% data variables.location.product_location %} and on your computer.' redirect_from: - /articles/keeping-your-email-address-private - /articles/setting-your-commit-email-address-on-github @@ -25,9 +25,9 @@ shortTitle: Set commit email address --- ## About commit email addresses -{% data variables.product.prodname_dotcom %} uses your commit email address to associate commits with your account on {% data variables.product.product_location %}. You can choose the email address that will be associated with the commits you push from the command line as well as web-based Git operations you make. +{% data variables.product.prodname_dotcom %} uses your commit email address to associate commits with your account on {% data variables.location.product_location %}. You can choose the email address that will be associated with the commits you push from the command line as well as web-based Git operations you make. -For web-based Git operations, you can set your commit email address on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. For commits you push from the command line, you can set your commit email address in Git. +For web-based Git operations, you can set your commit email address on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. For commits you push from the command line, you can set your commit email address in Git. {% ifversion fpt or ghec %}Any commits you made prior to changing your commit email address are still associated with your previous email address.{% else %}After changing your commit email address on {% data variables.product.product_name %}, the new email address will be visible in all of your future web-based Git operations by default. Any commits you made prior to changing your commit email address are still associated with your previous email address.{% endif %} @@ -45,17 +45,17 @@ For web-based Git operations, you can set your commit email address on {% ifvers You can also choose to block commits you push from the command line that expose your personal email address. For more information, see "[Blocking command line pushes that expose your personal email](/articles/blocking-command-line-pushes-that-expose-your-personal-email-address)."{% endif %} -To ensure that commits are attributed to you and appear in your contributions graph, use an email address that is connected to your account on {% data variables.product.product_location %}{% ifversion fpt or ghec %}, or the `noreply` email address provided to you in your email settings{% endif %}. {% ifversion not ghae %}For more information, see "[Adding an email address to your {% data variables.product.prodname_dotcom %} account](/github/setting-up-and-managing-your-github-user-account/adding-an-email-address-to-your-github-account)."{% endif %} +To ensure that commits are attributed to you and appear in your contributions graph, use an email address that is connected to your account on {% data variables.location.product_location %}{% ifversion fpt or ghec %}, or the `noreply` email address provided to you in your email settings{% endif %}. {% ifversion not ghae %}For more information, see "[Adding an email address to your {% data variables.product.prodname_dotcom %} account](/github/setting-up-and-managing-your-github-user-account/adding-an-email-address-to-your-github-account)."{% endif %} {% ifversion fpt or ghec %} {% note %} -**Note:** If you created your account on {% data variables.product.product_location %} _after_ July 18, 2017, your `noreply` email address for {% data variables.product.product_name %} is a seven-digit ID number and your username in the form of ID+USERNAME@users.noreply.github.com. If you created your account on {% data variables.product.product_location %} _prior to_ July 18, 2017, your `noreply` email address from {% data variables.product.product_name %} is USERNAME@users.noreply.github.com. You can get an ID-based `noreply` email address for {% data variables.product.product_name %} by selecting (or deselecting and reselecting) **Keep my email address private** in your email settings. +**Note:** If you created your account on {% data variables.location.product_location %} _after_ July 18, 2017, your `noreply` email address for {% data variables.product.product_name %} is a seven-digit ID number and your username in the form of ID+USERNAME@users.noreply.github.com. If you created your account on {% data variables.location.product_location %} _prior to_ July 18, 2017, your `noreply` email address from {% data variables.product.product_name %} is USERNAME@users.noreply.github.com. You can get an ID-based `noreply` email address for {% data variables.product.product_name %} by selecting (or deselecting and reselecting) **Keep my email address private** in your email settings. {% endnote %} -If you use your `noreply` email address for {% data variables.product.product_name %} to make commits and then [change your username](/articles/changing-your-github-username), those commits will not be associated with your account on {% data variables.product.product_location %}. This does not apply if you're using the ID-based `noreply` address from {% data variables.product.product_name %}. For more information, see "[Changing your {% data variables.product.prodname_dotcom %} username](/articles/changing-your-github-username)."{% endif %} +If you use your `noreply` email address for {% data variables.product.product_name %} to make commits and then [change your username](/articles/changing-your-github-username), those commits will not be associated with your account on {% data variables.location.product_location %}. This does not apply if you're using the ID-based `noreply` address from {% data variables.product.product_name %}. For more information, see "[Changing your {% data variables.product.prodname_dotcom %} username](/articles/changing-your-github-username)."{% endif %} ## Setting your commit email address on {% data variables.product.prodname_dotcom %} @@ -69,7 +69,7 @@ If you use your `noreply` email address for {% data variables.product.product_na ## Setting your commit email address in Git -You can use the `git config` command to change the email address you associate with your Git commits. The new email address you set will be visible in any future commits you push to {% data variables.product.product_location %} from the command line. Any commits you made prior to changing your commit email address are still associated with your previous email address. +You can use the `git config` command to change the email address you associate with your Git commits. The new email address you set will be visible in any future commits you push to {% data variables.location.product_location %} from the command line. Any commits you made prior to changing your commit email address are still associated with your previous email address. ### Setting your email address for every repository on your computer @@ -87,7 +87,7 @@ You can use the `git config` command to change the email address you associate w ### Setting your email address for a single repository -{% data variables.product.product_name %} uses the email address set in your local Git configuration to associate commits pushed from the command line with your account on {% data variables.product.product_location %}. +{% data variables.product.product_name %} uses the email address set in your local Git configuration to associate commits pushed from the command line with your account on {% data variables.location.product_location %}. You can change the email address associated with commits you make in a single repository. This will override your global Git configuration settings in this one repository, but will not affect any other repositories. diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/changing-your-github-username.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/changing-your-github-username.md index 5cb7038add..aad324c45b 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/changing-your-github-username.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/changing-your-github-username.md @@ -1,6 +1,6 @@ --- title: Changing your GitHub username -intro: 'You can change the username for your account on {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.product.product_location %} if your instance uses built-in authentication{% endif %}.' +intro: 'You can change the username for your account on {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.location.product_location %} if your instance uses built-in authentication{% endif %}.' redirect_from: - /articles/how-to-change-your-username - /articles/changing-your-github-user-name @@ -25,11 +25,11 @@ shortTitle: Change your username {% ifversion ghec %} -**Note**: Members of an {% data variables.product.prodname_emu_enterprise %} cannot change usernames. Your enterprise's IdP administrator controls your username for {% data variables.product.product_name %}. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." +**Note**: Members of an {% data variables.enterprise.prodname_emu_enterprise %} cannot change usernames. Your enterprise's IdP administrator controls your username for {% data variables.product.product_name %}. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." {% elsif ghes %} -**Note**: If you sign into {% data variables.product.product_location %} with LDAP credentials or single sign-on (SSO), only your local administrator can change your username. For more information about authentication methods for {% data variables.product.product_name %}, see "[Authenticating users for {% data variables.product.product_location %}](/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance)." +**Note**: If you sign into {% data variables.location.product_location %} with LDAP credentials or single sign-on (SSO), only your local administrator can change your username. For more information about authentication methods for {% data variables.product.product_name %}, see "[Authenticating users for {% data variables.location.product_location %}](/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance)." {% endif %} @@ -53,7 +53,7 @@ After changing your username, your old username becomes available for anyone els {% ifversion fpt or ghec %} -If you're a member of an {% data variables.product.prodname_emu_enterprise %}, you cannot make changes to your username. {% data reusables.enterprise-accounts.emu-more-info-account %} +If you're a member of an {% data variables.enterprise.prodname_emu_enterprise %}, you cannot make changes to your username. {% data reusables.enterprise-accounts.emu-more-info-account %} {% endif %} @@ -67,7 +67,7 @@ If the new owner of your old username creates a repository with the same name as ## Links to your previous profile page -After changing your username, links to your previous profile page, such as `https://{% data variables.command_line.backticks %}/previoususername`, will return a 404 error. We recommend updating any links to your account on {% data variables.product.product_location %} from elsewhere{% ifversion fpt or ghec %}, such as your LinkedIn or Twitter profile{% endif %}. +After changing your username, links to your previous profile page, such as `https://{% data variables.command_line.backticks %}/previoususername`, will return a 404 error. We recommend updating any links to your account on {% data variables.location.product_location %} from elsewhere{% ifversion fpt or ghec %}, such as your LinkedIn or Twitter profile{% endif %}. ## Your Git commits diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-accessibility-settings.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-accessibility-settings.md index fef42cd599..20771e8187 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-accessibility-settings.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-accessibility-settings.md @@ -12,11 +12,11 @@ miniTocMaxHeadingLevel: 3 ## About accessibility settings -To create an experience on {% ifversion fpt or ghec or ghes %}{% data variables.product.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} that fits your needs, you can customize the user interface. Accessibility settings can be essential for people with disabilities, but can be useful to anyone. For example, customization of keyboard shortcuts is essential to people who navigate using voice control, but can be useful to anyone when a keyboard shortcut for {% data variables.product.product_name %} clashes with another application shortcut. +To create an experience on {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} that fits your needs, you can customize the user interface. Accessibility settings can be essential for people with disabilities, but can be useful to anyone. For example, customization of keyboard shortcuts is essential to people who navigate using voice control, but can be useful to anyone when a keyboard shortcut for {% data variables.product.product_name %} clashes with another application shortcut. ## Managing accessibility settings -You can decide whether you want to use some or all keyboard shortcuts on {% ifversion fpt or ghec %}{% data variables.product.product_location %}{% elsif ghes or ghae %}the website for {% data variables.product.product_location %}{% endif %}, and you can control the display of animated images. +You can decide whether you want to use some or all keyboard shortcuts on {% ifversion fpt or ghec %}{% data variables.location.product_location %}{% elsif ghes or ghae %}the website for {% data variables.location.product_location %}{% endif %}, and you can control the display of animated images. ### Managing keyboard shortcuts diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-the-default-branch-name-for-your-repositories.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-the-default-branch-name-for-your-repositories.md index ac1511cb43..25c69e1a94 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-the-default-branch-name-for-your-repositories.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-the-default-branch-name-for-your-repositories.md @@ -1,6 +1,6 @@ --- title: Managing the default branch name for your repositories -intro: 'You can set the default branch name for new repositories that you create on {% data variables.product.product_location %}.' +intro: 'You can set the default branch name for new repositories that you create on {% data variables.location.product_location %}.' versions: fpt: '*' ghes: '*' @@ -16,7 +16,7 @@ shortTitle: Manage default branch name --- ## About management of the default branch name -When you create a new repository on {% data variables.product.product_location %}, the repository contains one branch, which is the default branch. You can change the name that {% data variables.product.product_name %} uses for the default branch in new repositories you create. For more information about the default branch, see "[About branches](/github/collaborating-with-issues-and-pull-requests/about-branches#about-the-default-branch)." +When you create a new repository on {% data variables.location.product_location %}, the repository contains one branch, which is the default branch. You can change the name that {% data variables.product.product_name %} uses for the default branch in new repositories you create. For more information about the default branch, see "[About branches](/github/collaborating-with-issues-and-pull-requests/about-branches#about-the-default-branch)." {% data reusables.branches.change-default-branch %} diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/permission-levels-for-a-personal-account-repository.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/permission-levels-for-a-personal-account-repository.md index 3fda24c6a0..55099932d7 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/permission-levels-for-a-personal-account-repository.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/permission-levels-for-a-personal-account-repository.md @@ -53,6 +53,7 @@ The repository owner has full control of the repository. In addition to the acti | Create security advisories | "[About {% data variables.product.prodname_security_advisories %}](/github/managing-security-vulnerabilities/about-github-security-advisories)" | | Display a sponsor button | "[Displaying a sponsor button in your repository](/github/administering-a-repository/displaying-a-sponsor-button-in-your-repository)" |{% endif %} | Allow or disallow auto-merge for pull requests | "[Managing auto-merge for pull requests in your repository](/github/administering-a-repository/managing-auto-merge-for-pull-requests-in-your-repository)" | +| Manage webhooks and deploy keys | "[Managing deploy keys](/developers/overview/managing-deploy-keys#deploy-keys)" | ## Collaborator access for a repository owned by a personal account diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/best-practices-for-leaving-your-company.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/best-practices-for-leaving-your-company.md index d17bd90d2e..aedaff2bc8 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/best-practices-for-leaving-your-company.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/best-practices-for-leaving-your-company.md @@ -27,7 +27,7 @@ Before you leave your company, make sure you update the following information in If you've been working with repositories that belong to an organization, you'll want to [remove yourself as a member of the organization](/articles/removing-yourself-from-an-organization). Note that if you are the organization owner, you should first [transfer ownership of the organization](/articles/transferring-organization-ownership) to another person. -Unless you're using a {% data variables.product.prodname_managed_user %}, you'll still be able to access your personal account, even after leaving the organization. For more information about {% data variables.product.prodname_emus %}, see "[About {% data variables.product.prodname_emus %}]({% ifversion not ghec%}/enterprise-cloud@latest{% endif %}/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users){% ifversion not ghec %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} +Unless you're using a {% data variables.enterprise.prodname_managed_user %}, you'll still be able to access your personal account, even after leaving the organization. For more information about {% data variables.product.prodname_emus %}, see "[About {% data variables.product.prodname_emus %}]({% ifversion not ghec%}/enterprise-cloud@latest{% endif %}/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users){% ifversion not ghec %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} ## Removing professional associations with personal repositories diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/deleting-your-personal-account.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/deleting-your-personal-account.md index 5ce32ba705..58818ffd11 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/deleting-your-personal-account.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/deleting-your-personal-account.md @@ -1,6 +1,6 @@ --- title: Deleting your personal account -intro: 'You can delete your personal account on {% data variables.product.product_location %} at any time.' +intro: 'You can delete your personal account on {% data variables.location.product_location %} at any time.' redirect_from: - /articles/deleting-a-user-account - /articles/deleting-your-user-account @@ -25,13 +25,13 @@ Deleting your personal account removes all repositories, forks of private reposi {% note %} -**Note**: If your enterprise manages your account and you sign into {% data variables.product.product_location %} through your company's identity provider (IdP), you cannot delete your account. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users)." +**Note**: If your enterprise manages your account and you sign into {% data variables.location.product_location %} through your company's identity provider (IdP), you cannot delete your account. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users)." {% endnote %} {% endif %} -{% ifversion fpt or ghec %}When you delete your account we stop billing you. The email address associated with the account becomes available for use with a different account on {% data variables.product.product_location %}. After 90 days, the account name also becomes available to anyone else to use on a new account. {% endif %} +{% ifversion fpt or ghec %}When you delete your account we stop billing you. The email address associated with the account becomes available for use with a different account on {% data variables.location.product_location %}. After 90 days, the account name also becomes available to anyone else to use on a new account. {% endif %} If you're the only owner of an organization, you must transfer ownership to another person or delete the organization before you can delete your personal account. If there are other owners in the organization, you must remove yourself from the organization before you can delete your personal account. diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/index.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/index.md index ab1c7a9394..6b1e5ab643 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/index.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/index.md @@ -1,6 +1,6 @@ --- title: Managing your personal account -intro: 'You can manage your personal account on {% ifversion fpt or ghec or ghes %}{% data variables.product.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}. For example, you can {% ifversion fpt or ghec %}manage multiple accounts, {% endif %}convert an account to an organization{% ifversion fpt or ghec or ghes %}, or delete an account{% endif %}.' +intro: 'You can manage your personal account on {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}. For example, you can {% ifversion fpt or ghec %}manage multiple accounts, {% endif %}convert an account to an organization{% ifversion fpt or ghec or ghes %}, or delete an account{% endif %}.' shortTitle: Manage personal account versions: fpt: '*' diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts.md index bab1201104..ac0abba21c 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts.md @@ -1,6 +1,6 @@ --- title: Managing multiple accounts -intro: 'If you use one workstation to contribute to projects for more than one account on {% data variables.product.product_location %}, you can modify your Git configuration to simplify the contribution process.' +intro: 'If you use one workstation to contribute to projects for more than one account on {% data variables.location.product_location %}, you can modify your Git configuration to simplify the contribution process.' versions: feature: multiple-accounts-one-workstation topics: @@ -12,9 +12,9 @@ shortTitle: Manage multiple accounts ## About management of multiple accounts -In some cases, you may need to use multiple accounts on {% data variables.product.product_location %}. For example, you may have a personal account for open source contributions, and your employer may also create and manage a user account for you within an enterprise. +In some cases, you may need to use multiple accounts on {% data variables.location.product_location %}. For example, you may have a personal account for open source contributions, and your employer may also create and manage a user account for you within an enterprise. -You cannot use your {% data variables.product.prodname_managed_user %} to contribute to public projects on {% data variables.product.product_location %}, so you must contribute to those resources using your personal account. For more information, see "[About {% data variables.product.prodname_emus %}]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users#abilities-and-restrictions-of-managed-user-accounts){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% elsif ghec %}."{% endif %} +You cannot use your {% data variables.enterprise.prodname_managed_user %} to contribute to public projects on {% data variables.location.product_location %}, so you must contribute to those resources using your personal account. For more information, see "[About {% data variables.product.prodname_emus %}]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users#abilities-and-restrictions-of-managed-user-accounts){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% elsif ghec %}."{% endif %} If you want to use one workstation to contribute from both accounts, you can simplify contribution with Git by using a mixture of protocols to access repository data, or by using credentials on a per-repository basis. @@ -24,21 +24,21 @@ If you want to use one workstation to contribute from both accounts, you can sim {% endwarning %} -If you aren't required to use a {% data variables.product.prodname_managed_user %}, {% data variables.product.company_short %} recommends that you use one personal account for all your work on {% data variables.product.product_location %}. With a single personal account, you can contribute to a combination of personal, open source, or professional projects using one identity. Other people can invite the account to contribute to both individual repositories and repositories owned by an organization, and the account can be a member of multiple organizations or enterprises. +If you aren't required to use a {% data variables.enterprise.prodname_managed_user %}, {% data variables.product.company_short %} recommends that you use one personal account for all your work on {% data variables.location.product_location %}. With a single personal account, you can contribute to a combination of personal, open source, or professional projects using one identity. Other people can invite the account to contribute to both individual repositories and repositories owned by an organization, and the account can be a member of multiple organizations or enterprises. ## Contributing to two accounts using HTTPS and SSH If you contribute with two accounts from one workstation, you can access repositories by using a different protocol and credentials for each account. -Git can use either the HTTPS or SSH protocol to access and update data in repositories on {% data variables.product.product_location %}. The protocol you use to clone a repository determines which credentials your workstation will use to authenticate when you access the repository. With this approach to account management, you store the credentials for one account to use for HTTPS connections and upload an SSH key to the other account to use for SSH connections. +Git can use either the HTTPS or SSH protocol to access and update data in repositories on {% data variables.location.product_location %}. The protocol you use to clone a repository determines which credentials your workstation will use to authenticate when you access the repository. With this approach to account management, you store the credentials for one account to use for HTTPS connections and upload an SSH key to the other account to use for SSH connections. You can find both the HTTPS or an SSH URLs for cloning a repository on {% data variables.product.product_name %}. For more information, see "[Cloning a repository](/repositories/creating-and-managing-repositories/cloning-a-repository)." For more information about the use of SSH to access repositories on {% data variables.product.product_name %}, see "[Connecting to {% data variables.product.prodname_dotcom %} with SSH](/authentication/connecting-to-github-with-ssh)." -## Contributing to multiple accounts using HTTPS and PATs +## Contributing to multiple accounts using HTTPS and {% data variables.product.pat_generic %}s -Alternatively, if you want to use the HTTPS protocol for both accounts, you can use different personal access tokens (PAT) for each account by configuring Git to store different credentials for each repository. +Alternatively, if you want to use the HTTPS protocol for both accounts, you can use different {% data variables.product.pat_generic %}s for each account by configuring Git to store different credentials for each repository. {% mac %} @@ -98,7 +98,7 @@ To use a different SSH key for different repositories that you clone to your wor 2. Choose the correct SSH key for authentication. 3. Modify `GIT_SSH_COMMAND` accordingly. For more information about `GIT_SSH_COMMAND`, see [Environment Variables](https://git-scm.com/docs/git#Documentation/git.txt-codeGITSSHCOMMANDcode) in the Git documentation. -For example, the following command sets the `GIT_SSH_COMMAND` environment variable to specify an SSH command that uses the private key file at **_PATH/TO/KEY/FILE_** for authentication to clone the repository named **_OWNER_**/**_REPOSITORY_** on {% data variables.product.product_location %}. +For example, the following command sets the `GIT_SSH_COMMAND` environment variable to specify an SSH command that uses the private key file at **_PATH/TO/KEY/FILE_** for authentication to clone the repository named **_OWNER_**/**_REPOSITORY_** on {% data variables.location.product_location %}.
 GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY
diff --git a/content/actions/automating-builds-and-tests/about-continuous-integration.md b/content/actions/automating-builds-and-tests/about-continuous-integration.md
index abe756b715..eed83fb6ff 100644
--- a/content/actions/automating-builds-and-tests/about-continuous-integration.md
+++ b/content/actions/automating-builds-and-tests/about-continuous-integration.md
@@ -51,7 +51,7 @@ For a definition of common terms, see "[Core concepts for {% data variables.prod
 
 {% data variables.product.product_name %} offers CI starter workflow for a variety of languages and frameworks.
 
-Browse the complete list of CI starter workflow offered by {% data variables.product.company_short %} in the {% ifversion fpt or ghec %}[actions/starter-workflows](https://github.com/actions/starter-workflows/tree/main/ci) repository{% else %} `actions/starter-workflows` repository on {% data variables.product.product_location %}{% endif %}.
+Browse the complete list of CI starter workflow offered by {% data variables.product.company_short %} in the {% ifversion fpt or ghec %}[actions/starter-workflows](https://github.com/actions/starter-workflows/tree/main/ci) repository{% else %} `actions/starter-workflows` repository on {% data variables.location.product_location %}{% endif %}.
 
 ## Further reading
 
diff --git a/content/actions/creating-actions/creating-a-composite-action.md b/content/actions/creating-actions/creating-a-composite-action.md
index 5874bfae6e..382e81006b 100644
--- a/content/actions/creating-actions/creating-a-composite-action.md
+++ b/content/actions/creating-actions/creating-a-composite-action.md
@@ -27,9 +27,9 @@ Once you complete this project, you should understand how to build your own comp
 
 ## Prerequisites
 
-Before you begin, you'll create a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}.
+Before you begin, you'll create a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}.
 
-1. Create a new public repository on {% data variables.product.product_location %}. You can choose any repository name, or use the following `hello-world-composite-action` example. You can add these files after your project has been pushed to {% data variables.product.product_name %}. For more information, see "[Create a new repository](/articles/creating-a-new-repository)."
+1. Create a new public repository on {% data variables.location.product_location %}. You can choose any repository name, or use the following `hello-world-composite-action` example. You can add these files after your project has been pushed to {% data variables.product.product_name %}. For more information, see "[Create a new repository](/articles/creating-a-new-repository)."
 
 1. Clone your repository to your computer. For more information, see "[Cloning a repository](/articles/cloning-a-repository)."
 
diff --git a/content/actions/creating-actions/creating-a-docker-container-action.md b/content/actions/creating-actions/creating-a-docker-container-action.md
index 6d91c1035f..6ea8fbe52c 100644
--- a/content/actions/creating-actions/creating-a-docker-container-action.md
+++ b/content/actions/creating-actions/creating-a-docker-container-action.md
@@ -44,7 +44,7 @@ You may find it helpful to have a basic understanding of {% data variables.produ
 
 Before you begin, you'll need to create a {% data variables.product.prodname_dotcom %} repository.
 
-1. Create a new repository on {% data variables.product.product_location %}. You can choose any repository name or use "hello-world-docker-action" like this example. For more information, see "[Create a new repository](/articles/creating-a-new-repository)."
+1. Create a new repository on {% data variables.location.product_location %}. You can choose any repository name or use "hello-world-docker-action" like this example. For more information, see "[Create a new repository](/articles/creating-a-new-repository)."
 
 1. Clone your repository to your computer. For more information, see "[Cloning a repository](/articles/cloning-a-repository)."
 
diff --git a/content/actions/creating-actions/creating-a-javascript-action.md b/content/actions/creating-actions/creating-a-javascript-action.md
index 66fc48555f..5a1ea071a9 100644
--- a/content/actions/creating-actions/creating-a-javascript-action.md
+++ b/content/actions/creating-actions/creating-a-javascript-action.md
@@ -41,7 +41,7 @@ Before you begin, you'll need to download Node.js and create a public {% data va
 
   {% ifversion fpt or ghes > 3.3 or ghae > 3.3 or ghec %}https://nodejs.org/en/download/{% else %}https://nodejs.org/en/download/releases/{% endif %}
 
-1. Create a new public repository on {% data variables.product.product_location %} and call it "hello-world-javascript-action". For more information, see "[Create a new repository](/articles/creating-a-new-repository)."
+1. Create a new public repository on {% data variables.location.product_location %} and call it "hello-world-javascript-action". For more information, see "[Create a new repository](/articles/creating-a-new-repository)."
 
 1. Clone your repository to your computer. For more information, see "[Cloning a repository](/articles/cloning-a-repository)."
 
@@ -141,29 +141,31 @@ In your `hello-world-javascript-action` directory, create a `README.md` file tha
 - Environment variables the action uses.
 - An example of how to use your action in a workflow.
 
-```markdown{:copy}
+````markdown{:copy}
 # Hello world javascript action
 
 This action prints "Hello World" or "Hello" + the name of a person to greet to the log.
 
 ## Inputs
 
-## `who-to-greet`
+### `who-to-greet`
 
 **Required** The name of the person to greet. Default `"World"`.
 
 ## Outputs
 
-## `time`
+### `time`
 
 The time we greeted you.
 
 ## Example usage
 
+```yaml
 uses: actions/hello-world-javascript-action@v1.1
 with:
   who-to-greet: 'Mona the Octocat'
 ```
+````
 
 ## Commit, tag, and push your action to GitHub
 
diff --git a/content/actions/deployment/about-deployments/deploying-with-github-actions.md b/content/actions/deployment/about-deployments/deploying-with-github-actions.md
index 281b69f1cc..31f3680e14 100644
--- a/content/actions/deployment/about-deployments/deploying-with-github-actions.md
+++ b/content/actions/deployment/about-deployments/deploying-with-github-actions.md
@@ -147,7 +147,7 @@ You can also view the logs of each workflow run and the history of workflow runs
 ## Tracking deployments through apps
 
 {% ifversion fpt or ghec %}
-If your personal account or organization on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} is integrated with Microsoft Teams or Slack, you can track deployments that use environments through Microsoft Teams or Slack. For example, you can receive notifications through the app when a deployment is pending approval, when a deployment is approved, or when the deployment status changes. For more information about integrating  Microsoft Teams or Slack, see "[GitHub extensions and integrations](/github/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations#team-communication-tools)."
+If your personal account or organization on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} is integrated with Microsoft Teams or Slack, you can track deployments that use environments through Microsoft Teams or Slack. For example, you can receive notifications through the app when a deployment is pending approval, when a deployment is approved, or when the deployment status changes. For more information about integrating  Microsoft Teams or Slack, see "[GitHub extensions and integrations](/github/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations#team-communication-tools)."
 {% endif %}
 
 You can also build an app that uses deployment and deployment status webhooks to track deployments. {% data reusables.actions.environment-deployment-event %} For more information, see "[Apps](/developers/apps)" and "[Webhook events and payloads](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#deployment)."
diff --git a/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md b/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md
index c857ecebd0..29abd3f106 100644
--- a/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md
+++ b/content/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-docker-to-azure-app-service.md
@@ -55,9 +55,9 @@ Before creating your {% data variables.product.prodname_actions %} workflow, you
 
 1. Set registry credentials for your web app.
 
-   Create a personal access token with the `repo` and `read:packages` scopes. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)."
+   Create a {% data variables.product.pat_v1 %} with the `repo` and `read:packages` scopes. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)."
 
-   Set `DOCKER_REGISTRY_SERVER_URL` to `https://ghcr.io`, `DOCKER_REGISTRY_SERVER_USERNAME` to the GitHub username or organization that owns the repository, and `DOCKER_REGISTRY_SERVER_PASSWORD` to your personal access token from above. This will give your web app credentials so it can pull the container image after your workflow pushes a newly built image to the registry. You can do this with the following Azure CLI command:
+   Set `DOCKER_REGISTRY_SERVER_URL` to `https://ghcr.io`, `DOCKER_REGISTRY_SERVER_USERNAME` to the GitHub username or organization that owns the repository, and `DOCKER_REGISTRY_SERVER_PASSWORD` to your {% data variables.product.pat_generic %} from above. This will give your web app credentials so it can pull the container image after your workflow pushes a newly built image to the registry. You can do this with the following Azure CLI command:
 
    ```shell
     az webapp config appsettings set \
diff --git a/content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md b/content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md
index 40a00cfb3f..30c0ee6762 100644
--- a/content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md
+++ b/content/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md
@@ -279,19 +279,21 @@ After this setting is applied, the JWT will contain the updated `iss` value. In
 
 {% endif %}
 
-### Customizing the subject claims for an organization
+### Customizing the subject claims for an organization or repository
 
-To configure organization-wide security, compliance, and standardization, you can customize the standard claims to suit your required access conditions. If your cloud provider supports conditions on subject claims, you can create a condition that checks whether the `sub` value matches the path of the reusable workflow, such as `"job_workflow_ref: "octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main""`. The exact format will vary depending on your cloud provider's OIDC configuration. To configure the matching condition on {% data variables.product.prodname_dotcom %}, you can can use the REST API to require that the `sub` claim must always include a specific custom claim, such as `job_workflow_ref`. For more information, see "[Set the customization template for an OIDC subject claim for an organization](/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization)."
+To help improve security, compliance, and standardization, you can customize the standard claims to suit your required access conditions. If your cloud provider supports conditions on subject claims, you can create a condition that checks whether the `sub` value matches the path of the reusable workflow, such as `"job_workflow_ref: "octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main""`. The exact format will vary depending on your cloud provider's OIDC configuration. To configure the matching condition on {% data variables.product.prodname_dotcom %}, you can can use the REST API to require that the `sub` claim must always include a specific custom claim, such as `job_workflow_ref`. You can use the [OIDC REST API](/rest/actions/oidc) to apply a customization template for the OIDC subject claim; for example, you can require that the `sub` claim within the OIDC token must always include a specific custom claim, such as `job_workflow_ref`.
 
 Customizing the claims results in a new format for the entire `sub` claim, which replaces the default predefined `sub` format in the token described in "[Example subject claims](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#example-subject-claims)."
 
-The following example templates demonstrate various ways to customize the subject claim. To configure these settings on {% data variables.product.prodname_dotcom %}, organization admins use the REST API to specify a list of claims that must be included in the subject (`sub`) claim. {% data reusables.actions.use-request-body-api %}
+The following example templates demonstrate various ways to customize the subject claim. To configure these settings on {% data variables.product.prodname_dotcom %}, admins use the REST API to specify a list of claims that must be included in the subject (`sub`) claim. 
+
+{% data reusables.actions.use-request-body-api %}
 
 To customize your subject claims, you should first create a matching condition in your cloud provider's OIDC configuration, before customizing the configuration using the REST API. Once the configuration is completed, each time a new job runs, the OIDC token generated during that job will follow the new customization template. If the matching condition doesn't exist in the cloud provider's OIDC configuration before the job runs, the generated token might not be accepted by the cloud provider, since the cloud conditions may not be synchronized.
 
 {% note %}
 
-**Note**: When the organization template is applied, it will not affect any existing repositories that already use OIDC. For existing repositories, as well as any new repositories that are created after the template has been applied, the repository owner will need to opt-in to receive this configuration. For more information, see "[Set the opt-in flag of an OIDC subject claim customization for a repository](/rest/actions/oidc#set-the-opt-in-flag-of-an-oidc-subject-claim-customization-for-a-repository)."
+**Note**: When the organization template is applied, it will not affect any action workflows in existing repositories that already use OIDC. For existing repositories, as well as any new repositories that are created after the template has been applied, the repository owner will need to opt-in to receive this configuration, or alternatively could apply a different configuration specific to the repo. For more information, see "[Set the customization template for an OIDC subject claim for a repository](/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository)."
 
 {% endnote %}
 
@@ -312,7 +314,9 @@ In your cloud provider's OIDC configuration, configure the `sub` condition to re
 
 #### Example: Allowing access to all repositories with a specific owner
 
-This example template enables the `sub` claim to have a new format with only the value of `repository_owner`. {% data reusables.actions.use-request-body-api %}
+This example template enables the `sub` claim to have a new format with only the value of `repository_owner`. 
+
+{% data reusables.actions.use-request-body-api %}
 
 ```json
 {
@@ -343,7 +347,9 @@ In your cloud provider's OIDC configuration, configure the `sub` condition to re
 
 #### Example: Requiring a reusable workflow and other claims
 
-The following example template combines the requirement of a specific reusable workflow with additional claims. {% data reusables.actions.use-request-body-api %}
+The following example template combines the requirement of a specific reusable workflow with additional claims.
+
+{% data reusables.actions.use-request-body-api %}
 
 This example also demonstrates how to use `"context"` to define your conditions. This is the part that follows the repository in the [default `sub` format](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#example-subject-claims). For example, when the job references an environment, the context contains: `environment:`.
 
@@ -380,7 +386,9 @@ In your cloud provider's OIDC configuration, configure the `sub` condition to re
 
 #### Example: Using system-generated GUIDs
 
-This example template enables predictable OIDC claims with system-generated GUIDs that do not change between renames of entities (such as renaming a repository). {% data reusables.actions.use-request-body-api %}
+This example template enables predictable OIDC claims with system-generated GUIDs that do not change between renames of entities (such as renaming a repository). 
+
+{% data reusables.actions.use-request-body-api %}
 
 ```json
   {
@@ -406,7 +414,9 @@ In your cloud provider's OIDC configuration, configure the `sub` condition to re
 
 #### Resetting your customizations
 
-This example template resets the subject claims to the default format. {% data reusables.actions.use-request-body-api %} This template effectively opts out of any organization-level customization policy.
+This example template resets the subject claims to the default format. This template effectively opts out of any organization-level customization policy.
+
+{% data reusables.actions.use-request-body-api %}
 
 ```json
 {
@@ -421,7 +431,7 @@ In your cloud provider's OIDC configuration, configure the `sub` condition to re
 
 #### Using the default subject claims
 
-For repositories that can receive a subject claim policy from their organization, the repository owner can later choose to opt-out and instead use the default `sub` claim format. To configure this, the repository admin must use the REST API endpoint at "[Set the opt-out flag of an OIDC subject claim customization for a repository](/rest/actions/oidc#set-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository)" with the following request body:
+For repositories that can receive a subject claim policy from their organization, the repository owner can later choose to opt-out and instead use the default `sub` claim format. To configure this, the repository admin must use the REST API endpoint at "[Set the customization template for an OIDC subject claim for a repository](/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository)" with the following request body:
 
 ```json
 {
diff --git a/content/actions/examples/using-concurrency-expressions-and-a-test-matrix.md b/content/actions/examples/using-concurrency-expressions-and-a-test-matrix.md
index c568c90391..3a4f73c6f2 100644
--- a/content/actions/examples/using-concurrency-expressions-and-a-test-matrix.md
+++ b/content/actions/examples/using-concurrency-expressions-and-a-test-matrix.md
@@ -112,7 +112,7 @@ jobs:
           # NOT clone them initially and instead, include them manually
           # only for the test groups that we know need the files.
           lfs: {% raw %}${{ matrix.test-group == 'content' }}{% endraw %}
-          # Enables cloning the Early Access repo later with the relevant PAT
+          # Enables cloning the Early Access repo later with the relevant {% data variables.product.pat_generic %}
           persist-credentials: 'false'
 
       - name: Figure out which docs-early-access branch to checkout, if internal repo
diff --git a/content/actions/examples/using-scripts-to-test-your-code-on-a-runner.md b/content/actions/examples/using-scripts-to-test-your-code-on-a-runner.md
index 082a529264..97f11107af 100644
--- a/content/actions/examples/using-scripts-to-test-your-code-on-a-runner.md
+++ b/content/actions/examples/using-scripts-to-test-your-code-on-a-runner.md
@@ -41,7 +41,7 @@ topics:
 
 ## Example workflow
 
-{% data reusables.actions.example-docs-engineering-intro %} [`link-check-all.yml`](https://github.com/github/docs/blob/main/.github/workflows/link-check-all.yml).
+{% data reusables.actions.example-docs-engineering-intro %} [`check-broken-links-github-github.yml`](https://github.com/github/docs/blob/main/.github/workflows/check-broken-links-github-github.yml).
 
 {% data reusables.actions.note-understanding-example %}
 
diff --git a/content/actions/hosting-your-own-runners/about-self-hosted-runners.md b/content/actions/hosting-your-own-runners/about-self-hosted-runners.md
index 79bbe18b9c..f66ea675e4 100644
--- a/content/actions/hosting-your-own-runners/about-self-hosted-runners.md
+++ b/content/actions/hosting-your-own-runners/about-self-hosted-runners.md
@@ -17,7 +17,7 @@ type: overview
 
 ## About self-hosted runners
 
-A self-hosted runner is a system that you deploy and manage to execute jobs from {% data variables.product.prodname_actions %} on {% ifversion ghae or ghec %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. For more information about {% data variables.product.prodname_actions %}, see "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions){% ifversion fpt %}."{% elsif ghec or ghes or ghae %}" and "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)."{% endif %}
+A self-hosted runner is a system that you deploy and manage to execute jobs from {% data variables.product.prodname_actions %} on {% ifversion ghae or ghec %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. For more information about {% data variables.product.prodname_actions %}, see "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions){% ifversion fpt %}."{% elsif ghec or ghes or ghae %}" and "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)."{% endif %}
 
 {% data reusables.actions.self-hosted-runner-description %} {% data reusables.actions.self-hosted-runner-locations %}
 
@@ -143,14 +143,14 @@ The self-hosted runner connects to {% data variables.product.product_name %} to
 {% data reusables.actions.self-hosted-runner-ports-protocols %}
 
 {% ifversion fpt or ghec %}
-Since the self-hosted runner opens a connection to {% data variables.product.product_location %}, you do not need to allow {% data variables.product.prodname_dotcom %} to make inbound connections to your self-hosted runner.
+Since the self-hosted runner opens a connection to {% data variables.location.product_location %}, you do not need to allow {% data variables.product.prodname_dotcom %} to make inbound connections to your self-hosted runner.
 {% elsif ghes or ghae %}
-Only an outbound connection from the runner to {% data variables.product.product_location %} is required. There is no need for an inbound connection from {% data variables.product.product_location %} to the runner.
+Only an outbound connection from the runner to {% data variables.location.product_location %} is required. There is no need for an inbound connection from {% data variables.location.product_location %} to the runner.
 {%- endif %}
 
 {% ifversion ghes %}
 
-{% data variables.product.product_name %} must accept inbound connections from your runners over {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} at {% data variables.product.product_location %}'s hostname and API subdomain, and your runners must allow outbound connections over {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} to {% data variables.product.product_location %}'s hostname and API subdomain.
+{% data variables.product.product_name %} must accept inbound connections from your runners over {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} at {% data variables.location.product_location %}'s hostname and API subdomain, and your runners must allow outbound connections over {% ifversion ghes %}HTTP(S){% else %}HTTPS{% endif %} to {% data variables.location.product_location %}'s hostname and API subdomain.
 
 {% elsif ghae %}
 
@@ -217,7 +217,7 @@ If you use an IP address allow list for your {% data variables.product.prodname_
 
 {% else %}
 
-{% ifversion ghes %}Self-hosted runners do not require any external internet access in order to function. As a result, you can use network routing to direct communication between the self-hosted runner and {% data variables.product.product_location %}. For example, you can assign a private IP address to your self-hosted runner and configure routing to send traffic to {% data variables.product.product_location %}, with no need for traffic to traverse a public network.{% endif %}
+{% ifversion ghes %}Self-hosted runners do not require any external internet access in order to function. As a result, you can use network routing to direct communication between the self-hosted runner and {% data variables.location.product_location %}. For example, you can assign a private IP address to your self-hosted runner and configure routing to send traffic to {% data variables.location.product_location %}, with no need for traffic to traverse a public network.{% endif %}
 
 {% endif %}
 
@@ -233,7 +233,7 @@ For more information about troubleshooting common network connectivity issues, s
 
 ## Communication between self-hosted runners and {% data variables.product.prodname_dotcom_the_website %}
 
-Self-hosted runners do not need to connect to {% data variables.product.prodname_dotcom_the_website %} unless you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions for {% data variables.product.product_location %}. For more information, see "[About using actions in your enterprise](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise)."
+Self-hosted runners do not need to connect to {% data variables.product.prodname_dotcom_the_website %} unless you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions for {% data variables.location.product_location %}. For more information, see "[About using actions in your enterprise](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise)."
 
 If you have enabled automatic access to {% data variables.product.prodname_dotcom_the_website %} actions, then the self-hosted runner will connect directly to {% data variables.product.prodname_dotcom_the_website %} to download actions. You must ensure that the machine has the appropriate network access to communicate with the {% data variables.product.prodname_dotcom %} URLs listed below. 
 
diff --git a/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md b/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md
index 02a70e8c26..0e597853c7 100644
--- a/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md
+++ b/content/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners.md
@@ -37,12 +37,12 @@ shortTitle: Monitor & troubleshoot
 
 ### Checking self-hosted runner network connectivity
 
-You can use the self-hosted runner application's `run` script with the `--check` parameter to check that a self-hosted runner can access all required network services on {% data variables.product.product_location %}.
+You can use the self-hosted runner application's `run` script with the `--check` parameter to check that a self-hosted runner can access all required network services on {% data variables.location.product_location %}.
 
 In addition to `--check`, you must provide two arguments to the script:
 
 * `--url` with the URL to your {% data variables.product.company_short %} repository, organization, or enterprise. For example, `--url https://github.com/octo-org/octo-repo`.
-* `--pat` with the value of a personal access token, which must have the `workflow` scope. For example, `--pat ghp_abcd1234`. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)."
+* `--pat` with the value of a {% data variables.product.pat_v1 %}, which must have the `workflow` scope{% ifversion pat-v2%}, or a {% data variables.product.pat_v2 %} with workflows read and write access {% endif %}. For example, `--pat ghp_abcd1234`. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)."
 
 For example:
 
@@ -260,7 +260,7 @@ User=runner-user
 {% endlinux %}
 
 {% ifversion ghes %}
-## Resolving runners that are offline after an upgrade of {% data variables.product.product_location %}
+## Resolving runners that are offline after an upgrade of {% data variables.location.product_location %}
 
 {% data reusables.actions.upgrade-runners-before-upgrade-ghes %} 
 
diff --git a/content/actions/learn-github-actions/environment-variables.md b/content/actions/learn-github-actions/environment-variables.md
index eb07fac1ae..60f517beb6 100644
--- a/content/actions/learn-github-actions/environment-variables.md
+++ b/content/actions/learn-github-actions/environment-variables.md
@@ -118,7 +118,7 @@ In most places in a workflow, the only types of variables that you can use are e
 
 When you set a custom environment variable, you cannot use any of the default environment variable names. For a complete list of these, see "[Default environment variables](#default-environment-variables)" below. If you attempt to override the value of one of these default environment variables, the assignment is ignored.
 
-Any new environment variables you set that point to a location on the filesystem should have a `_PATH` suffix. The `HOME`, `GITHUB_ENV`, and `GITHUB_WORKSPACE` default environment variables are exceptions to this convention.
+Any new environment variables you set that point to a location on the filesystem should have a `_PATH` suffix. The `GITHUB_ENV` and `GITHUB_WORKSPACE` default environment variables are exceptions to this convention.
 
 ## Default environment variables
 
diff --git a/content/actions/learn-github-actions/understanding-github-actions.md b/content/actions/learn-github-actions/understanding-github-actions.md
index da677ef353..c839f81150 100644
--- a/content/actions/learn-github-actions/understanding-github-actions.md
+++ b/content/actions/learn-github-actions/understanding-github-actions.md
@@ -33,7 +33,7 @@ topics:
 
 {% elsif ghes or ghae %}
 
-You must host your own Linux, Windows, or macOS virtual machines to run workflows for {% data variables.product.product_location %}. {% data reusables.actions.self-hosted-runner-locations %}
+You must host your own Linux, Windows, or macOS virtual machines to run workflows for {% data variables.location.product_location %}. {% data reusables.actions.self-hosted-runner-locations %}
 
 {% endif %}
 
diff --git a/content/actions/managing-issues-and-pull-requests/moving-assigned-issues-on-project-boards.md b/content/actions/managing-issues-and-pull-requests/moving-assigned-issues-on-project-boards.md
index bd7a9e6115..84c4fdbf19 100644
--- a/content/actions/managing-issues-and-pull-requests/moving-assigned-issues-on-project-boards.md
+++ b/content/actions/managing-issues-and-pull-requests/moving-assigned-issues-on-project-boards.md
@@ -56,8 +56,8 @@ In the tutorial, you will first make a workflow file that uses the [`alex-page/g
    - Change the value for `project` to the name of your project board. If you have multiple project boards with the same name, the `alex-page/github-project-automation-plus` action will act on all projects with the specified name.
    - Change the value for `column` to the name of the column where you want issues to move when they are assigned.
    - Change the value for `repo-token`:
-     1. Create a personal access token with the `repo` scope. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)."
-     1. Store this personal access token as a secret in your repository. For more information about storing secrets, see "[Encrypted secrets](/actions/reference/encrypted-secrets)."
+     1. Create a {% data variables.product.pat_v1 %} with the `repo` scope. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)."
+     1. Store this {% data variables.product.pat_generic %} as a secret in your repository. For more information about storing secrets, see "[Encrypted secrets](/actions/reference/encrypted-secrets)."
      1. In your workflow file, replace `PERSONAL_ACCESS_TOKEN` with the name of your secret.
 6. {% data reusables.actions.commit-workflow %}
 
diff --git a/content/actions/publishing-packages/publishing-nodejs-packages.md b/content/actions/publishing-packages/publishing-nodejs-packages.md
index 908764eb17..34ccc87811 100644
--- a/content/actions/publishing-packages/publishing-nodejs-packages.md
+++ b/content/actions/publishing-packages/publishing-nodejs-packages.md
@@ -115,7 +115,7 @@ If you do provide the `repository` key in your *package.json* file, then the rep
 
 To perform authenticated operations against the {% data variables.product.prodname_registry %} registry in your workflow, you can use the `GITHUB_TOKEN`. {% data reusables.actions.github-token-permissions %}
 
-If you want to publish your package to a different repository, you must use a personal access token (PAT) that has permission to write to packages in the destination repository. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)" and "[Encrypted secrets](/actions/reference/encrypted-secrets)."
+If you want to publish your package to a different repository, you must use a {% data variables.product.pat_v1 %} that has permission to write to packages in the destination repository. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)" and "[Encrypted secrets](/actions/reference/encrypted-secrets)."
 
 ### Example workflow
 
diff --git a/content/actions/security-guides/automatic-token-authentication.md b/content/actions/security-guides/automatic-token-authentication.md
index 34239bf6e5..a7a52992a7 100644
--- a/content/actions/security-guides/automatic-token-authentication.md
+++ b/content/actions/security-guides/automatic-token-authentication.md
@@ -117,9 +117,9 @@ The permissions for the `GITHUB_TOKEN` are initially set to the default setting
 
 ### Granting additional permissions
 
-If you need a token that requires permissions that aren't available in the `GITHUB_TOKEN`, you can create a personal access token and set it as a secret in your repository:
+If you need a token that requires permissions that aren't available in the `GITHUB_TOKEN`, you can create a {% data variables.product.pat_generic %} and set it as a secret in your repository:
 
-1. Use or create a token with the appropriate permissions for that repository. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)."
+1. Use or create a token with the appropriate permissions for that repository. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)."
 1. Add the token as a secret in your workflow's repository, and refer to it using the {%raw%}`${{ secrets.SECRET_NAME }}`{% endraw %} syntax. For more information, see "[Creating and using encrypted secrets](/github/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)."
 
 ### Further reading
diff --git a/content/actions/security-guides/encrypted-secrets.md b/content/actions/security-guides/encrypted-secrets.md
index e678c2474c..cd8cf7b99a 100644
--- a/content/actions/security-guides/encrypted-secrets.md
+++ b/content/actions/security-guides/encrypted-secrets.md
@@ -60,7 +60,7 @@ You can also manage secrets using the REST API. For more information, see "[Secr
 
 ### Limiting credential permissions
 
-When generating credentials, we recommend that you grant the minimum permissions possible. For example, instead of using personal credentials, use [deploy keys](/developers/overview/managing-deploy-keys#deploy-keys) or a service account. Consider granting read-only permissions if that's all that is needed, and limit access as much as possible. When generating a personal access token (PAT), select the fewest scopes necessary.
+When generating credentials, we recommend that you grant the minimum permissions possible. For example, instead of using personal credentials, use [deploy keys](/developers/overview/managing-deploy-keys#deploy-keys) or a service account. Consider granting read-only permissions if that's all that is needed, and limit access as much as possible. When generating a {% data variables.product.pat_v1 %}, select the fewest scopes necessary.{% ifversion pat-v2 %} When generating a {% data variables.product.pat_v2 %}, select the minimum repository access required.{% endif %}
 
 {% note %}
 
diff --git a/content/actions/security-guides/security-hardening-for-github-actions.md b/content/actions/security-guides/security-hardening-for-github-actions.md
index 9b7fb1a826..5a18705739 100644
--- a/content/actions/security-guides/security-hardening-for-github-actions.md
+++ b/content/actions/security-guides/security-hardening-for-github-actions.md
@@ -261,11 +261,11 @@ This list describes the recommended approaches for accessing repository data wit
     - Note that deploy keys can only clone and push to the repository using Git, and cannot be used to interact with the REST or GraphQL API, so they may not be appropriate for your requirements.
 3. **{% data variables.product.prodname_github_app %} tokens**
     - {% data variables.product.prodname_github_apps %} can be installed on select repositories, and even have granular permissions on the resources within them. You could create a {% data variables.product.prodname_github_app %} internal to your organization, install it on the repositories you need access to within your workflow, and authenticate as the installation within your workflow to access those repositories.
-4. **Personal access tokens**
-    - You should never use personal access tokens from your own account. These tokens grant access to all repositories within the organizations that you have access to, as well as all personal repositories in your personal account. This indirectly grants broad access to all write-access users of the repository the workflow is in. In addition, if you later leave an organization, workflows using this token will immediately break, and debugging this issue can be challenging.
-    - If a personal access token is used, it should be one that was generated for a new account that is only granted access to the specific repositories that are needed for the workflow. Note that this approach is not scalable and should be avoided in favor of alternatives, such as deploy keys.
+4. **{% data variables.product.pat_generic %}s**
+    - You should never use a {% data variables.product.pat_v1 %}. These tokens grant access to all repositories within the organizations that you have access to, as well as all personal repositories in your personal account. This indirectly grants broad access to all write-access users of the repository the workflow is in.
+    - If you do use a {% data variables.product.pat_generic %}, you should never use a {% data variables.product.pat_generic %} from your own account. If you later leave an organization, workflows using this token will immediately break, and debugging this issue can be challenging. Instead, you should use a {% ifversion pat-v2%}{% data variables.product.pat_v2 %}s{% else %}{% data variables.product.pat_generic %}s{% endif %} for a new account that belongs to your organization and that is only granted access to the specific repositories that are needed for the workflow. Note that this approach is not scalable and should be avoided in favor of alternatives, such as deploy keys.
 5. **SSH keys on a personal account**
-    - Workflows should never use the SSH keys on a personal account. Similar to personal access tokens, they grant read/write permissions to all of your personal repositories as well as all the repositories you have access to through organization membership.  This indirectly grants broad access to all write-access users of the repository the workflow is in. If you're intending to use an SSH key because you only need to perform repository clones or pushes, and do not need to interact with public APIs, then you should use individual deploy keys instead.
+    - Workflows should never use the SSH keys on a personal account. Similar to {% data variables.product.pat_v1_plural %}, they grant read/write permissions to all of your personal repositories as well as all the repositories you have access to through organization membership.  This indirectly grants broad access to all write-access users of the repository the workflow is in. If you're intending to use an SSH key because you only need to perform repository clones or pushes, and do not need to interact with public APIs, then you should use individual deploy keys instead.
 
 ## Hardening for self-hosted runners
 
diff --git a/content/actions/using-github-hosted-runners/about-github-hosted-runners.md b/content/actions/using-github-hosted-runners/about-github-hosted-runners.md
index 16defd8a7e..d47babe64e 100644
--- a/content/actions/using-github-hosted-runners/about-github-hosted-runners.md
+++ b/content/actions/using-github-hosted-runners/about-github-hosted-runners.md
@@ -90,7 +90,7 @@ While the job runs, the logs and output can be viewed in the {% data variables.p
 
 {% note %}
 
-**Note**: {% data variables.product.prodname_dotcom %} also offers {% data variables.actions.hosted_runner %}s, which are available in larger configurations. For more information, see "[Using {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/using-larger-runners)." 
+**Note**: {% data variables.product.prodname_dotcom %} also offers {% data variables.actions.hosted_runner %}s, which are available in larger configurations. For more information, see "[Machine specs for {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/using-larger-runners#machine-specs-for-larger-runners)."  
 
 {% endnote %}
 {% endif %}
diff --git a/content/actions/using-github-hosted-runners/using-larger-runners.md b/content/actions/using-github-hosted-runners/using-larger-runners.md
index e3251b78a6..d4f33140a6 100644
--- a/content/actions/using-github-hosted-runners/using-larger-runners.md
+++ b/content/actions/using-github-hosted-runners/using-larger-runners.md
@@ -14,6 +14,16 @@ In addition to the [standard {% data variables.product.prodname_dotcom %}-hosted
 
 When you add a {% data variables.actions.hosted_runner %} to an organization, you are defining a type of machine from a selection of available hardware specifications and operating system images. {% data variables.product.prodname_dotcom %} will then create multiple instances of this runner that scale up and down to match the job demands of your organization, based on the autoscaling limits you define.
 
+## Machine specs for {% data variables.actions.hosted_runner %}s 
+
+|Size (vcpu) | Memory (GB) | Storage (SSD) |
+| ------------- | ------------- | ------------- |
+|4 cores | 16  RAM  | 150 GB|
+| 8 cores | 32 RAM | 300 GB |
+|16 cores| 64 RAM | 600 GB |
+|32 cores| 128 RAM| 1200 GB|
+|64 cores| 256 RAM | 2040 GB|
+
 ## Architectural overview of {% data variables.actions.hosted_runner %}s
 
 The {% data variables.actions.hosted_runner %}s are managed at the organization level, where they are arranged into groups that can contain multiple instances of the runner. They can also be created at the enterprise level and shared with organizations in the hierarchy. Once you've created a group, you can then add a runner to the group and update your workflows to target the label assigned to the {% data variables.actions.hosted_runner %}. You can also control which repositories are permitted to send jobs to the group for processing. For more information about groups, see "[Controlling access to {% data variables.actions.hosted_runner %}s](/actions/using-github-hosted-runners/controlling-access-to-larger-runners)."
diff --git a/content/actions/using-workflows/events-that-trigger-workflows.md b/content/actions/using-workflows/events-that-trigger-workflows.md
index 52a8fc5cf1..fa4f441d04 100644
--- a/content/actions/using-workflows/events-that-trigger-workflows.md
+++ b/content/actions/using-workflows/events-that-trigger-workflows.md
@@ -1264,7 +1264,7 @@ on: workflow_call
 
 | Webhook event payload | Activity types | `GITHUB_SHA` | `GITHUB_REF` |
 | ------------------ | ------------ | ------------ | ------------------|
-| [workflow_dispatch](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads/#workflow_dispatch) | n/a | Last commit on the `GITHUB_REF` branch | Branch that received dispatch |
+| [workflow_dispatch](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads/#workflow_dispatch) | n/a | Last commit on the `GITHUB_REF` branch or tag | Branch or tag that received dispatch |
 
 To manually trigger a workflow, use the `workflow_dispatch` event. You can manually trigger a workflow run using the {% data variables.product.product_name %} API, {% data variables.product.prodname_cli %}, or {% data variables.product.product_name %} browser interface. For more information, see "[Manually running a workflow](/actions/managing-workflow-runs/manually-running-a-workflow)."
 
diff --git a/content/actions/using-workflows/reusing-workflows.md b/content/actions/using-workflows/reusing-workflows.md
index 79095d002c..7186ebf265 100644
--- a/content/actions/using-workflows/reusing-workflows.md
+++ b/content/actions/using-workflows/reusing-workflows.md
@@ -76,7 +76,7 @@ Called workflows that are owned by the same user or organization{% ifversion ghe
 ## Limitations
 
 {% ifversion nested-reusable-workflow %}
-* You can connect up to four levels of workflows. For more information, see "[Calling a nested reusable workflow](#calling-a-nested-reusable-workflow)."
+* You can connect up to four levels of workflows. For more information, see "[Nesting reusable workflows](#nesting-reusable-workflows)."
 {% else %}
 * Reusable workflows can't call other reusable workflows.
 {% endif %}
diff --git a/content/actions/using-workflows/storing-workflow-data-as-artifacts.md b/content/actions/using-workflows/storing-workflow-data-as-artifacts.md
index 7b9da28751..0be100e2ea 100644
--- a/content/actions/using-workflows/storing-workflow-data-as-artifacts.md
+++ b/content/actions/using-workflows/storing-workflow-data-as-artifacts.md
@@ -41,13 +41,13 @@ Storing artifacts uses storage space on {% data variables.product.product_name %
 
 {% else %}
 
-Artifacts consume storage space on the external blob storage that is configured for {% data variables.product.prodname_actions %} on {% data variables.product.product_location %}.
+Artifacts consume storage space on the external blob storage that is configured for {% data variables.product.prodname_actions %} on {% data variables.location.product_location %}.
 
 {% endif %}
 
 Artifacts are uploaded during a workflow run, and you can view an artifact's name and size in the UI. When an artifact is downloaded using the {% data variables.product.product_name %} UI, all files that were individually uploaded as part of the artifact get zipped together into a single file. This means that billing is calculated based on the size of the uploaded artifact and not the size of the zip file.
 
-{% data variables.product.product_name %} provides two actions that you can use to upload and download build artifacts. For more information, see the {% ifversion fpt or ghec %}[actions/upload-artifact](https://github.com/actions/upload-artifact) and [download-artifact](https://github.com/actions/download-artifact) actions{% else %} `actions/upload-artifact` and `download-artifact` actions on {% data variables.product.product_location %}{% endif %}.
+{% data variables.product.product_name %} provides two actions that you can use to upload and download build artifacts. For more information, see the {% ifversion fpt or ghec %}[actions/upload-artifact](https://github.com/actions/upload-artifact) and [download-artifact](https://github.com/actions/download-artifact) actions{% else %} `actions/upload-artifact` and `download-artifact` actions on {% data variables.location.product_location %}{% endif %}.
 
 To share data between jobs:
 
@@ -70,7 +70,7 @@ You can create a continuous integration (CI) workflow to build and test your cod
 
 The output of building and testing your code often produces files you can use to debug test failures and production code that you can deploy. You can configure a workflow to build and test the code pushed to your repository and report a success or failure status. You can upload the build and test output to use for deployments, debugging failed tests or crashes, and viewing test suite coverage.
 
-You can use the `upload-artifact` action to upload artifacts. When uploading an artifact, you can specify a single file or directory, or multiple files or directories. You can also exclude certain files or directories, and use wildcard patterns. We recommend that you provide a name for an artifact, but if no name is provided then `artifact` will be used as the default name. For more information on syntax, see the {% ifversion fpt or ghec %}[actions/upload-artifact](https://github.com/actions/upload-artifact) action{% else %} `actions/upload-artifact` action on {% data variables.product.product_location %}{% endif %}.
+You can use the `upload-artifact` action to upload artifacts. When uploading an artifact, you can specify a single file or directory, or multiple files or directories. You can also exclude certain files or directories, and use wildcard patterns. We recommend that you provide a name for an artifact, but if no name is provided then `artifact` will be used as the default name. For more information on syntax, see the {% ifversion fpt or ghec %}[actions/upload-artifact](https://github.com/actions/upload-artifact) action{% else %} `actions/upload-artifact` action on {% data variables.location.product_location %}{% endif %}.
 
 ### Example
 
@@ -171,11 +171,11 @@ You can also download all artifacts in a workflow run by not specifying a name.
 
 If you download all workflow run's artifacts, a directory for each artifact is created using its name.
 
-For more information on syntax, see the {% ifversion fpt or ghec %}[actions/download-artifact](https://github.com/actions/download-artifact) action{% else %} `actions/download-artifact` action on {% data variables.product.product_location %}{% endif %}.
+For more information on syntax, see the {% ifversion fpt or ghec %}[actions/download-artifact](https://github.com/actions/download-artifact) action{% else %} `actions/download-artifact` action on {% data variables.location.product_location %}{% endif %}.
 
 ## Passing data between jobs in a workflow
 
-You can use the `upload-artifact` and `download-artifact` actions to share data between jobs in a workflow. This example workflow illustrates how to pass data between jobs in the same workflow. For more information, see the {% ifversion fpt or ghec %}[actions/upload-artifact](https://github.com/actions/upload-artifact) and [download-artifact](https://github.com/actions/download-artifact) actions{% else %} `actions/upload-artifact` and `download-artifact` actions on {% data variables.product.product_location %}{% endif %}.
+You can use the `upload-artifact` and `download-artifact` actions to share data between jobs in a workflow. This example workflow illustrates how to pass data between jobs in the same workflow. For more information, see the {% ifversion fpt or ghec %}[actions/upload-artifact](https://github.com/actions/upload-artifact) and [download-artifact](https://github.com/actions/download-artifact) actions{% else %} `actions/upload-artifact` and `download-artifact` actions on {% data variables.location.product_location %}{% endif %}.
 
 Jobs that are dependent on a previous job's artifacts must wait for the dependent job to complete successfully. This workflow uses the `needs` keyword to ensure that `job_1`, `job_2`, and `job_3` run sequentially. For example, `job_2` requires `job_1` using the `needs: job_1` syntax.
 
diff --git a/content/actions/using-workflows/triggering-a-workflow.md b/content/actions/using-workflows/triggering-a-workflow.md
index c0c7429ee7..8e4adb430f 100644
--- a/content/actions/using-workflows/triggering-a-workflow.md
+++ b/content/actions/using-workflows/triggering-a-workflow.md
@@ -36,9 +36,9 @@ The following steps occur to trigger a workflow run:
 
 {% data reusables.actions.actions-do-not-trigger-workflows %} For more information, see "[Authenticating with the GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)."
 
-If you do want to trigger a workflow from within a workflow run, you can use a personal access token instead of `GITHUB_TOKEN` to trigger events that require a token. You'll need to create a personal access token and store it as a secret. To minimize your {% data variables.product.prodname_actions %} usage costs, ensure that you don't create recursive or unintended workflow runs. For more information about creating a personal access token, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." For more information about storing a personal access token as a secret, see "[Creating and storing encrypted secrets](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets)."
+If you do want to trigger a workflow from within a workflow run, you can use a {% data variables.product.pat_generic %} instead of `GITHUB_TOKEN` to trigger events that require a token. You'll need to create a {% data variables.product.pat_generic %} and store it as a secret. To minimize your {% data variables.product.prodname_actions %} usage costs, ensure that you don't create recursive or unintended workflow runs. For more information about creating a {% data variables.product.pat_generic %}, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." For more information about storing a {% data variables.product.pat_generic %} as a secret, see "[Creating and storing encrypted secrets](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets)."
 
-For example, the following workflow uses a personal access token (stored as a secret called `MY_TOKEN`) to add a label to an issue via {% data variables.product.prodname_cli %}. Any workflows that run when a label is added will run once this step is performed.
+For example, the following workflow uses a {% data variables.product.pat_generic %} (stored as a secret called `MY_TOKEN`) to add a label to an issue via {% data variables.product.prodname_cli %}. Any workflows that run when a label is added will run once this step is performed.
 
 ```yaml
 on:
diff --git a/content/actions/using-workflows/workflow-commands-for-github-actions.md b/content/actions/using-workflows/workflow-commands-for-github-actions.md
index 4aaef727ee..190fb29822 100644
--- a/content/actions/using-workflows/workflow-commands-for-github-actions.md
+++ b/content/actions/using-workflows/workflow-commands-for-github-actions.md
@@ -148,12 +148,12 @@ The following table shows which toolkit functions are available within a workflo
 | `core.getState`   | Accessible using environment variable `STATE_{NAME}` |
 | `core.isDebug`    |  Accessible using environment variable `RUNNER_DEBUG` |
 {%- ifversion actions-job-summaries %}
-| `core.summary` | Accessible using environment variable `GITHUB_STEP_SUMMARY` |
+| `core.summary` | Accessible using environment file `GITHUB_STEP_SUMMARY` |
 {%- endif %}
-| `core.saveState`  | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_STATE`{% else %}`save-state`{% endif %} |
+| `core.saveState`  | {% ifversion actions-save-state-set-output-envs %}Accessible using environment file `GITHUB_STATE`{% else %}`save-state`{% endif %} |
 | `core.setCommandEcho` | `echo` |
 | `core.setFailed`  | Used as a shortcut for `::error` and `exit 1` |
-| `core.setOutput`  | {% ifversion actions-save-state-set-output-envs %}Accessible using environment variable `GITHUB_OUTPUT`{% else %}`set-output`{% endif %} |
+| `core.setOutput`  | {% ifversion actions-save-state-set-output-envs %}Accessible using environment file `GITHUB_OUTPUT`{% else %}`set-output`{% endif %} |
 | `core.setSecret`  | `add-mask` |
 | `core.startGroup` | `group` |
 | `core.warning`    | `warning` |
diff --git a/content/actions/using-workflows/workflow-syntax-for-github-actions.md b/content/actions/using-workflows/workflow-syntax-for-github-actions.md
index 405e998caf..5c778a85ca 100644
--- a/content/actions/using-workflows/workflow-syntax-for-github-actions.md
+++ b/content/actions/using-workflows/workflow-syntax-for-github-actions.md
@@ -115,7 +115,7 @@ For more information, see "[Reusing workflows](/actions/learn-github-actions/reu
 
 #### `on.workflow_call.inputs..type`
 
-Required if input is defined for the `on.workflow_call` keyword. The value of this parameter is a string specifying the data type of the input. This must be one of: `boolean`, `number`, `string` or `choice`.
+Required if input is defined for the `on.workflow_call` keyword. The value of this parameter is a string specifying the data type of the input. This must be one of: `boolean`, `number`, or `string`.
 
 ### `on.workflow_call.outputs`
 
@@ -497,7 +497,7 @@ jobs:
 
 #### Example: Using an action inside a different private repository than the workflow
 
-Your workflow must checkout the private repository and reference the action locally. Generate a personal access token and add the token as an encrypted secret. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)" and "[Encrypted secrets](/actions/reference/encrypted-secrets)."
+Your workflow must checkout the private repository and reference the action locally. Generate a {% data variables.product.pat_generic %} and add the token as an encrypted secret. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)" and "[Encrypted secrets](/actions/reference/encrypted-secrets)."
 
 Replace `PERSONAL_ACCESS_TOKEN` in the example with the name of your secret.
 
diff --git a/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance.md b/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance.md
index 468b95f2c7..c984aebcab 100644
--- a/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance.md
+++ b/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance.md
@@ -1,7 +1,7 @@
 ---
 title: Configuring code scanning for your appliance
 shortTitle: Configuring code scanning
-intro: 'You can enable, configure and disable {% data variables.product.prodname_code_scanning %} for {% data variables.product.product_location %}. {% data variables.product.prodname_code_scanning_capc %} allows users to scan code for vulnerabilities and errors.'
+intro: 'You can enable, configure and disable {% data variables.product.prodname_code_scanning %} for {% data variables.location.product_location %}. {% data variables.product.prodname_code_scanning_capc %} allows users to scan code for vulnerabilities and errors.'
 product: '{% data reusables.gated-features.code-scanning %}'
 miniTocMaxHeadingLevel: 3
 redirect_from:
@@ -24,7 +24,7 @@ topics:
 
 {% data reusables.code-scanning.about-code-scanning %}
 
-You can configure {% data variables.product.prodname_code_scanning %} to run {% data variables.product.prodname_codeql %} analysis and third-party analysis. {% data variables.product.prodname_code_scanning_capc %} also supports running analysis natively using {% data variables.product.prodname_actions %} or externally using existing CI/CD infrastructure. The table below summarizes all the options available to users when you configure {% data variables.product.product_location %} to allow {% data variables.product.prodname_code_scanning %} using actions.
+You can configure {% data variables.product.prodname_code_scanning %} to run {% data variables.product.prodname_codeql %} analysis and third-party analysis. {% data variables.product.prodname_code_scanning_capc %} also supports running analysis natively using {% data variables.product.prodname_actions %} or externally using existing CI/CD infrastructure. The table below summarizes all the options available to users when you configure {% data variables.location.product_location %} to allow {% data variables.product.prodname_code_scanning %} using actions.
 
 {% data reusables.code-scanning.enabling-options %}
 
@@ -74,7 +74,7 @@ If you set up the {% data variables.product.prodname_codeql %} action sync tool,
 
 ### Configuring {% data variables.product.prodname_github_connect %} to sync {% data variables.product.prodname_actions %}
 1. If you want to download action workflows on demand from {% data variables.product.prodname_dotcom_the_website %}, you need to enable {% data variables.product.prodname_github_connect %}. For more information, see "[Enabling {% data variables.product.prodname_github_connect %}](/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud#enabling-github-connect)."
-2. You'll also need to enable {% data variables.product.prodname_actions %} for {% data variables.product.product_location %}. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-github-enterprise-server)."
+2. You'll also need to enable {% data variables.product.prodname_actions %} for {% data variables.location.product_location %}. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-github-enterprise-server)."
 3. The next step is to configure access to actions on {% data variables.product.prodname_dotcom_the_website %} using {% data variables.product.prodname_github_connect %}. For more information, see "[Enabling automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}](/enterprise/admin/github-actions/enabling-automatic-access-to-githubcom-actions-using-github-connect)."
 4. Add a self-hosted runner to your repository, organization, or enterprise account. For more information, see "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
 
diff --git a/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-dependency-review-for-your-appliance.md b/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-dependency-review-for-your-appliance.md
index adb32e7246..ef0b9fc8fc 100644
--- a/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-dependency-review-for-your-appliance.md
+++ b/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-dependency-review-for-your-appliance.md
@@ -1,7 +1,7 @@
 ---
 title: Configuring dependency review for your appliance
 shortTitle: Configuring dependency review
-intro: 'To helps users understand dependency changes when reviewing pull requests, you can enable, configure, and disable dependency review for {% data variables.product.product_location %}.' 
+intro: 'To helps users understand dependency changes when reviewing pull requests, you can enable, configure, and disable dependency review for {% data variables.location.product_location %}.' 
 product: '{% data reusables.gated-features.dependency-review %}'
 miniTocMaxHeadingLevel: 3
 versions:
diff --git a/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-secret-scanning-for-your-appliance.md b/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-secret-scanning-for-your-appliance.md
index 4801d3904f..291f6f4906 100644
--- a/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-secret-scanning-for-your-appliance.md
+++ b/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-secret-scanning-for-your-appliance.md
@@ -1,7 +1,7 @@
 ---
 title: Configuring secret scanning for your appliance
 shortTitle: Configuring secret scanning
-intro: 'You can enable, configure, and disable {% data variables.product.prodname_secret_scanning %} for {% data variables.product.product_location %}. {% data variables.product.prodname_secret_scanning_caps %} allows users to scan code for accidentally committed secrets.'
+intro: 'You can enable, configure, and disable {% data variables.product.prodname_secret_scanning %} for {% data variables.location.product_location %}. {% data variables.product.prodname_secret_scanning_caps %} allows users to scan code for accidentally committed secrets.'
 product: '{% data reusables.gated-features.secret-scanning %}'
 miniTocMaxHeadingLevel: 3
 redirect_from:
@@ -29,7 +29,7 @@ If someone checks a secret with a known pattern into a repository, {% data varia
 
 ## Prerequisites for {% data variables.product.prodname_secret_scanning %}
 
-- The [SSSE3](https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf#G3.1106470) (Supplemental Streaming SIMD Extensions 3) CPU flag needs to be enabled on the VM/KVM that runs {% data variables.product.product_location %}.
+- The [SSSE3](https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf#G3.1106470) (Supplemental Streaming SIMD Extensions 3) CPU flag needs to be enabled on the VM/KVM that runs {% data variables.location.product_location %}.
 
 - A license for {% data variables.product.prodname_GH_advanced_security %}{% ifversion ghes %} (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 %}
 
@@ -46,7 +46,7 @@ The SSSE3 set of instructions is required because {% data variables.product.prod
    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.location.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.
 
diff --git a/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/enabling-github-advanced-security-for-your-enterprise.md b/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/enabling-github-advanced-security-for-your-enterprise.md
index bd8e5a0966..73832aee06 100644
--- a/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/enabling-github-advanced-security-for-your-enterprise.md
+++ b/content/admin/code-security/managing-github-advanced-security-for-your-enterprise/enabling-github-advanced-security-for-your-enterprise.md
@@ -44,7 +44,7 @@ For guidance on a phased deployment of GitHub Advanced Security, see "[Introduct
 
 1. Upgrade your license for {% data variables.product.product_name %} to include {% data variables.product.prodname_GH_advanced_security %}.{% ifversion ghes %} 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 %}
+3. Upload the new license file to {% data variables.location.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)."
@@ -68,11 +68,11 @@ When {% data variables.product.product_name %} has finished restarting, you're r
 
 ## Enabling or disabling {% data variables.product.prodname_GH_advanced_security %} features via the administrative shell (SSH)
 
-You can enable or disable features programmatically on {% data variables.product.product_location %}. For more information about the administrative shell and command-line utilities for {% data variables.product.prodname_ghe_server %}, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)" and "[Command-line utilities](/admin/configuration/command-line-utilities#ghe-config)."
+You can enable or disable features programmatically on {% data variables.location.product_location %}. For more information about the administrative shell and command-line utilities for {% data variables.product.prodname_ghe_server %}, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)" and "[Command-line utilities](/admin/configuration/command-line-utilities#ghe-config)."
 
 For example, you can enable any {% data variables.product.prodname_GH_advanced_security %} feature with your infrastructure-as-code tooling when you deploy an instance for staging or disaster recovery.
 
-1. SSH into {% data variables.product.product_location %}.
+1. SSH into {% data variables.location.product_location %}.
 1. Enable features for {% data variables.product.prodname_GH_advanced_security %}.
 
     - To enable {% data variables.product.prodname_code_scanning_capc %}, enter the following commands.
diff --git a/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/about-supply-chain-security-for-your-enterprise.md b/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/about-supply-chain-security-for-your-enterprise.md
index 6aa1399182..ee72a7d813 100644
--- a/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/about-supply-chain-security-for-your-enterprise.md
+++ b/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/about-supply-chain-security-for-your-enterprise.md
@@ -13,8 +13,8 @@ topics:
   - Dependency graph
 ---
 
-You can allow users to identify their projects' dependencies by {% ifversion ghes %}enabling{% elsif ghae %}using{% endif %} the dependency graph for {% data variables.product.product_location %}. For more information, see "{% ifversion ghes %}[Enabling the dependency graph for your enterprise](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise){% elsif ghae %}[About the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph){% endif %}."
+You can allow users to identify their projects' dependencies by {% ifversion ghes %}enabling{% elsif ghae %}using{% endif %} the dependency graph for {% data variables.location.product_location %}. For more information, see "{% ifversion ghes %}[Enabling the dependency graph for your enterprise](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise){% elsif ghae %}[About the dependency graph](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph){% endif %}."
 
-You can also allow users on {% data variables.product.product_location %} to find and fix vulnerabilities in their code dependencies by enabling {% data variables.product.prodname_dependabot_alerts %}{% ifversion ghes > 3.2 %} and {% data variables.product.prodname_dependabot_updates %}{% endif %}. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
+You can also allow users on {% data variables.location.product_location %} to find and fix vulnerabilities in their code dependencies by enabling {% data variables.product.prodname_dependabot_alerts %}{% ifversion ghes > 3.2 %} and {% data variables.product.prodname_dependabot_updates %}{% endif %}. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
 
-After you enable {% data variables.product.prodname_dependabot_alerts %}, you can view vulnerability data from the {% data variables.product.prodname_advisory_database %} on {% data variables.product.product_location %} and manually sync the data. For more information, see "[Viewing the vulnerability data for your enterprise](/admin/code-security/managing-supply-chain-security-for-your-enterprise/viewing-the-vulnerability-data-for-your-enterprise)."
+After you enable {% data variables.product.prodname_dependabot_alerts %}, you can view vulnerability data from the {% data variables.product.prodname_advisory_database %} on {% data variables.location.product_location %} and manually sync the data. For more information, see "[Viewing the vulnerability data for your enterprise](/admin/code-security/managing-supply-chain-security-for-your-enterprise/viewing-the-vulnerability-data-for-your-enterprise)."
diff --git a/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise.md b/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise.md
index 2dad20eda8..d4d24029d2 100644
--- a/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise.md
+++ b/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise.md
@@ -19,11 +19,11 @@ topics:
 After you enable the dependency graph for your enterprise, you can enable {% data variables.product.prodname_dependabot %} to detect insecure dependencies in your repository{% ifversion ghes > 3.2 %} and automatically fix the vulnerabilities{% endif %}. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
 
 {% ifversion ghes %}
-You can enable the dependency graph via the {% data variables.enterprise.management_console %} or the administrative shell. We recommend using the {% data variables.enterprise.management_console %} unless {% data variables.product.product_location %} uses clustering.
+You can enable the dependency graph via the {% data variables.enterprise.management_console %} or the administrative shell. We recommend using the {% data variables.enterprise.management_console %} unless {% data variables.location.product_location %} uses clustering.
 
 ## Enabling the dependency graph via the {% data variables.enterprise.management_console %}
 
-If {% data variables.product.product_location %} uses clustering, you cannot enable the dependency graph with the {% data variables.enterprise.management_console %} and must use the administrative shell instead. For more information, see "[Enabling the dependency graph via the administrative shell](#enabling-the-dependency-graph-via-the-administrative-shell)."
+If {% data variables.location.product_location %} uses clustering, you cannot enable the dependency graph with the {% data variables.enterprise.management_console %} and must use the administrative shell instead. For more information, see "[Enabling the dependency graph via the administrative shell](#enabling-the-dependency-graph-via-the-administrative-shell)."
 
 {% data reusables.enterprise_site_admin_settings.sign-in %}
 {% data reusables.enterprise_site_admin_settings.access-settings %}
@@ -38,7 +38,7 @@ If {% data variables.product.product_location %} uses clustering, you cannot ena
 
 {% endif %}
 {% data reusables.enterprise_site_admin_settings.sign-in %}
-1. In the administrative shell, enable the dependency graph on {% data variables.product.product_location %}:
+1. In the administrative shell, enable the dependency graph on {% data variables.location.product_location %}:
     {% ifversion ghes %}```shell
     ghe-config app.dependency-graph.enabled true
     ```
diff --git a/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/viewing-the-vulnerability-data-for-your-enterprise.md b/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/viewing-the-vulnerability-data-for-your-enterprise.md
index 17ea3bbd95..b20b4c62a4 100644
--- a/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/viewing-the-vulnerability-data-for-your-enterprise.md
+++ b/content/admin/code-security/managing-supply-chain-security-for-your-enterprise/viewing-the-vulnerability-data-for-your-enterprise.md
@@ -1,8 +1,8 @@
 ---
 title: Viewing the vulnerability data for your enterprise
-intro: 'You can view vulnerability data from the {% data variables.product.prodname_advisory_database %} on {% data variables.product.product_location %}.'
+intro: 'You can view vulnerability data from the {% data variables.product.prodname_advisory_database %} on {% data variables.location.product_location %}.'
 shortTitle: View vulnerability data
-permissions: 'Site administrators can view vulnerability data on {% data variables.product.product_location %}.'
+permissions: 'Site administrators can view vulnerability data on {% data variables.location.product_location %}.'
 versions:
   ghes: '*'
   ghae: '*'
@@ -13,7 +13,7 @@ topics:
   - Dependency graph
 ---
 
-If {% data variables.product.prodname_dependabot_alerts %} are enabled for your enterprise, you can view all vulnerabilities that were downloaded to {% data variables.product.product_location %} from the {% data variables.product.prodname_advisory_database %}.
+If {% data variables.product.prodname_dependabot_alerts %} are enabled for your enterprise, you can view all vulnerabilities that were downloaded to {% data variables.location.product_location %} from the {% data variables.product.prodname_advisory_database %}.
 
 You can manually sync vulnerability data from {% data variables.product.prodname_dotcom_the_website %} to update the list.
 
diff --git a/content/admin/configuration/configuring-github-connect/about-github-connect.md b/content/admin/configuration/configuring-github-connect/about-github-connect.md
index 4b900f7f44..4b26af2b8e 100644
--- a/content/admin/configuration/configuring-github-connect/about-github-connect.md
+++ b/content/admin/configuration/configuring-github-connect/about-github-connect.md
@@ -13,28 +13,28 @@ miniTocMaxHeadingLevel: 3
 
 ## About {% data variables.product.prodname_github_connect %}
 
-{% data variables.product.prodname_github_connect %} enhances {% data variables.product.product_name %} by allowing {% data variables.product.product_location %} to benefit from the power of {% data variables.product.prodname_dotcom_the_website %} in limited ways. After you enable {% data variables.product.prodname_github_connect %}, you can enable additional features and workflows that rely on {% data variables.product.prodname_dotcom_the_website %}, such as {% data variables.product.prodname_dependabot_alerts %} for security vulnerabilities that are tracked in the {% data variables.product.prodname_advisory_database %}.
+{% data variables.product.prodname_github_connect %} enhances {% data variables.product.product_name %} by allowing {% data variables.location.product_location %} to benefit from the power of {% data variables.product.prodname_dotcom_the_website %} in limited ways. After you enable {% data variables.product.prodname_github_connect %}, you can enable additional features and workflows that rely on {% data variables.product.prodname_dotcom_the_website %}, such as {% data variables.product.prodname_dependabot_alerts %} for security vulnerabilities that are tracked in the {% data variables.product.prodname_advisory_database %}.
 
-{% data variables.product.prodname_github_connect %} does not open {% data variables.product.product_location %} to the public internet. None of your enterprise's private data is exposed to {% data variables.product.prodname_dotcom_the_website %} users. Instead, {% data variables.product.prodname_github_connect %} transmits only the limited data needed for the individual features you choose to enable. Unless you enable license sync, no personal data is transmitted by {% data variables.product.prodname_github_connect %}. For more information about what data is transmitted by {% data variables.product.prodname_github_connect %}, see "[Data transmission for {% data variables.product.prodname_github_connect %}](#data-transmission-for-github-connect)."
+{% data variables.product.prodname_github_connect %} does not open {% data variables.location.product_location %} to the public internet. None of your enterprise's private data is exposed to {% data variables.product.prodname_dotcom_the_website %} users. Instead, {% data variables.product.prodname_github_connect %} transmits only the limited data needed for the individual features you choose to enable. Unless you enable license sync, no personal data is transmitted by {% data variables.product.prodname_github_connect %}. For more information about what data is transmitted by {% data variables.product.prodname_github_connect %}, see "[Data transmission for {% data variables.product.prodname_github_connect %}](#data-transmission-for-github-connect)."
 
 Enabling {% data variables.product.prodname_github_connect %} will not allow {% data variables.product.prodname_dotcom_the_website %} users to make changes to {% data variables.product.product_name %}.
 
-To enable {% data variables.product.prodname_github_connect %}, you configure a connection between {% data variables.product.product_location %} and an organization or enterprise account on {% data variables.product.prodname_dotcom_the_website %} that uses {% data variables.product.prodname_ghe_cloud %}. For more information, see "[Managing {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/managing-github-connect)."
+To enable {% data variables.product.prodname_github_connect %}, you configure a connection between {% data variables.location.product_location %} and an organization or enterprise account on {% data variables.product.prodname_dotcom_the_website %} that uses {% data variables.product.prodname_ghe_cloud %}. For more information, see "[Managing {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/managing-github-connect)."
 
 After enabling {% data variables.product.prodname_github_connect %}, you will be able to enable features such as {% ifversion ghes %}automatic user license sync and {% endif %}{% data variables.product.prodname_dependabot_alerts %}. For more information about all of the features available, see "[{% data variables.product.prodname_github_connect %} features](#github-connect-features)."
 
 ## {% data variables.product.prodname_github_connect %} features
 
-After you configure the connection between {% data variables.product.product_location %} and {% data variables.product.prodname_ghe_cloud %}, you can enable individual features of {% data variables.product.prodname_github_connect %} for your enterprise.
+After you configure the connection between {% data variables.location.product_location %} and {% data variables.product.prodname_ghe_cloud %}, you can enable individual features of {% data variables.product.prodname_github_connect %} for your enterprise.
 
 Feature | Description | More information |
 ------- | ----------- | ---------------- |{% ifversion ghes %}
-Automatic user license sync | Manage license usage across your {% data variables.product.prodname_enterprise %} deployments by automatically syncing user licenses from {% data variables.product.product_location %} to {% data variables.product.prodname_ghe_cloud %}. | "[Enabling automatic user license sync for your enterprise](/admin/configuration/configuring-github-connect/enabling-automatic-user-license-sync-for-your-enterprise)"{% endif %}{% ifversion ghes or ghae %}
+Automatic user license sync | Manage license usage across your {% data variables.product.prodname_enterprise %} deployments by automatically syncing user licenses from {% data variables.location.product_location %} to {% data variables.product.prodname_ghe_cloud %}. | "[Enabling automatic user license sync for your enterprise](/admin/configuration/configuring-github-connect/enabling-automatic-user-license-sync-for-your-enterprise)"{% endif %}{% ifversion ghes or ghae %}
 {% data variables.product.prodname_dependabot %} | Allow users to find and fix vulnerabilities in code dependencies. | "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)"{% endif %}
 {% data variables.product.prodname_dotcom_the_website %} actions | Allow users to use actions from {% data variables.product.prodname_dotcom_the_website %} in workflow files. | "[Enabling automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect)"{% ifversion server-statistics %}
 {% data variables.product.prodname_server_statistics %} | Analyze your own aggregate data from GitHub Enterprise Server, and help us improve GitHub products. | "[Enabling {% data variables.product.prodname_server_statistics %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-server-statistics-for-your-enterprise)"{% endif %}
-Unified search | Allow users to include repositories on {% data variables.product.prodname_dotcom_the_website %} in their search results when searching from {% data variables.product.product_location %}. | "[Enabling {% data variables.product.prodname_unified_search %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise)"
-Unified contributions | Allow users to include anonymized contribution counts for their work on {% data variables.product.product_location %} in their contribution graphs on {% data variables.product.prodname_dotcom_the_website %}. | "[Enabling {% data variables.product.prodname_unified_contributions %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-unified-contributions-for-your-enterprise)"
+Unified search | Allow users to include repositories on {% data variables.product.prodname_dotcom_the_website %} in their search results when searching from {% data variables.location.product_location %}. | "[Enabling {% data variables.enterprise.prodname_unified_search %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise)"
+Unified contributions | Allow users to include anonymized contribution counts for their work on {% data variables.location.product_location %} in their contribution graphs on {% data variables.product.prodname_dotcom_the_website %}. | "[Enabling {% data variables.enterprise.prodname_unified_contributions %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-unified-contributions-for-your-enterprise)"
 
 ## Data transmission for {% data variables.product.prodname_github_connect %} 
 
@@ -53,17 +53,17 @@ When you enable {% data variables.product.prodname_github_connect %} or specific
 - The public key portion of your {% data variables.product.prodname_ghe_server %} license
 - A hash of your {% data variables.product.prodname_ghe_server %} license
 - The customer name on your {% data variables.product.prodname_ghe_server %} license
-- The version of {% data variables.product.product_location_enterprise %}{% endif %}
-- The hostname of {% data variables.product.product_location %}
-- The organization or enterprise account on {% data variables.product.prodname_ghe_cloud %} that's connected to {% data variables.product.product_location %}
-- The authentication token that's used by {% data variables.product.product_location %} to make requests to {% data variables.product.prodname_ghe_cloud %}
-- If Transport Layer Security (TLS) is enabled and configured on {% data variables.product.product_location %}{% ifversion ghes %}
-- The {% data variables.product.prodname_github_connect %} features that are enabled on {% data variables.product.product_location %}, and the date and time of enablement{% endif %}
+- The version of {% data variables.location.product_location_enterprise %}{% endif %}
+- The hostname of {% data variables.location.product_location %}
+- The organization or enterprise account on {% data variables.product.prodname_ghe_cloud %} that's connected to {% data variables.location.product_location %}
+- The authentication token that's used by {% data variables.location.product_location %} to make requests to {% data variables.product.prodname_ghe_cloud %}
+- If Transport Layer Security (TLS) is enabled and configured on {% data variables.location.product_location %}{% ifversion ghes %}
+- The {% data variables.product.prodname_github_connect %} features that are enabled on {% data variables.location.product_location %}, and the date and time of enablement{% endif %}
 - The dormancy threshold for your enterprise
 - The number of dormant users for your enterprise
 - A count of license-consuming seats, which does not include suspended users
 
-{% data variables.product.prodname_github_connect %} syncs the above connection data between {% data variables.product.product_location %} and {% data variables.product.prodname_ghe_cloud %} weekly, from the day and approximate time that {% data variables.product.prodname_github_connect %} was enabled.
+{% data variables.product.prodname_github_connect %} syncs the above connection data between {% data variables.location.product_location %} and {% data variables.product.prodname_ghe_cloud %} weekly, from the day and approximate time that {% data variables.product.prodname_github_connect %} was enabled.
 
 ### Data transmitted by individual features of {% data variables.product.prodname_github_connect %}
 
diff --git a/content/admin/configuration/configuring-github-connect/enabling-automatic-user-license-sync-for-your-enterprise.md b/content/admin/configuration/configuring-github-connect/enabling-automatic-user-license-sync-for-your-enterprise.md
index d79e7bd0d2..4f4bff2a29 100644
--- a/content/admin/configuration/configuring-github-connect/enabling-automatic-user-license-sync-for-your-enterprise.md
+++ b/content/admin/configuration/configuring-github-connect/enabling-automatic-user-license-sync-for-your-enterprise.md
@@ -1,6 +1,6 @@
 ---
 title: Enabling automatic user license sync for your enterprise
-intro: 'You can manage license usage across your {% data variables.product.prodname_enterprise %} environments by automatically syncing user licenses from {% data variables.product.product_location %} to {% data variables.product.prodname_ghe_cloud %}.'
+intro: 'You can manage license usage across your {% data variables.product.prodname_enterprise %} environments by automatically syncing user licenses from {% data variables.location.product_location %} to {% data variables.product.prodname_ghe_cloud %}.'
 redirect_from:
   - /enterprise/admin/installation/enabling-automatic-user-license-sync-between-github-enterprise-server-and-github-enterprise-cloud
   - /enterprise/admin/configuration/enabling-automatic-user-license-sync-between-github-enterprise-server-and-github-enterprise-cloud
@@ -35,7 +35,7 @@ You can also manually upload {% data variables.product.prodname_ghe_server %} us
 
 ## Enabling license synchronization
 
-Before enabling license synchronization on {% data variables.product.product_location %}, you must enable {% data variables.product.prodname_github_connect %}. For more information, see "[Managing {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/managing-github-connect)."
+Before enabling license synchronization on {% data variables.location.product_location %}, you must enable {% data variables.product.prodname_github_connect %}. For more information, see "[Managing {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/managing-github-connect)."
 
 {% data reusables.enterprise-accounts.access-enterprise %}
 {% data reusables.enterprise-accounts.github-connect-tab %}
diff --git a/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md b/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md
index 65a19be5d0..8fa01e4e0d 100644
--- a/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md
+++ b/content/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise.md
@@ -1,6 +1,6 @@
 ---
 title: Enabling Dependabot for your enterprise
-intro: 'You can allow users of {% data variables.product.product_location %} to find and fix vulnerabilities in code dependencies by enabling {% data variables.product.prodname_dependabot_alerts %}{% ifversion ghes > 3.2 %} and {% data variables.product.prodname_dependabot_updates %}{% endif %}.'
+intro: 'You can allow users of {% data variables.location.product_location %} to find and fix vulnerabilities in code dependencies by enabling {% data variables.product.prodname_dependabot_alerts %}{% ifversion ghes > 3.2 %} and {% data variables.product.prodname_dependabot_updates %}{% endif %}.'
 miniTocMaxHeadingLevel: 3
 shortTitle: Dependabot
 redirect_from:
@@ -26,14 +26,14 @@ topics:
 
 ## About {% data variables.product.prodname_dependabot %} for {% data variables.product.product_name %}
 
-{% data variables.product.prodname_dependabot %} helps users of {% data variables.product.product_location %} find and fix vulnerabilities in their dependencies.{% ifversion ghes > 3.2 %} You can enable {% data variables.product.prodname_dependabot_alerts %} to notify users about vulnerable dependencies and {% data variables.product.prodname_dependabot_updates %} to fix the vulnerabilities and keep dependencies updated to the latest version.
+{% data variables.product.prodname_dependabot %} helps users of {% data variables.location.product_location %} find and fix vulnerabilities in their dependencies.{% ifversion ghes > 3.2 %} You can enable {% data variables.product.prodname_dependabot_alerts %} to notify users about vulnerable dependencies and {% data variables.product.prodname_dependabot_updates %} to fix the vulnerabilities and keep dependencies updated to the latest version.
 
 ### About {% data variables.product.prodname_dependabot_alerts %}
 {% endif %}
 
 {% data reusables.dependabot.dependabot-alerts-beta %}
 
-With {% data variables.product.prodname_dependabot_alerts %}, {% data variables.product.prodname_dotcom %} identifies insecure dependencies in repositories and creates alerts on {% data variables.product.product_location %}, using data from the {% data variables.product.prodname_advisory_database %} and the dependency graph service.
+With {% data variables.product.prodname_dependabot_alerts %}, {% data variables.product.prodname_dotcom %} identifies insecure dependencies in repositories and creates alerts on {% data variables.location.product_location %}, using data from the {% data variables.product.prodname_advisory_database %} and the dependency graph service.
 
 {% data reusables.repositories.tracks-vulnerabilities %}
 
@@ -43,20 +43,20 @@ You can also choose to manually sync vulnerability data at any time. For more in
 
 {% note %}
 
-**Note:** When you enable {% data variables.product.prodname_dependabot_alerts %}, no code or information about code from {% data variables.product.product_location %} is uploaded to {% data variables.product.prodname_dotcom_the_website %}. 
+**Note:** When you enable {% data variables.product.prodname_dependabot_alerts %}, no code or information about code from {% data variables.location.product_location %} is uploaded to {% data variables.product.prodname_dotcom_the_website %}. 
 
 {% endnote %}
 
-When {% data variables.product.product_location %} receives information about a vulnerability, it identifies repositories in  {% data variables.product.product_location %} that use the affected version of the dependency and generates {% data variables.product.prodname_dependabot_alerts %}. You can choose whether or not to notify users automatically about new {% data variables.product.prodname_dependabot_alerts %}. 
+When {% data variables.location.product_location %} receives information about a vulnerability, it identifies repositories in  {% data variables.location.product_location %} that use the affected version of the dependency and generates {% data variables.product.prodname_dependabot_alerts %}. You can choose whether or not to notify users automatically about new {% data variables.product.prodname_dependabot_alerts %}. 
 
-For repositories with {% data variables.product.prodname_dependabot_alerts %} enabled, scanning is triggered on any push to the default branch that contains a manifest file or lock file. Additionally, when a new vulnerability record is added to {% data variables.product.product_location %}, {% data variables.product.product_name %} scans all existing repositories on {% data variables.product.product_location %} and generates alerts for any repository that is vulnerable. For more information, see "[About {% data variables.product.prodname_dependabot_alerts %}](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
+For repositories with {% data variables.product.prodname_dependabot_alerts %} enabled, scanning is triggered on any push to the default branch that contains a manifest file or lock file. Additionally, when a new vulnerability record is added to {% data variables.location.product_location %}, {% data variables.product.product_name %} scans all existing repositories on {% data variables.location.product_location %} and generates alerts for any repository that is vulnerable. For more information, see "[About {% data variables.product.prodname_dependabot_alerts %}](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
 
 {% ifversion ghes > 3.2 %}
 ### About {% data variables.product.prodname_dependabot_updates %}
 
 {% data reusables.dependabot.beta-security-and-version-updates %}
 
-After you enable {% data variables.product.prodname_dependabot_alerts %}, you can choose to enable {% data variables.product.prodname_dependabot_updates %}. When {% data variables.product.prodname_dependabot_updates %} are enabled for {% data variables.product.product_location %}, users can configure repositories so that their dependencies are updated and kept secure automatically. 
+After you enable {% data variables.product.prodname_dependabot_alerts %}, you can choose to enable {% data variables.product.prodname_dependabot_updates %}. When {% data variables.product.prodname_dependabot_updates %} are enabled for {% data variables.location.product_location %}, users can configure repositories so that their dependencies are updated and kept secure automatically. 
 
 {% note %} 
 
diff --git a/content/admin/configuration/configuring-github-connect/enabling-server-statistics-for-your-enterprise.md b/content/admin/configuration/configuring-github-connect/enabling-server-statistics-for-your-enterprise.md
index 391a8d0442..e42ff2fafe 100644
--- a/content/admin/configuration/configuring-github-connect/enabling-server-statistics-for-your-enterprise.md
+++ b/content/admin/configuration/configuring-github-connect/enabling-server-statistics-for-your-enterprise.md
@@ -12,7 +12,7 @@ shortTitle: Server Statistics
 
 ## About {% data variables.product.prodname_server_statistics %}
 
-{% data variables.product.prodname_server_statistics %} collects aggregate usage data from {% data variables.product.product_location %}, which you can use to better anticipate the needs of your organization, understand how your team works, and show the value you get from {% data variables.product.prodname_ghe_server %}. 
+{% data variables.product.prodname_server_statistics %} collects aggregate usage data from {% data variables.location.product_location %}, which you can use to better anticipate the needs of your organization, understand how your team works, and show the value you get from {% data variables.product.prodname_ghe_server %}. 
 
 {% data variables.product.prodname_server_statistics %} only collects certain aggregate metrics on repositories, issues, pull requests, and other features.{% data variables.product.prodname_dotcom %} content, such as code, issues, comments, or pull request content, is not collected. For more information, see "[About {% data variables.product.prodname_server_statistics %}](/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics)."
 
diff --git a/content/admin/configuration/configuring-github-connect/enabling-unified-contributions-for-your-enterprise.md b/content/admin/configuration/configuring-github-connect/enabling-unified-contributions-for-your-enterprise.md
index cfd0e1d08e..e9c67f0fcd 100644
--- a/content/admin/configuration/configuring-github-connect/enabling-unified-contributions-for-your-enterprise.md
+++ b/content/admin/configuration/configuring-github-connect/enabling-unified-contributions-for-your-enterprise.md
@@ -1,7 +1,7 @@
 ---
 title: Enabling unified contributions for your enterprise
 shortTitle: Unified contributions
-intro: 'You can allow users to include anonymized contribution counts for their work on {% data variables.product.product_location %} in their contribution graphs on {% data variables.product.prodname_dotcom_the_website %}.'
+intro: 'You can allow users to include anonymized contribution counts for their work on {% data variables.location.product_location %} in their contribution graphs on {% data variables.product.prodname_dotcom_the_website %}.'
 redirect_from:
   - /enterprise/admin/guides/developer-workflow/enabling-unified-contributions-between-github-enterprise-and-github-com
   - /enterprise/admin/guides/developer-workflow/enabling-unified-contributions-between-github-enterprise-server-and-github-com
@@ -11,7 +11,7 @@ redirect_from:
   - /admin/configuration/enabling-unified-contributions-between-github-enterprise-server-and-githubcom
   - /admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud/enabling-unified-contributions-between-github-enterprise-server-and-githubcom
   - /admin/configuration/managing-connections-between-your-enterprise-accounts/enabling-unified-contributions-between-your-enterprise-account-and-githubcom
-permissions: 'Enterprise owners can enable unified contributions between {% data variables.product.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.'
+permissions: 'Enterprise owners can enable unified contributions between {% data variables.location.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.'
 versions:
   ghes: '*'
   ghae: '*'
@@ -25,9 +25,9 @@ topics:
 
 ## About unified contributions
 
-As an enterprise owner, you can allow end users to send anonymized contribution counts for their work from {% data variables.product.product_location %} to their {% data variables.product.prodname_dotcom_the_website %} contribution graph.
+As an enterprise owner, you can allow end users to send anonymized contribution counts for their work from {% data variables.location.product_location %} to their {% data variables.product.prodname_dotcom_the_website %} contribution graph.
 
-After you enable {% data variables.product.prodname_unified_contributions %}, before individual users can send contribution counts from {% data variables.product.product_location %} to {% data variables.product.prodname_dotcom_the_website %}, each user must also connect their user account on {% data variables.product.product_name %} with a personal account on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Sending enterprise contributions to your {% data variables.product.prodname_dotcom_the_website %} profile](/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-graphs-on-your-profile/sending-enterprise-contributions-to-your-githubcom-profile)."
+After you enable {% data variables.enterprise.prodname_unified_contributions %}, before individual users can send contribution counts from {% data variables.location.product_location %} to {% data variables.product.prodname_dotcom_the_website %}, each user must also connect their user account on {% data variables.product.product_name %} with a personal account on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Sending enterprise contributions to your {% data variables.product.prodname_dotcom_the_website %} profile](/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-graphs-on-your-profile/sending-enterprise-contributions-to-your-githubcom-profile)."
 
 {% data reusables.github-connect.sync-frequency %}
 
@@ -37,14 +37,14 @@ If the enterprise owner disables the functionality or individual users opt out o
 
 ## Enabling unified contributions
 
-Before enabling {% data variables.product.prodname_unified_contributions %} on {% data variables.product.product_location %}, you must enable {% data variables.product.prodname_github_connect %}. For more information, see "[Managing {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/managing-github-connect)."
+Before enabling {% data variables.enterprise.prodname_unified_contributions %} on {% data variables.location.product_location %}, you must enable {% data variables.product.prodname_github_connect %}. For more information, see "[Managing {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/managing-github-connect)."
 
 {% ifversion ghes %}
 {% data reusables.github-connect.access-dotcom-and-enterprise %}
 {% data reusables.enterprise_site_admin_settings.access-settings %}
 {% data reusables.enterprise_site_admin_settings.business %}
 {% data reusables.enterprise-accounts.github-connect-tab %}{% else %}
-1. Sign in to {% data variables.product.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.
+1. Sign in to {% data variables.location.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.
 {% data reusables.enterprise-accounts.access-enterprise %}{% data reusables.enterprise-accounts.github-connect-tab %}{% endif %}
 1. Under "Users can share contribution counts to {% data variables.product.prodname_dotcom_the_website %}", click **Request access**.
   ![Request access to unified contributions option](/assets/images/enterprise/site-admin-settings/dotcom-ghe-connection-request-access.png){% ifversion ghes %}
diff --git a/content/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise.md b/content/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise.md
index c9f9de4bf6..196fc8b6b8 100644
--- a/content/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise.md
+++ b/content/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise.md
@@ -1,7 +1,7 @@
 ---
 title: Enabling unified search for your enterprise
 shortTitle: Unified search
-intro: 'You can allow users to include repositories on {% data variables.product.prodname_dotcom_the_website %} in their search results when searching from {% data variables.product.product_location %}.'
+intro: 'You can allow users to include repositories on {% data variables.product.prodname_dotcom_the_website %} in their search results when searching from {% data variables.location.product_location %}.'
 redirect_from:
   - /enterprise/admin/guides/developer-workflow/enabling-unified-search-between-github-enterprise-and-github-com
   - /enterprise/admin/guides/developer-workflow/enabling-unified-search-between-github-enterprise-server-and-github-com
@@ -22,30 +22,30 @@ topics:
   - GitHub search
 ---
 
-## About {% data variables.product.prodname_unified_search %}
+## About {% data variables.enterprise.prodname_unified_search %}
 
 {% data reusables.github-connect.beta %}
 
-When you enable unified search, users can view search results from content on {% data variables.product.prodname_dotcom_the_website %} when searching from {% data variables.product.product_location %}{% ifversion ghae %} on {% data variables.product.prodname_ghe_managed %}{% endif %}. 
+When you enable unified search, users can view search results from content on {% data variables.product.prodname_dotcom_the_website %} when searching from {% data variables.location.product_location %}{% ifversion ghae %} on {% data variables.product.prodname_ghe_managed %}{% endif %}. 
 
 You can choose to allow search results for public repositories on {% data variables.product.prodname_dotcom_the_website %}, and you can separately choose to allow search results for private repositories on {% data variables.product.prodname_ghe_cloud %}. If you enable unified search for private repositories, users can only search private repositories that they have access to and that are owned by the connected organization or enterprise account. For more information, see "[About searching on {% data variables.product.prodname_dotcom %}](/search-github/getting-started-with-searching-on-github/about-searching-on-github/#searching-across-github-enterprise-and-githubcom-simultaneously)."
 
-Users will never be able to search {% data variables.product.product_location %} from {% data variables.product.prodname_dotcom_the_website %}, even if they have access to both environments.
+Users will never be able to search {% data variables.location.product_location %} from {% data variables.product.prodname_dotcom_the_website %}, even if they have access to both environments.
 
-After you enable unified search for {% data variables.product.product_location %}, before individual users can see search results from private repositories on {% data variables.product.prodname_dotcom_the_website %} in {% data variables.product.product_location %}, each user must also connect their user account on {% data variables.product.product_name %} with a user account on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Enabling {% data variables.product.prodname_dotcom_the_website %} repository search in your private enterprise account](/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment)."
+After you enable unified search for {% data variables.location.product_location %}, before individual users can see search results from private repositories on {% data variables.product.prodname_dotcom_the_website %} in {% data variables.location.product_location %}, each user must also connect their user account on {% data variables.product.product_name %} with a user account on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Enabling {% data variables.product.prodname_dotcom_the_website %} repository search in your private enterprise account](/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment)."
 
 Searching via the REST and GraphQL APIs does not include {% data variables.product.prodname_dotcom_the_website %} search results. Advanced search and searching for wikis in {% data variables.product.prodname_dotcom_the_website %} are not supported.
 
-## Enabling {% data variables.product.prodname_unified_search %}
+## Enabling {% data variables.enterprise.prodname_unified_search %}
 
-Before you can enable {% data variables.product.prodname_unified_search %}, you must enable {% data variables.product.prodname_github_connect %}. For more information, see "[Managing {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/managing-github-connect)."
+Before you can enable {% data variables.enterprise.prodname_unified_search %}, you must enable {% data variables.product.prodname_github_connect %}. For more information, see "[Managing {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/managing-github-connect)."
 
 {% ifversion ghes %}
 {% data reusables.github-connect.access-dotcom-and-enterprise %}
 {% data reusables.enterprise_site_admin_settings.access-settings %}
 {% data reusables.enterprise_site_admin_settings.business %}
 {% data reusables.enterprise-accounts.github-connect-tab %}{% else %}
-1. Sign into {% data variables.product.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.
+1. Sign into {% data variables.location.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.
 {% data reusables.enterprise-accounts.access-enterprise %}{% data reusables.enterprise-accounts.github-connect-tab %}{% endif %}
 1. Under "Users can search {% data variables.product.prodname_dotcom_the_website %}", use the drop-down menu and click **Enabled**.
   ![Enable search option in the search GitHub.com drop-down menu](/assets/images/enterprise/site-admin-settings/github-dotcom-enable-search.png)
diff --git a/content/admin/configuration/configuring-github-connect/index.md b/content/admin/configuration/configuring-github-connect/index.md
index 95089bed13..f0cbe3aeab 100644
--- a/content/admin/configuration/configuring-github-connect/index.md
+++ b/content/admin/configuration/configuring-github-connect/index.md
@@ -1,6 +1,6 @@
 ---
 title: Configuring GitHub Connect
-intro: 'With {% data variables.product.prodname_github_connect %}, you can access additional features and workflows by connecting {% data variables.product.product_location %} to {% data variables.product.prodname_ghe_cloud %}.'
+intro: 'With {% data variables.product.prodname_github_connect %}, you can access additional features and workflows by connecting {% data variables.location.product_location %} to {% data variables.product.prodname_ghe_cloud %}.'
 redirect_from:
   - /enterprise/admin/developer-workflow/connecting-github-enterprise-to-github-com
   - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-and-github-com
diff --git a/content/admin/configuration/configuring-github-connect/managing-github-connect.md b/content/admin/configuration/configuring-github-connect/managing-github-connect.md
index b3559ba542..113d5f293b 100644
--- a/content/admin/configuration/configuring-github-connect/managing-github-connect.md
+++ b/content/admin/configuration/configuring-github-connect/managing-github-connect.md
@@ -1,7 +1,7 @@
 ---
 title: Managing GitHub Connect
 shortTitle: Manage GitHub Connect
-intro: 'You can enable {% data variables.product.prodname_github_connect %} to access additional features and workflows for {% data variables.product.product_location %}.'
+intro: 'You can enable {% data variables.product.prodname_github_connect %} to access additional features and workflows for {% data variables.location.product_location %}.'
 redirect_from:
   - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-to-github-com
   - /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-server-to-github-com
@@ -26,9 +26,9 @@ topics:
 
 ## About {% data variables.product.prodname_github_connect %}
 
-You can access additional features and workflows on {% data variables.product.product_location %} by enabling {% data variables.product.prodname_github_connect %}. For more information, see "[About {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/about-github-connect)."
+You can access additional features and workflows on {% data variables.location.product_location %} by enabling {% data variables.product.prodname_github_connect %}. For more information, see "[About {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/about-github-connect)."
 
-When you enable {% data variables.product.prodname_github_connect %}, you configure a connection between {% data variables.product.product_location %} and an organization or enterprise account on {% data variables.product.prodname_ghe_cloud %}. Enabling {% data variables.product.prodname_github_connect %} creates a {% data variables.product.prodname_github_app %} owned by the organization or enterprise account on {% data variables.product.prodname_ghe_cloud %}. {% data variables.product.product_name %} uses the {% data variables.product.prodname_github_app %}'s credentials to make requests to {% data variables.product.prodname_ghe_cloud %}.
+When you enable {% data variables.product.prodname_github_connect %}, you configure a connection between {% data variables.location.product_location %} and an organization or enterprise account on {% data variables.product.prodname_ghe_cloud %}. Enabling {% data variables.product.prodname_github_connect %} creates a {% data variables.product.prodname_github_app %} owned by the organization or enterprise account on {% data variables.product.prodname_ghe_cloud %}. {% data variables.product.product_name %} uses the {% data variables.product.prodname_github_app %}'s credentials to make requests to {% data variables.product.prodname_ghe_cloud %}.
 
 {% ifversion ghes %}
 {% data variables.product.prodname_ghe_server %} stores credentials from the {% data variables.product.prodname_github_app %}. The following credentials will be replicated to all nodes in a high availability or cluster environment, and stored in any backups, including snapshots created by {% data variables.product.prodname_enterprise_backup_utilities %}.
@@ -41,7 +41,7 @@ When you enable {% data variables.product.prodname_github_connect %}, you config
 To use {% data variables.product.prodname_github_connect %}, you must have an organization or enterprise account on {% data variables.product.prodname_dotcom_the_website %} that uses {% data variables.product.prodname_ghe_cloud %}. You may already have {% data variables.product.prodname_ghe_cloud %} included in your plan. {% data reusables.enterprise.link-to-ghec-trial %}
 
 {% ifversion ghes %}
-If your organization or enterprise account on {% data variables.product.prodname_dotcom_the_website %} uses IP allow lists, you must add the IP address or network for {% data variables.product.product_location %} to your IP allow list on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Managing allowed IP addresses for your organization](/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization)" and "[Enforcing policies for security settings in your enterprise](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-allowed-ip-addresses-for-organizations-in-your-enterprise)" in the {% data variables.product.prodname_ghe_cloud %} documentation.
+If your organization or enterprise account on {% data variables.product.prodname_dotcom_the_website %} uses IP allow lists, you must add the IP address or network for {% data variables.location.product_location %} to your IP allow list on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Managing allowed IP addresses for your organization](/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization)" and "[Enforcing policies for security settings in your enterprise](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-allowed-ip-addresses-for-organizations-in-your-enterprise)" in the {% data variables.product.prodname_ghe_cloud %} documentation.
 
 To configure a connection, your proxy configuration must allow connectivity to `github.com`, `api.github.com`, and `uploads.github.com`. For more information, see "[Configuring an outbound web proxy server](/enterprise/admin/guides/installation/configuring-an-outbound-web-proxy-server)."
 {% endif %}
@@ -50,15 +50,15 @@ To configure a connection, your proxy configuration must allow connectivity to `
 
 Enterprise owners who are also owners of an organization or enterprise account that uses {% data variables.product.prodname_ghe_cloud %} can enable {% data variables.product.prodname_github_connect %}.
 
-If you're connecting {% data variables.product.product_location %} to an organization on {% data variables.product.prodname_ghe_cloud %} that is not owned by an enterprise account, you must sign into {% data variables.product.prodname_dotcom_the_website %} as an organization owner.
+If you're connecting {% data variables.location.product_location %} to an organization on {% data variables.product.prodname_ghe_cloud %} that is not owned by an enterprise account, you must sign into {% data variables.product.prodname_dotcom_the_website %} as an organization owner.
 
-If you're connecting {% data variables.product.product_location %} to an organization on {% data variables.product.prodname_ghe_cloud %} that is owned by an enterprise account or to an enterprise account itself, you must sign into {% data variables.product.prodname_dotcom_the_website %} as an enterprise owner.
+If you're connecting {% data variables.location.product_location %} to an organization on {% data variables.product.prodname_ghe_cloud %} that is owned by an enterprise account or to an enterprise account itself, you must sign into {% data variables.product.prodname_dotcom_the_website %} as an enterprise owner.
 
 {% ifversion ghes %}
-1. Sign in to {% data variables.product.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.
+1. Sign in to {% data variables.location.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.
 {% data reusables.enterprise-accounts.access-enterprise %}
 {% data reusables.enterprise-accounts.github-connect-tab %}{% else %}
-1. Sign in to {% data variables.product.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.
+1. Sign in to {% data variables.location.product_location %} and {% data variables.product.prodname_dotcom_the_website %}.
 {% data reusables.enterprise-accounts.access-enterprise %}{% data reusables.enterprise-accounts.github-connect-tab %}{% endif %}
 1. Under "{% data variables.product.prodname_github_connect %} is not enabled yet", click **Enable {% data variables.product.prodname_github_connect %}**. By clicking **Enable {% data variables.product.prodname_github_connect %}**, you agree to the "{% data variables.product.prodname_dotcom %} Terms for Additional Products and Features."
 {% ifversion ghes %}
@@ -72,7 +72,7 @@ If you're connecting {% data variables.product.product_location %} to an organiz
 
 Enterprise owners can disable {% data variables.product.prodname_github_connect %}.
 
-When you disconnect from {% data variables.product.prodname_ghe_cloud %}, the {% data variables.product.prodname_github_connect %} {% data variables.product.prodname_github_app %} is deleted from your enterprise account or organization and credentials stored on {% data variables.product.product_location %} are deleted.
+When you disconnect from {% data variables.product.prodname_ghe_cloud %}, the {% data variables.product.prodname_github_connect %} {% data variables.product.prodname_github_app %} is deleted from your enterprise account or organization and credentials stored on {% data variables.location.product_location %} are deleted.
 
 {% data reusables.enterprise-accounts.access-enterprise %}
 {% data reusables.enterprise-accounts.github-connect-tab %}
diff --git a/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md b/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md
index e400844d43..3d37a2c2dc 100644
--- a/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md
+++ b/content/admin/configuration/configuring-network-settings/configuring-a-hostname.md
@@ -14,13 +14,13 @@ topics:
   - Fundamentals
   - Infrastructure
 ---
-If you configure a hostname instead of a hard-coded IP address, you will be able to change the physical hardware that {% data variables.product.product_location %} runs on without affecting users or client software.
+If you configure a hostname instead of a hard-coded IP address, you will be able to change the physical hardware that {% data variables.location.product_location %} runs on without affecting users or client software.
 
 The hostname setting in the {% data variables.enterprise.management_console %} should be set to an appropriate fully qualified domain name (FQDN) which is resolvable on the internet or within your internal network. For example, your hostname setting could be `github.companyname.com.` Web and API requests will automatically redirect to the hostname configured in the {% data variables.enterprise.management_console %}. Note that `localhost` is not a valid hostname setting. 
 
 Hostnames must be less than 63 characters in length per [Section 2.3.4 of the Domain Names Specification RFC](https://datatracker.ietf.org/doc/html/rfc1035#section-2.3.4).
 
-After you configure a hostname, you can enable subdomain isolation to further increase the security of {% data variables.product.product_location %}. For more information, see "[Enabling subdomain isolation](/enterprise/admin/guides/installation/enabling-subdomain-isolation/)."
+After you configure a hostname, you can enable subdomain isolation to further increase the security of {% data variables.location.product_location %}. For more information, see "[Enabling subdomain isolation](/enterprise/admin/guides/installation/enabling-subdomain-isolation/)."
 
 For more information on the supported hostname types, see [Section 2.1 of the HTTP RFC](https://tools.ietf.org/html/rfc1123#section-2).
 
@@ -29,11 +29,11 @@ For more information on the supported hostname types, see [Section 2.1 of the HT
 {% data reusables.enterprise_site_admin_settings.access-settings %}
 {% data reusables.enterprise_site_admin_settings.management-console %}
 {% data reusables.enterprise_management_console.hostname-menu-item %}
-4. Type the hostname you'd like to set for {% data variables.product.product_location %}.
+4. Type the hostname you'd like to set for {% data variables.location.product_location %}.
   ![Field for setting a hostname](/assets/images/enterprise/management-console/hostname-field.png)
 5. To test the DNS and SSL settings for the new hostname, click **Test domain settings**.
   ![Test domain settings button](/assets/images/enterprise/management-console/test-domain-settings.png)
 {% data reusables.enterprise_management_console.test-domain-settings-failure %}
 {% data reusables.enterprise_management_console.save-settings %}
 
-To help mitigate various cross-site scripting vulnerabilities, we recommend that you enable subdomain isolation for {% data variables.product.product_location %} after you configure a hostname. For more information, see "[Enabling subdomain isolation](/enterprise/admin/guides/installation/enabling-subdomain-isolation/)."
+To help mitigate various cross-site scripting vulnerabilities, we recommend that you enable subdomain isolation for {% data variables.location.product_location %} after you configure a hostname. For more information, see "[Enabling subdomain isolation](/enterprise/admin/guides/installation/enabling-subdomain-isolation/)."
diff --git a/content/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server.md b/content/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server.md
index efcd3a1f2d..0bf9da396a 100644
--- a/content/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server.md
+++ b/content/admin/configuration/configuring-network-settings/configuring-an-outbound-web-proxy-server.md
@@ -1,6 +1,6 @@
 ---
 title: Configuring an outbound web proxy server
-intro: 'A proxy server provides an additional level of security for {% data variables.product.product_location %}.'
+intro: 'A proxy server provides an additional level of security for {% data variables.location.product_location %}.'
 redirect_from:
   - /enterprise/admin/guides/installation/configuring-a-proxy-server
   - /enterprise/admin/installation/configuring-an-outbound-web-proxy-server
@@ -19,11 +19,11 @@ shortTitle: Configure an outbound proxy
 
 ## About proxies with {% data variables.product.product_name %}
 
-When a proxy server is enabled for {% data variables.product.product_location %}, outbound messages sent by {% data variables.product.prodname_ghe_server %} are first sent through the proxy server, unless the destination host is added as an HTTP proxy exclusion. Types of outbound messages include outgoing webhooks, uploading bundles, and fetching legacy avatars. The proxy server's URL is the protocol, domain or IP address, plus the port number, for example `http://127.0.0.1:8123`.
+When a proxy server is enabled for {% data variables.location.product_location %}, outbound messages sent by {% data variables.product.prodname_ghe_server %} are first sent through the proxy server, unless the destination host is added as an HTTP proxy exclusion. Types of outbound messages include outgoing webhooks, uploading bundles, and fetching legacy avatars. The proxy server's URL is the protocol, domain or IP address, plus the port number, for example `http://127.0.0.1:8123`.
 
 {% note %}
 
-**Note:**  To connect {% data variables.product.product_location %} to {% data variables.product.prodname_dotcom_the_website %}, your proxy configuration must allow connectivity to `github.com` and `api.github.com`. For more information, see "[Connecting your enterprise account to {% data variables.product.prodname_dotcom_the_website %}](/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud)."
+**Note:**  To connect {% data variables.location.product_location %} to {% data variables.product.prodname_dotcom_the_website %}, your proxy configuration must allow connectivity to `github.com` and `api.github.com`. For more information, see "[Connecting your enterprise account to {% data variables.product.prodname_dotcom_the_website %}](/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud)."
 
 {% endnote %}
 
diff --git a/content/admin/configuration/configuring-network-settings/configuring-built-in-firewall-rules.md b/content/admin/configuration/configuring-network-settings/configuring-built-in-firewall-rules.md
index b6f5cbfb9d..7a0088680e 100644
--- a/content/admin/configuration/configuring-network-settings/configuring-built-in-firewall-rules.md
+++ b/content/admin/configuration/configuring-network-settings/configuring-built-in-firewall-rules.md
@@ -1,6 +1,6 @@
 ---
 title: Configuring built-in firewall rules
-intro: 'You can view default firewall rules and customize rules for {% data variables.product.product_location %}.'
+intro: 'You can view default firewall rules and customize rules for {% data variables.location.product_location %}.'
 redirect_from:
   - /enterprise/admin/guides/installation/configuring-firewall-settings
   - /enterprise/admin/installation/configuring-built-in-firewall-rules
@@ -16,7 +16,7 @@ topics:
   - Networking
 shortTitle: Configure firewall rules
 ---
-## About {% data variables.product.product_location %}'s firewall
+## About {% data variables.location.product_location %}'s firewall
 
 {% data variables.product.prodname_ghe_server %} uses Ubuntu's Uncomplicated Firewall (UFW) on the virtual appliance. For more information see "[UFW](https://help.ubuntu.com/community/UFW)" in the Ubuntu documentation. {% data variables.product.prodname_ghe_server %} automatically updates the firewall allowlist of allowed services with each release.
 
@@ -73,7 +73,7 @@ The UFW firewall also opens several other ports that are required for {% data va
   $ sudo cp -r /etc/ufw ~/ufw.backup
   ```
 
-After you upgrade {% data variables.product.product_location %}, you must reapply your custom firewall rules. We recommend that you create a script to reapply your firewall custom rules.
+After you upgrade {% data variables.location.product_location %}, you must reapply your custom firewall rules. We recommend that you create a script to reapply your firewall custom rules.
 
 ## Restoring the default firewall rules
 
diff --git a/content/admin/configuration/configuring-network-settings/configuring-dns-nameservers.md b/content/admin/configuration/configuring-network-settings/configuring-dns-nameservers.md
index 7cc26a40e1..04ddd6fa9e 100644
--- a/content/admin/configuration/configuring-network-settings/configuring-dns-nameservers.md
+++ b/content/admin/configuration/configuring-network-settings/configuring-dns-nameservers.md
@@ -16,7 +16,7 @@ topics:
   - Networking
 shortTitle: Configure DNS servers
 ---
-The nameservers you specify must resolve {% data variables.product.product_location %}'s hostname.
+The nameservers you specify must resolve {% data variables.location.product_location %}'s hostname.
 
 {% data reusables.enterprise_installation.changing-hostname-not-supported %}
 
@@ -36,7 +36,7 @@ The nameservers you specify must resolve {% data variables.product.product_locat
   ghe-setup-network -v
   ```
 
-5. To add your new nameserver entries to {% data variables.product.product_location %}, run the following:
+5. To add your new nameserver entries to {% data variables.location.product_location %}, run the following:
 
   ```shell
   sudo service resolvconf restart
diff --git a/content/admin/configuration/configuring-network-settings/configuring-tls.md b/content/admin/configuration/configuring-network-settings/configuring-tls.md
index 912eb2706f..bebfbb14fe 100644
--- a/content/admin/configuration/configuring-network-settings/configuring-tls.md
+++ b/content/admin/configuration/configuring-network-settings/configuring-tls.md
@@ -1,6 +1,6 @@
 ---
 title: Configuring TLS
-intro: 'You can configure Transport Layer Security (TLS) on {% data variables.product.product_location %} so that you can use a certificate that is signed by a trusted certificate authority.'
+intro: 'You can configure Transport Layer Security (TLS) on {% data variables.location.product_location %} so that you can use a certificate that is signed by a trusted certificate authority.'
 redirect_from:
   - /enterprise/admin/articles/ssl-configuration
   - /enterprise/admin/guides/installation/about-tls
@@ -60,9 +60,9 @@ Let's Encrypt is a public certificate authority that issues free, automated TLS
 
 {% data reusables.enterprise_installation.lets-encrypt-prerequisites %}
 
-When you enable automation of TLS certificate management using Let's Encrypt, {% data variables.product.product_location %} will contact the Let's Encrypt servers to obtain a certificate. To renew a certificate, Let's Encrypt servers must validate control of the configured domain name with inbound HTTP requests.
+When you enable automation of TLS certificate management using Let's Encrypt, {% data variables.location.product_location %} will contact the Let's Encrypt servers to obtain a certificate. To renew a certificate, Let's Encrypt servers must validate control of the configured domain name with inbound HTTP requests.
 
-You can also use the `ghe-ssl-acme` command line utility on {% data variables.product.product_location %} to automatically generate a Let's Encrypt certificate. For more information, see "[Command-line utilities](/enterprise/admin/guides/installation/command-line-utilities#ghe-ssl-acme)."
+You can also use the `ghe-ssl-acme` command line utility on {% data variables.location.product_location %} to automatically generate a Let's Encrypt certificate. For more information, see "[Command-line utilities](/enterprise/admin/guides/installation/command-line-utilities#ghe-ssl-acme)."
 
 ## Configuring TLS using Let's Encrypt
 
diff --git a/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md b/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md
index a939afbea7..e1dcf2af52 100644
--- a/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md
+++ b/content/admin/configuration/configuring-network-settings/enabling-subdomain-isolation.md
@@ -19,7 +19,7 @@ shortTitle: Enable subdomain isolation
 ---
 ## About subdomain isolation
 
-Subdomain isolation mitigates cross-site scripting and other related vulnerabilities. For more information, see "[Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting)" on Wikipedia. We highly recommend that you enable subdomain isolation on {% data variables.product.product_location %}.
+Subdomain isolation mitigates cross-site scripting and other related vulnerabilities. For more information, see "[Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting)" on Wikipedia. We highly recommend that you enable subdomain isolation on {% data variables.location.product_location %}.
 
 When subdomain isolation is enabled, {% data variables.product.prodname_ghe_server %} replaces several paths with subdomains. After enabling subdomain isolation, attempts to access the previous paths for some user-supplied content, such as `http(s)://HOSTNAME/raw/`, may return `404` errors.
 
diff --git a/content/admin/configuration/configuring-network-settings/network-ports.md b/content/admin/configuration/configuring-network-settings/network-ports.md
index ec8cf46782..576fc56eeb 100644
--- a/content/admin/configuration/configuring-network-settings/network-ports.md
+++ b/content/admin/configuration/configuring-network-settings/network-ports.md
@@ -20,13 +20,13 @@ topics:
 ---
 ## Administrative ports
 
-Some administrative ports are required to configure {% data variables.product.product_location %} and run certain features. Administrative ports are not required for basic application use by end users.
+Some administrative ports are required to configure {% data variables.location.product_location %} and run certain features. Administrative ports are not required for basic application use by end users.
 
 | Port | Service | Description |
 |---|---|---|
 | 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 TLS is disabled manually. |
-| 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. |
+| 122 | SSH | Shell access for {% data variables.location.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. |
@@ -54,14 +54,14 @@ Email ports must be accessible directly or via relay for inbound email support f
 
 ## {% data variables.product.prodname_actions %} ports
 
-{% data variables.product.prodname_actions %} ports must be accessible for self-hosted runners to connect to {% data variables.product.product_location %}. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#communication-between-self-hosted-runners-and-github-enterprise-server)."
+{% data variables.product.prodname_actions %} ports must be accessible for self-hosted runners to connect to {% data variables.location.product_location %}. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#communication-between-self-hosted-runners-and-github-enterprise-server)."
 
 | Port | Service | Description |
 |---|---|---|
-| 443 | HTTPS | Self-hosted runners connect to {% data variables.product.product_location %} to receive job assignments and to download new versions of the runner application. Required if TLS is configured.
-| 80 | HTTP | Self-hosted runners connect to {% data variables.product.product_location %} to receive job assignments and to download new versions of the runner application. Required if TLS is not configured.
+| 443 | HTTPS | Self-hosted runners connect to {% data variables.location.product_location %} to receive job assignments and to download new versions of the runner application. Required if TLS is configured.
+| 80 | HTTP | Self-hosted runners connect to {% data variables.location.product_location %} to receive job assignments and to download new versions of the runner application. Required if TLS is not configured.
 
-If you enable automatic access to {% data variables.product.prodname_dotcom_the_website %} actions, {% data variables.product.prodname_actions %} will always search for an action on {% data variables.product.product_location %} first, via these ports, before checking {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Enabling automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#about-resolution-for-actions-using-github-connect)."
+If you enable automatic access to {% data variables.product.prodname_dotcom_the_website %} actions, {% data variables.product.prodname_actions %} will always search for an action on {% data variables.location.product_location %} first, via these ports, before checking {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Enabling automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#about-resolution-for-actions-using-github-connect)."
 
 ## Further reading
 
diff --git a/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md b/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md
index 094c83696a..955ed62c25 100644
--- a/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md
+++ b/content/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer.md
@@ -33,7 +33,7 @@ Because client connections to {% data variables.product.prodname_ghe_server %} c
 
 {% data reusables.enterprise_installation.terminating-tls %}
 
-### Enabling PROXY protocol support on {% data variables.product.product_location %}
+### Enabling PROXY protocol support on {% data variables.location.product_location %}
 
 We strongly recommend enabling PROXY protocol support for both your instance and the load balancer. Use the instructions provided by your vendor to enable the PROXY protocol on your load balancer. For more information, see [the PROXY protocol documentation](http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt).
 
@@ -48,13 +48,13 @@ We strongly recommend enabling PROXY protocol support for both your instance and
 
 {% data reusables.enterprise_clustering.proxy_protocol_ports %}
 
-### Enabling X-Forwarded-For support on {% data variables.product.product_location %}
+### Enabling X-Forwarded-For support on {% data variables.location.product_location %}
 
 {% data reusables.enterprise_clustering.x-forwarded-for %}
 
 {% warning %}
 
-**Warning**: If you configure `X-Forwarded-For` support on {% data variables.product.product_location %} and load balancer, you may not be able to connect to the {% data variables.enterprise.management_console %}. For more information, see "[Error: "Your session has expired" for connections to the {% data variables.enterprise.management_console %}](/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer#error-your-session-has-expired-for-connections-to-the-management-console)."
+**Warning**: If you configure `X-Forwarded-For` support on {% data variables.location.product_location %} and load balancer, you may not be able to connect to the {% data variables.enterprise.management_console %}. For more information, see "[Error: "Your session has expired" for connections to the {% data variables.enterprise.management_console %}](/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer#error-your-session-has-expired-for-connections-to-the-management-console)."
 
 {% endwarning %}
 
@@ -76,7 +76,7 @@ Health checks allow a load balancer to stop sending traffic to a node that is no
 
 ## Troubleshooting connectivity through a load balancer
 
-If you cannot connect to services on {% data variables.product.product_location %} through a load balancer, you can review the following information to troubleshoot the problem.
+If you cannot connect to services on {% data variables.location.product_location %} through a load balancer, you can review the following information to troubleshoot the problem.
 
 {% note %}
 
@@ -88,15 +88,15 @@ If you cannot connect to services on {% data variables.product.product_location
 
 If you enable support for the `X-Forwarded-For` header on your instance and load balancer, you may not be able to access your instance's {% data variables.enterprise.management_console %}. For more information about the {% data variables.enterprise.management_console %} and ports required for connections, see "[Accessing the management console](/admin/configuration/configuring-your-enterprise/accessing-the-management-console)" and "[Network ports](/admin/configuration/configuring-network-settings/network-ports)."
 
-If {% data variables.product.product_location %} indicates that your session has expired when you connect to the {% data variables.enterprise.management_console %} through a load balancer, try one of the following configurations on your load balancer.
+If {% data variables.location.product_location %} indicates that your session has expired when you connect to the {% data variables.enterprise.management_console %} through a load balancer, try one of the following configurations on your load balancer.
 
 - Disable `X-Forwarded-For` headers for connections to your instance on ports 8080 and 8443.
-- Configure your load balancer to operate on Layer 4, and use the PROXY protocol instead of `X-Forwarded-For` for passthrough of client IP addresses. For more information, see "[Enabling PROXY protocol support on {% data variables.product.product_location %}](#enabling-proxy-protocol-support-on-your-github-enterprise-server-instance)."
+- Configure your load balancer to operate on Layer 4, and use the PROXY protocol instead of `X-Forwarded-For` for passthrough of client IP addresses. For more information, see "[Enabling PROXY protocol support on {% data variables.location.product_location %}](#enabling-proxy-protocol-support-on-your-github-enterprise-server-instance)."
 
 For more information, refer to the documentation for your load balancer.
 
 ### Live updates to issues and check runs not working
 
-When {% data variables.product.product_location %} is accessed via a load balancer or reverse proxy, expected live updates, such as new comments on issues and changes in notification badges or check run output, may not display until the page is refreshed. This is most common when the reverse proxy or load balancer is running in a layer 7 mode or does not support the required [websocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) protocol. 
+When {% data variables.location.product_location %} is accessed via a load balancer or reverse proxy, expected live updates, such as new comments on issues and changes in notification badges or check run output, may not display until the page is refreshed. This is most common when the reverse proxy or load balancer is running in a layer 7 mode or does not support the required [websocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) protocol. 
 
 To enable live updates, you may need to reconfigure the load balancer or proxy. For more information, refer to the documentation for your load balancer.
diff --git a/content/admin/configuration/configuring-network-settings/validating-your-domain-settings.md b/content/admin/configuration/configuring-network-settings/validating-your-domain-settings.md
index 34c83501b6..50ed3a2fa2 100644
--- a/content/admin/configuration/configuring-network-settings/validating-your-domain-settings.md
+++ b/content/admin/configuration/configuring-network-settings/validating-your-domain-settings.md
@@ -1,6 +1,6 @@
 ---
 title: Validating your domain settings
-intro: 'Ensure that your domain settings are properly configured before booting up {% data variables.product.product_location %} for the first time.'
+intro: 'Ensure that your domain settings are properly configured before booting up {% data variables.location.product_location %} for the first time.'
 redirect_from:
   - /enterprise/admin/installation/validating-your-domain-settings
   - /enterprise/admin/configuration/validating-your-domain-settings
diff --git a/content/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh.md b/content/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh.md
index 9cf7eeddc9..46eaace76c 100644
--- a/content/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh.md
+++ b/content/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh.md
@@ -53,7 +53,7 @@ admin@github-example-com:~$ █
 
 ### Troubleshooting SSH connection problems
 
-If you encounter the `Permission denied (publickey)` error when you try to connect to {% data variables.product.product_location %} via SSH, confirm that you are connecting over port 122. You may need to explicitly specify which private SSH key to use.
+If you encounter the `Permission denied (publickey)` error when you try to connect to {% data variables.location.product_location %} via SSH, confirm that you are connecting over port 122. You may need to explicitly specify which private SSH key to use.
 
 To specify a private SSH key using the command line, run `ssh` with the `-i` argument.
 
diff --git a/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md b/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md
index e484ec6513..83da0eb50e 100644
--- a/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md
+++ b/content/admin/configuration/configuring-your-enterprise/accessing-the-management-console.md
@@ -22,15 +22,15 @@ shortTitle: Access the management console
 ## About the {% data variables.enterprise.management_console %}
 
 Use the {% data variables.enterprise.management_console %} for basic administrative activities:
-- **Initial setup**: Walk through the initial setup process when first launching {% data variables.product.product_location %} by visiting {% data variables.product.product_location %}'s IP address in your browser.
+- **Initial setup**: Walk through the initial setup process when first launching {% data variables.location.product_location %} by visiting {% data variables.location.product_location %}'s IP address in your browser.
 - **Configuring basic settings for your instance**: Configure DNS, hostname, SSL, user authentication, email, monitoring services, and log forwarding on the Settings page.
-- **Scheduling maintenance windows**: Take {% data variables.product.product_location %} offline while performing maintenance using the {% data variables.enterprise.management_console %} or administrative shell.
+- **Scheduling maintenance windows**: Take {% data variables.location.product_location %} offline while performing maintenance using the {% data variables.enterprise.management_console %} or administrative shell.
 - **Troubleshooting**: Generate a support bundle or view high level diagnostic information.
 - **License management**: View or update your {% data variables.product.prodname_enterprise %} license.
 
-You can always reach the {% data variables.enterprise.management_console %} using {% data variables.product.product_location %}'s IP address, even when the instance is in maintenance mode, or there is a critical application failure or hostname or SSL misconfiguration.
+You can always reach the {% data variables.enterprise.management_console %} using {% data variables.location.product_location %}'s IP address, even when the instance is in maintenance mode, or there is a critical application failure or hostname or SSL misconfiguration.
 
-To access the {% data variables.enterprise.management_console %}, you must use the administrator password established during initial setup of {% data variables.product.product_location %}. You must also be able to connect to the virtual machine host on port 8443. If you're having trouble reaching the {% data variables.enterprise.management_console %}, please check intermediate firewall and security group configurations.
+To access the {% data variables.enterprise.management_console %}, you must use the administrator password established during initial setup of {% data variables.location.product_location %}. You must also be able to connect to the virtual machine host on port 8443. If you're having trouble reaching the {% data variables.enterprise.management_console %}, please check intermediate firewall and security group configurations.
 
 The {% data variables.enterprise.management_console %} password hash is stored in `/data/user/common/secrets.conf`, and that file is automatically synced from the primary appliance to any high-availability replicas. Any change to the primary's password will automatically be replicated to high-availability replicas. For more information about high availability, see "[About high availability configuration](/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration)."
 
@@ -58,8 +58,8 @@ To immediately unlock the {% data variables.enterprise.management_console %}, us
 
 ## Troubleshooting failed connections to the {% data variables.enterprise.management_console %}
 
-If you cannot connect to the {% data variables.enterprise.management_console %} on {% data variables.product.product_location %}, you can review the following information to troubleshoot the problem.
+If you cannot connect to the {% data variables.enterprise.management_console %} on {% data variables.location.product_location %}, you can review the following information to troubleshoot the problem.
 
 ### Error: "Your session has expired" for connections through a load balancer
 
-If you access {% data variables.product.product_location %} through a load balancer and connections to the {% data variables.enterprise.management_console %} fail with a message that your session has expired, you may need to reconfigure your load balancer. For more information, see "[Using {% data variables.product.product_name %} with a load balancer](/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer#error-your-session-has-expired-for-connections-to-the-management-console)."
+If you access {% data variables.location.product_location %} through a load balancer and connections to the {% data variables.enterprise.management_console %} fail with a message that your session has expired, you may need to reconfigure your load balancer. For more information, see "[Using {% data variables.product.product_name %} with a load balancer](/admin/configuration/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer#error-your-session-has-expired-for-connections-to-the-management-console)."
diff --git a/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md b/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md
index 6ce475f511..f6ad7b034e 100644
--- a/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md
+++ b/content/admin/configuration/configuring-your-enterprise/command-line-utilities.md
@@ -109,7 +109,7 @@ ghe-cleanup-settings
 
 ### ghe-config
 
-With this utility, you can both retrieve and modify the configuration settings of {% data variables.product.product_location %}.
+With this utility, you can both retrieve and modify the configuration settings of {% data variables.location.product_location %}.
 
 ```shell
 $ ghe-config core.github-hostname
@@ -417,7 +417,7 @@ This utility allows you to install a custom root CA certificate on your {% data
 
 Run this utility to add a certificate chain for S/MIME commit signature verification. For more information, see "[About commit signature verification](/enterprise/user/articles/about-commit-signature-verification/)."
 
-Run this utility when {% data variables.product.product_location %} is unable to connect to another server because the latter is using a self-signed SSL certificate or an SSL certificate for which it doesn't provide the necessary CA bundle. One way to confirm this is to run `openssl s_client -connect host:port -verify 0 -CApath /etc/ssl/certs` from {% data variables.product.product_location %}. If the remote server's SSL certificate can be verified, your `SSL-Session` should have a return code of 0, as shown below.
+Run this utility when {% data variables.location.product_location %} is unable to connect to another server because the latter is using a self-signed SSL certificate or an SSL certificate for which it doesn't provide the necessary CA bundle. One way to confirm this is to run `openssl s_client -connect host:port -verify 0 -CApath /etc/ssl/certs` from {% data variables.location.product_location %}. If the remote server's SSL certificate can be verified, your `SSL-Session` should have a return code of 0, as shown below.
 
 ```
 SSL-Session:
@@ -457,7 +457,7 @@ ghe-ssl-ca-certificate-install -c CERTIFICATE_PATH
 
 ### ghe-ssl-certificate-setup
 
-This utility allows you to update an SSL certificate for {% data variables.product.product_location %}. 
+This utility allows you to update an SSL certificate for {% data variables.location.product_location %}. 
 
 For more information about this command or for additional options, use the `-h` flag.
 
@@ -485,7 +485,7 @@ $ ghe-storage-extend
 
 ### ghe-version
 
-This utility prints the version, platform, and build of {% data variables.product.product_location %}.
+This utility prints the version, platform, and build of {% data variables.location.product_location %}.
 
 ```shell
 $ ghe-version
@@ -672,7 +672,7 @@ You can add the optional `--prune` argument to remove unreachable Git objects th
 
 {% warning %}
 
-**Warning**: Before using the `--prune` argument to remove unreachable Git objects, put {% data variables.product.product_location %} into maintenance mode, or ensure all repositories within the same repository network are locked. For more information, see "[Enabling and scheduling maintenance mode](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode)."
+**Warning**: Before using the `--prune` argument to remove unreachable Git objects, put {% data variables.location.product_location %} into maintenance mode, or ensure all repositories within the same repository network are locked. For more information, see "[Enabling and scheduling maintenance mode](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode)."
 
 {% endwarning %}
 
@@ -692,7 +692,7 @@ ghe-actions-check
 
 ### ghe-actions-precheck
 
-This utility tests the blob storage configuration for {% data variables.product.prodname_actions %} on {% data variables.product.product_location %}. You can use the utility to verify your storage configuration before you enable {% data variables.product.prodname_actions %} for your instance.
+This utility tests the blob storage configuration for {% data variables.product.prodname_actions %} on {% data variables.location.product_location %}. You can use the utility to verify your storage configuration before you enable {% data variables.product.prodname_actions %} for your instance.
 
 For more information about the configuration of {% data variables.product.prodname_actions %}, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)."
 
diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-applications.md b/content/admin/configuration/configuring-your-enterprise/configuring-applications.md
index e5ee810853..07a9b2af5d 100644
--- a/content/admin/configuration/configuring-your-enterprise/configuring-applications.md
+++ b/content/admin/configuration/configuring-your-enterprise/configuring-applications.md
@@ -1,6 +1,6 @@
 ---
 title: Configuring applications
-intro: 'You can configure internal application settings for {% data variables.product.product_location %}.'
+intro: 'You can configure internal application settings for {% data variables.location.product_location %}.'
 redirect_from:
   - /enterprise/admin/installation/configuring-applications
   - /enterprise/admin/configuration/configuring-applications
@@ -14,12 +14,12 @@ topics:
 ---
 ## Adjusting image caching
 
-You can choose the amount of time that {% data variables.product.product_location %} caches avatars. When you increase the cache time, you increase the amount of time a user's avatar will take to load. Configuring the cache time with too low a value can overload {% data variables.product.product_location %} work processes. 
+You can choose the amount of time that {% data variables.location.product_location %} caches avatars. When you increase the cache time, you increase the amount of time a user's avatar will take to load. Configuring the cache time with too low a value can overload {% data variables.location.product_location %} work processes. 
 
 {% data reusables.enterprise_site_admin_settings.access-settings %}
 {% data reusables.enterprise_site_admin_settings.management-console %}
 3. In the left sidebar, click **Applications**.
 ![Applications tab in the settings sidebar](/assets/images/enterprise/management-console/sidebar-applications.png)
-4. Under "Avatar image cache time (seconds)", type the number of seconds that you would like {% data variables.product.product_location %} to cache avatar images.
+4. Under "Avatar image cache time (seconds)", type the number of seconds that you would like {% data variables.location.product_location %} to cache avatar images.
 ![Avatar image caching form field](/assets/images/enterprise/management-console/add-image-caching-value-field.png)
 {% data reusables.enterprise_management_console.save-settings %}
diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md b/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md
index 82d3255404..a8fecf4017 100644
--- a/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md
+++ b/content/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance.md
@@ -14,7 +14,7 @@ redirect_from:
   - /enterprise/admin/installation/configuring-backups-on-your-appliance
   - /enterprise/admin/configuration/configuring-backups-on-your-appliance
   - /admin/configuration/configuring-backups-on-your-appliance
-intro: 'As part of a disaster recovery plan, you can protect production data on {% data variables.product.product_location %} by configuring automated backups.'
+intro: 'As part of a disaster recovery plan, you can protect production data on {% data variables.location.product_location %} by configuring automated backups.'
 versions:
   ghes: '*'
 type: how_to
@@ -26,7 +26,7 @@ topics:
 ---
 ## About {% data variables.product.prodname_enterprise_backup_utilities %}
 
-{% data variables.product.prodname_enterprise_backup_utilities %} is a backup system you install on a separate host, which takes backup snapshots of {% data variables.product.product_location %} at regular intervals over a secure SSH network connection. You can use a snapshot to restore an existing {% data variables.product.prodname_ghe_server %} instance to a previous state from the backup host.
+{% data variables.product.prodname_enterprise_backup_utilities %} is a backup system you install on a separate host, which takes backup snapshots of {% data variables.location.product_location %} at regular intervals over a secure SSH network connection. You can use a snapshot to restore an existing {% data variables.product.prodname_ghe_server %} instance to a previous state from the backup host.
 
 Only data added since the last snapshot will transfer over the network and occupy additional physical storage space. To minimize performance impact, backups are performed online under the lowest CPU/IO priority. You do not need to schedule a maintenance window to perform a backup.
 
@@ -36,11 +36,11 @@ For more detailed information on features, requirements, and advanced usage, see
 
 ## Prerequisites
 
-To use {% data variables.product.prodname_enterprise_backup_utilities %}, you must have a Linux or Unix host system separate from {% data variables.product.product_location %}.
+To use {% data variables.product.prodname_enterprise_backup_utilities %}, you must have a Linux or Unix host system separate from {% data variables.location.product_location %}.
 
 You can also integrate {% data variables.product.prodname_enterprise_backup_utilities %} into an existing environment for long-term permanent storage of critical data.
 
-We recommend that the backup host and {% data variables.product.product_location %} be geographically distant from each other. This ensures that backups are available for recovery in the event of a major disaster or network outage at the primary site.
+We recommend that the backup host and {% data variables.location.product_location %} be geographically distant from each other. This ensures that backups are available for recovery in the event of a major disaster or network outage at the primary site.
 
 Physical storage requirements will vary based on Git repository disk usage and expected growth patterns:
 
@@ -89,14 +89,14 @@ Backup snapshots are written to the disk path set by the `GHE_DATA_DIR` data dir
 
      {% note %}
 
-     **Note:** If {% data variables.product.product_location %} is deployed as a cluster or in a high availability configuration using a load balancer, the `GHE_HOSTNAME` can be the load balancer hostname, as long as it allows SSH access (on port 122) to {% data variables.product.product_location %}.
+     **Note:** If {% data variables.location.product_location %} is deployed as a cluster or in a high availability configuration using a load balancer, the `GHE_HOSTNAME` can be the load balancer hostname, as long as it allows SSH access (on port 122) to {% data variables.location.product_location %}.
 
      To ensure a recovered appliance is immediately available, perform backups targeting the primary instance even in a geo-replication configuration.
 
      {% endnote %}
    1. Set the `GHE_DATA_DIR` value to the filesystem location where you want to store backup snapshots. We recommend choosing a location on the same filesystem as your backup host, but outside of where you cloned the Git repository in step 1.
 1. To grant your backup host access to your instance, open your primary instance's settings page at `http(s)://HOSTNAME/setup/settings` and add the backup host's SSH key to the list of authorized SSH keys. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh#enabling-access-to-the-administrative-shell-via-ssh)."
-1. On your backup host, verify SSH connectivity with {% data variables.product.product_location %} with the `ghe-host-check` command.
+1. On your backup host, verify SSH connectivity with {% data variables.location.product_location %} with the `ghe-host-check` command.
 
   ```shell
   ./bin/ghe-host-check
@@ -111,7 +111,7 @@ For more information on advanced usage, see the [{% data variables.product.prodn
 
 ## Upgrading {% data variables.product.prodname_enterprise_backup_utilities %}
 
-When upgrading {% data variables.product.prodname_enterprise_backup_utilities %}, you must choose a release that will work with your current version of {% data variables.product.product_name %}. Your installation of {% data variables.product.prodname_enterprise_backup_utilities %} must be at least the same version as {% data variables.product.product_location %}, and cannot be more than two versions ahead. For more information, see [{% data variables.product.prodname_ghe_server %} version requirements](https://github.com/github/backup-utils/blob/master/docs/requirements.md#github-enterprise-server-version-requirements) in the {% data variables.product.prodname_enterprise_backup_utilities %} project documentation.
+When upgrading {% data variables.product.prodname_enterprise_backup_utilities %}, you must choose a release that will work with your current version of {% data variables.product.product_name %}. Your installation of {% data variables.product.prodname_enterprise_backup_utilities %} must be at least the same version as {% data variables.location.product_location %}, and cannot be more than two versions ahead. For more information, see [{% data variables.product.prodname_ghe_server %} version requirements](https://github.com/github/backup-utils/blob/master/docs/requirements.md#github-enterprise-server-version-requirements) in the {% data variables.product.prodname_enterprise_backup_utilities %} project documentation.
 You can upgrade {% data variables.product.prodname_enterprise_backup_utilities %} in a Git repository by fetching and checking out the latest changes.
 
 Alternatively, if you don't use a Git repository for your installation, you can extract a new archive into place, or you can change your approach to use a Git repository instead.
@@ -198,24 +198,24 @@ If backup attempts overlap, the `ghe-backup` command will abort with an error me
 
 ## Restoring a backup
 
-In the event of prolonged outage or catastrophic event at the primary site, you can restore {% data variables.product.product_location %} by provisioning another {% data variables.product.prodname_enterprise %} appliance and performing a restore from the backup host. You must add the backup host's SSH key to the target {% data variables.product.prodname_enterprise %} appliance as an authorized SSH key before restoring an appliance.
+In the event of prolonged outage or catastrophic event at the primary site, you can restore {% data variables.location.product_location %} by provisioning another {% data variables.product.prodname_enterprise %} appliance and performing a restore from the backup host. You must add the backup host's SSH key to the target {% data variables.product.prodname_enterprise %} appliance as an authorized SSH key before restoring an appliance.
 
 {% note %}
 
-**Note:** When performing backup restores to {% data variables.product.product_location %}, the same version supportability rules apply. You can only restore data from at most two feature releases behind.
+**Note:** When performing backup restores to {% data variables.location.product_location %}, the same version supportability rules apply. You can only restore data from at most two feature releases behind.
 
 For example, if you take a backup from {% data variables.product.product_name %} 3.0.x, you can restore the backup to a {% data variables.product.product_name %} 3.2.x instance. You cannot restore data from a backup of {% data variables.product.product_name %} 2.22.x to an instance running 3.2.x, because that would be three jumps between versions (2.22 to 3.0 to 3.1 to 3.2). You would first need to restore to an instance running 3.1.x, and then upgrade to 3.2.x.
 
 {% endnote %}
 
-To restore {% data variables.product.product_location %} from the last successful snapshot, use the `ghe-restore` command.
+To restore {% data variables.location.product_location %} from the last successful snapshot, use the `ghe-restore` command.
 
 {% note %}
 
 **Note:** Prior to restoring a backup, ensure:
 - Maintenance mode is enabled on the primary instance and all active processes have completed. For more information, see "[Enabling maintenance mode](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode/)."
 - Replication is stopped on all replicas in high availability configurations. For more information, see the `ghe-repl-stop` command in "[About high availability configuration](/admin/enterprise-management/configuring-high-availability/about-high-availability-configuration#ghe-repl-stop)."
-- If {% data variables.product.product_location %} has {% data variables.product.prodname_actions %} enabled, you must first configure the {% data variables.product.prodname_actions %} external storage provider on the replacement appliance. For more information, see "[Backing up and restoring {% data variables.product.prodname_ghe_server %} with {% data variables.product.prodname_actions %} enabled](/admin/github-actions/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled)."
+- If {% data variables.location.product_location %} has {% data variables.product.prodname_actions %} enabled, you must first configure the {% data variables.product.prodname_actions %} external storage provider on the replacement appliance. For more information, see "[Backing up and restoring {% data variables.product.prodname_ghe_server %} with {% data variables.product.prodname_actions %} enabled](/admin/github-actions/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled)."
 
 {% endnote %}
 
diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md b/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md
index bc73631e43..d91bc49e77 100644
--- a/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md
+++ b/content/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications.md
@@ -1,6 +1,6 @@
 ---
 title: Configuring email for notifications
-intro: 'To make it easy for users to respond quickly to activity on {% data variables.product.product_name %}, you can configure {% data variables.product.product_location %} to send email notifications for issue, pull request, and commit comments.'
+intro: 'To make it easy for users to respond quickly to activity on {% data variables.product.product_name %}, you can configure {% data variables.location.product_location %} to send email notifications for issue, pull request, and commit comments.'
 redirect_from:
   - /enterprise/admin/guides/installation/email-configuration
   - /enterprise/admin/articles/configuring-email
@@ -159,7 +159,7 @@ This log shows that the appliance:
 * The `login` authentication type was performed (`<- "AUTH LOGIN\r\n"`).
 * The SMTP Server rejected the authentication as invalid (`-> "535-5.7.1 Username and Password not accepted.`).
 
-### Check {% data variables.product.product_location %} logs
+### Check {% data variables.location.product_location %} logs
 
 If you need to verify that your inbound email is functioning, there are two log files that you can examine on your instance: To verify that */var/log/mail.log* and */var/log/mail-replies/metroplex.log*.
 
@@ -193,7 +193,7 @@ In order to properly process inbound emails, you must configure a valid A Record
 
 ### Check firewall or AWS Security Group settings
 
-If {% data variables.product.product_location %} is behind a firewall or is being served through an AWS Security Group, make sure port 25 is open to all mail servers that send emails to `reply@reply.[hostname]`.
+If {% data variables.location.product_location %} is behind a firewall or is being served through an AWS Security Group, make sure port 25 is open to all mail servers that send emails to `reply@reply.[hostname]`.
 
 ### Contact support
 {% ifversion ghes %}
diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md b/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md
index 7b4fc93246..13c0a766fb 100644
--- a/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md
+++ b/content/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise.md
@@ -66,11 +66,11 @@ If subdomain isolation is disabled for your enterprise, you should also disable
 
 ## Configuring {% data variables.product.prodname_pages %} response headers for your enterprise
 
-You can add or override response headers for {% data variables.product.prodname_pages %} sites hosted by {% data variables.product.product_location %}.
+You can add or override response headers for {% data variables.product.prodname_pages %} sites hosted by {% data variables.location.product_location %}.
 
 {% warning %}
 
-**Warning:** Ensure that your response headers are properly configured before saving. Improper configurations may negatively impact the security of {% data variables.product.product_location %}.
+**Warning:** Ensure that your response headers are properly configured before saving. Improper configurations may negatively impact the security of {% data variables.location.product_location %}.
 
 {% endwarning %}
 
diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-host-keys-for-your-instance.md b/content/admin/configuration/configuring-your-enterprise/configuring-host-keys-for-your-instance.md
index d384a87e29..0930d0297d 100644
--- a/content/admin/configuration/configuring-your-enterprise/configuring-host-keys-for-your-instance.md
+++ b/content/admin/configuration/configuring-your-enterprise/configuring-host-keys-for-your-instance.md
@@ -1,7 +1,7 @@
 ---
 title: Configuring host keys for your instance
 shortTitle: Configure host keys
-intro: 'You can increase the security of {% data variables.product.product_location %} by configuring the algorithms that your instance uses to generate and advertise host keys for incoming SSH connections.'
+intro: 'You can increase the security of {% data variables.location.product_location %} by configuring the algorithms that your instance uses to generate and advertise host keys for incoming SSH connections.'
 permissions: "Site administrators can configure the host keys for a {% data variables.product.product_name %} instance."
 versions:
   ghes: '>= 3.6'
@@ -21,7 +21,7 @@ Servers that accept SSH connections advertise one or more cryptographic host key
 
 {% data reusables.enterprise.about-ssh-ports %}
 
-By default, {% data variables.product.product_location %} generates and advertises host keys with OpenSSH-style host key rotation. To increase the security of SSH in your environment, you can enable additional algorithms for the generation of host keys.
+By default, {% data variables.location.product_location %} generates and advertises host keys with OpenSSH-style host key rotation. To increase the security of SSH in your environment, you can enable additional algorithms for the generation of host keys.
 
 {% note %}
 
@@ -31,7 +31,7 @@ By default, {% data variables.product.product_location %} generates and advertis
 
 ## Managing an Ed25519 host key
 
-To improve security for clients that connect to {% data variables.product.product_location %}, you can enable the generation and advertisement of an Ed25519 host key. Ed25519 is immune to some attacks that target older signature algorithms, without sacrificing speed. Older SSH clients may not support Ed25519. By default, {% data variables.product.product_name %} instances do not generate or advertise an Ed25519 host key. For more information, see [the Ed25519 website](https://ed25519.cr.yp.to).
+To improve security for clients that connect to {% data variables.location.product_location %}, you can enable the generation and advertisement of an Ed25519 host key. Ed25519 is immune to some attacks that target older signature algorithms, without sacrificing speed. Older SSH clients may not support Ed25519. By default, {% data variables.product.product_name %} instances do not generate or advertise an Ed25519 host key. For more information, see [the Ed25519 website](https://ed25519.cr.yp.to).
 
 {% data reusables.enterprise_installation.ssh-into-instance %}
 1. To enable generation and advertisement of the Ed25519 host key, enter the following command.
diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md b/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md
index 56837a896b..a3a2e28ce7 100644
--- a/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md
+++ b/content/admin/configuration/configuring-your-enterprise/configuring-rate-limits.md
@@ -36,7 +36,7 @@ You can exempt a list of users from API rate limits using the `ghe-config` utili
 
 ## Enabling secondary rate limits
 
-Setting secondary rate limits protects the overall level of service on {% data variables.product.product_location %}.
+Setting secondary rate limits protects the overall level of service on {% data variables.location.product_location %}.
 
 {% data reusables.enterprise_site_admin_settings.access-settings %}
 {% data reusables.enterprise_site_admin_settings.management-console %}
@@ -76,13 +76,13 @@ You can apply a rate limit to {% data variables.product.prodname_actions %} work
 
 ### About rate limits for {% data variables.product.prodname_actions %}
 
-Your {% data variables.product.product_name %} instance assigns each {% data variables.product.prodname_actions %} workflow job to a runner. If your instance cannot immediately assign a job to an available runner, the job will wait in a queue until a runner is available. If {% data variables.product.prodname_actions %} experiences sustained high load, the queue can back up, and the performance of {% data variables.product.product_location %} may degrade.
+Your {% data variables.product.product_name %} instance assigns each {% data variables.product.prodname_actions %} workflow job to a runner. If your instance cannot immediately assign a job to an available runner, the job will wait in a queue until a runner is available. If {% data variables.product.prodname_actions %} experiences sustained high load, the queue can back up, and the performance of {% data variables.location.product_location %} may degrade.
 
 To avoid this performance degradation, you can configure a rate limit for {% data variables.product.prodname_actions %}. This rate limit is expressed in job runs per minute. {% data variables.product.product_name %} calculates and applies the rate limit for the sum total of all job runs on the instance. If runs exceed the rate limit, additional runs will fail instead of entering the queue. The following error will appear in the run's annotations.
 
 > You've exceeded the rate limit for workflow run requests. Please wait before retrying the run.
 
-An appropriate rate limit protects {% data variables.product.product_location %} from abnormal usage of {% data variables.product.prodname_actions %} without interfering with day-to-day operations. The exact threshold depends on your instance's available resources and overall load profile. For more information about the hardware requirements for {% data variables.product.prodname_actions %}, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-requirements)."
+An appropriate rate limit protects {% data variables.location.product_location %} from abnormal usage of {% data variables.product.prodname_actions %} without interfering with day-to-day operations. The exact threshold depends on your instance's available resources and overall load profile. For more information about the hardware requirements for {% data variables.product.prodname_actions %}, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.product_name %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-requirements)."
 
 By default, the rate limit for {% data variables.product.prodname_actions %} is disabled. Because {% data variables.product.product_name %} can handle temporary spikes in usage without performance degradation, this rate limit is intended to protect against sustained high load. We recommend leaving the rate limit disabled unless you are experiencing performance problems. In some cases, {% data variables.contact.github_support %} may recommend that you enable a rate limit for {% data variables.product.prodname_actions %}. 
 
diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance.md b/content/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance.md
index 6506201697..c76cd8b27b 100644
--- a/content/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance.md
+++ b/content/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance.md
@@ -1,7 +1,7 @@
 ---
 title: Configuring SSH connections to your instance
 shortTitle: Configure SSH connections
-intro: 'You can increase the security of {% data variables.product.product_location %} by configuring the SSH algorithms that clients can use to establish a connection.'
+intro: 'You can increase the security of {% data variables.location.product_location %} by configuring the SSH algorithms that clients can use to establish a connection.'
 permissions: "Site administrators can configure SSH connections to a {% data variables.product.product_name %} instance."
 versions:
   ghes: '>= 3.6'
@@ -19,11 +19,11 @@ topics:
 
 {% data reusables.enterprise.about-ssh-ports %}
 
-To accommodate the SSH clients in your environment, you can configure the types of connections that {% data variables.product.product_location %} will accept.
+To accommodate the SSH clients in your environment, you can configure the types of connections that {% data variables.location.product_location %} will accept.
 
 ## Configuring SSH connections with RSA keys
 
-When users perform Git operations on {% data variables.product.product_location %} via SSH over port 22, the client can authenticate with an RSA key. The client may sign the attempt using the SHA-1 hash function. In this context, the SHA-1 hash function is no longer secure. For more information, see [SHA-1](https://en.wikipedia.org/wiki/SHA-1) on Wikipedia.
+When users perform Git operations on {% data variables.location.product_location %} via SSH over port 22, the client can authenticate with an RSA key. The client may sign the attempt using the SHA-1 hash function. In this context, the SHA-1 hash function is no longer secure. For more information, see [SHA-1](https://en.wikipedia.org/wiki/SHA-1) on Wikipedia.
 
 By default{% ifversion ghes < 3.7 %} on {% data variables.product.product_name %} 3.6 and later{% endif %}, SSH connections that satisfy **both** of the following conditions will fail.
 
@@ -39,7 +39,7 @@ For more information, see [{% data variables.product.prodname_blog %}](https://g
 
 {% data reusables.enterprise_installation.ssh-into-instance %}
 1. Audit your instance's logs for connections that use unsecure algorithms or hash functions using the `ghe-find-insecure-git-operations` utility. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-find-insecure-git-operations)."
-1. To configure a cutoff date after which {% data variables.product.product_location %} will deny connections from clients that use an RSA key uploaded after the date if the connection is signed by the SHA-1 hash function, enter the following command. Replace _**RFC-3399-UTC-TIMESTAMP**_ with a valid RFC 3399 UTC timestamp. For example, the default value, August 1, 2022, would be represented as `2022-08-01T00:00:00Z`. For more information, see [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) on the IETF website.
+1. To configure a cutoff date after which {% data variables.location.product_location %} will deny connections from clients that use an RSA key uploaded after the date if the connection is signed by the SHA-1 hash function, enter the following command. Replace _**RFC-3399-UTC-TIMESTAMP**_ with a valid RFC 3399 UTC timestamp. For example, the default value, August 1, 2022, would be represented as `2022-08-01T00:00:00Z`. For more information, see [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) on the IETF website.
 
    
    $ ghe-config app.gitauth.rsa-sha1 RFC-3339-UTC-TIMESTAMP
diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-the-referrer-policy-for-your-enterprise.md b/content/admin/configuration/configuring-your-enterprise/configuring-the-referrer-policy-for-your-enterprise.md
index 8ce175e044..ef1314f097 100644
--- a/content/admin/configuration/configuring-your-enterprise/configuring-the-referrer-policy-for-your-enterprise.md
+++ b/content/admin/configuration/configuring-your-enterprise/configuring-the-referrer-policy-for-your-enterprise.md
@@ -1,7 +1,7 @@
 ---
 title: Configuring the referrer policy for your enterprise
 shortTitle: Configure referrer policy
-intro: 'You can increase the privacy of {% data variables.product.product_location %} by configuring the policy for cross-origin requests.'
+intro: 'You can increase the privacy of {% data variables.location.product_location %} by configuring the policy for cross-origin requests.'
 versions:
   ghes: '*'
 type: how_to
@@ -14,15 +14,15 @@ topics:
 
 ## About the referrer policy for your enterprise
 
-The referrer policy controls the information that {% data variables.product.product_name %} transmits in HTTP headers when someone visits a link from {% data variables.product.product_location %} to an external site.
+The referrer policy controls the information that {% data variables.product.product_name %} transmits in HTTP headers when someone visits a link from {% data variables.location.product_location %} to an external site.
 
-By default, when a user on {% data variables.product.product_location %} visits a link to another site from a file or comment on your instance, the request includes the hostname for your instance in plain text within the `Referer` header. If the link leads to an external website, the owner of the website could read the hostname for your instance in requests or log files.
+By default, when a user on {% data variables.location.product_location %} visits a link to another site from a file or comment on your instance, the request includes the hostname for your instance in plain text within the `Referer` header. If the link leads to an external website, the owner of the website could read the hostname for your instance in requests or log files.
 
 You can control the information that {% data variables.product.product_name %} sends when a user visits a link from your instance.
 
 ## Enabling the `same-origin` referrer policy
 
-You can enable the `same-origin` referrer policy to instruct modern browsers to exclude the hostname for {% data variables.product.product_location %} from requests to external websites. The setting applies to all links from the web interface on your instance. By default, {% data variables.product.product_name %} uses the `origin-when-cross-origin` and `strict-origin-when-cross-origin` referrer policies, which means your instance's hostname will appear in HTTP and HTTPS requests to external websites.
+You can enable the `same-origin` referrer policy to instruct modern browsers to exclude the hostname for {% data variables.location.product_location %} from requests to external websites. The setting applies to all links from the web interface on your instance. By default, {% data variables.product.product_name %} uses the `origin-when-cross-origin` and `strict-origin-when-cross-origin` referrer policies, which means your instance's hostname will appear in HTTP and HTTPS requests to external websites.
 
 {% note %}
 
diff --git a/content/admin/configuration/configuring-your-enterprise/configuring-web-commit-signing.md b/content/admin/configuration/configuring-your-enterprise/configuring-web-commit-signing.md
index 1ac1acb9aa..37a73bf097 100644
--- a/content/admin/configuration/configuring-your-enterprise/configuring-web-commit-signing.md
+++ b/content/admin/configuration/configuring-your-enterprise/configuring-web-commit-signing.md
@@ -11,12 +11,12 @@ topics:
   - Fundamentals
   - Identity
   - Security
-permissions: 'Site administrators can configure web commit signing for {% data variables.product.product_location %}.'
+permissions: 'Site administrators can configure web commit signing for {% data variables.location.product_location %}.'
 ---
 
 ## About web commit signing
 
-If you enable web commit signing, {% data variables.product.product_name %} will automatically use GPG to sign commits users make on the web interface of {% data variables.product.product_location %}. Commits signed by {% data variables.product.product_name %} will have a verified status. For more information, see "[About commit signature verification](/authentication/managing-commit-signature-verification/about-commit-signature-verification)."
+If you enable web commit signing, {% data variables.product.product_name %} will automatically use GPG to sign commits users make on the web interface of {% data variables.location.product_location %}. Commits signed by {% data variables.product.product_name %} will have a verified status. For more information, see "[About commit signature verification](/authentication/managing-commit-signature-verification/about-commit-signature-verification)."
 
 You can enable web commit signing, rotate the private key used for web commit signing, and disable web commit signing.
 
@@ -38,7 +38,7 @@ You can enable web commit signing, rotate the private key used for web commit si
    ```bash{:copy}
    ghe-config-apply
    ```
-1. Create a new user on {% data variables.product.product_location %} via built-in authentication or external authentication. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)."
+1. Create a new user on {% data variables.location.product_location %} via built-in authentication or external authentication. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)."
    - The user's username must be the same username you used when creating the PGP key in step 1 above, for example, `web-flow`. 
    - The user's email address must be the same address you used when creating the PGP key. 
 {% data reusables.enterprise_site_admin_settings.add-key-to-web-flow-user %}
@@ -47,7 +47,7 @@ You can enable web commit signing, rotate the private key used for web commit si
 
    {% note %}
 
-   **Note:** The "No-reply email address" field will only be displayed if you've enabled email for {% data variables.product.product_location %}. For more information, see "[Configuring email for notifications](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications#configuring-smtp-for-your-enterprise)."
+   **Note:** The "No-reply email address" field will only be displayed if you've enabled email for {% data variables.location.product_location %}. For more information, see "[Configuring email for notifications](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications#configuring-smtp-for-your-enterprise)."
 
    {% endnote %}
 {% data reusables.enterprise_management_console.save-settings %}
@@ -64,7 +64,7 @@ You can enable web commit signing, rotate the private key used for web commit si
 
 ## Disabling web commit signing
 
-You can disable web commit signing for {% data variables.product.product_location %}.
+You can disable web commit signing for {% data variables.location.product_location %}.
 
 1. In the administrative shell, run the following command.
 
diff --git a/content/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode.md b/content/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode.md
index 2d042749e7..fd5a8111b5 100644
--- a/content/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode.md
+++ b/content/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode.md
@@ -1,6 +1,6 @@
 ---
 title: Enabling and scheduling maintenance mode
-intro: 'Some standard maintenance procedures, such as upgrading {% data variables.product.product_location %} or restoring backups, require the instance to be taken offline for normal use.'
+intro: 'Some standard maintenance procedures, such as upgrading {% data variables.location.product_location %} or restoring backups, require the instance to be taken offline for normal use.'
 redirect_from:
   - /enterprise/admin/maintenance-mode
   - /enterprise/admin/categories/maintenance-mode
@@ -23,7 +23,7 @@ shortTitle: Configure maintenance mode
 ---
 ## About maintenance mode
 
-Some types of operations require that you take {% data variables.product.product_location %} offline and put it into maintenance mode:
+Some types of operations require that you take {% data variables.location.product_location %} offline and put it into maintenance mode:
 - Upgrading to a new version of {% data variables.product.prodname_ghe_server %}
 - Increasing CPU, memory, or storage resources allocated to the virtual machine
 - Migrating data from one virtual machine to another
@@ -42,7 +42,7 @@ When the instance is in maintenance mode, all normal HTTP and Git access is refu
 
 {% ifversion ip-exception-list %}
 
-You can perform initial validation of your maintenance operation by configuring an IP exception list to allow access to {% data variables.product.product_location %} from only the IP addresses and ranges provided. Attempts to access {% data variables.product.product_location %} from IP addresses not specified on the IP exception list will receive a response consistent with those sent when the instance is in maintenance mode. 
+You can perform initial validation of your maintenance operation by configuring an IP exception list to allow access to {% data variables.location.product_location %} from only the IP addresses and ranges provided. Attempts to access {% data variables.location.product_location %} from IP addresses not specified on the IP exception list will receive a response consistent with those sent when the instance is in maintenance mode. 
 
 {% endif %}
 
@@ -65,9 +65,9 @@ You can perform initial validation of your maintenance operation by configuring
 
 ## Validating changes in maintenance mode using the IP exception list
 
-The IP exception list provides controlled and restricted access to {% data variables.product.product_location %}, which is ideal for initial validation of server health following a maintenance operation. Once enabled, {% data variables.product.product_location %} will be taken out of maintenance mode and available only to the configured IP addresses. The maintenance mode checkbox will be updated to reflect the change in state.
+The IP exception list provides controlled and restricted access to {% data variables.location.product_location %}, which is ideal for initial validation of server health following a maintenance operation. Once enabled, {% data variables.location.product_location %} will be taken out of maintenance mode and available only to the configured IP addresses. The maintenance mode checkbox will be updated to reflect the change in state.
 
-If you re-enable maintenance mode, the IP exception list will be disabled and {% data variables.product.product_location %} will return to maintenance mode. If you just disable the IP exception list, {% data variables.product.product_location %} will return to normal operation.
+If you re-enable maintenance mode, the IP exception list will be disabled and {% data variables.location.product_location %} will return to maintenance mode. If you just disable the IP exception list, {% data variables.location.product_location %} will return to normal operation.
 
 You can also use a command-line utility to configure the IP exception list. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-maintenance)" and "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
 
@@ -77,7 +77,7 @@ You can also use a command-line utility to configure the IP exception list. For
   ![Maintenance tab](/assets/images/enterprise/management-console/maintenance-tab.png)
 1. Select **Enable IP exception list**.
  ![Checkbox for enabling ip exception list](/assets/images/enterprise/maintenance/enable-ip-exception-list.png)
-1. In the text box, type a valid list of space-separated IP addresses or CIDR blocks that should be allowed to access {% data variables.product.product_location %}.
+1. In the text box, type a valid list of space-separated IP addresses or CIDR blocks that should be allowed to access {% data variables.location.product_location %}.
  ![completed field for IP addresses](/assets/images/enterprise/maintenance/ip-exception-list-ip-addresses.png)
 1. Click **Save**.
 ![after IP excetpion list has saved](/assets/images/enterprise/maintenance/ip-exception-save.png)
diff --git a/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md b/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md
index d3a0fe6c9f..e0f3bb8c8f 100644
--- a/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md
+++ b/content/admin/configuration/configuring-your-enterprise/enabling-private-mode.md
@@ -21,11 +21,11 @@ topics:
   - Privacy
   - Security
 ---
-You must enable private mode if {% data variables.product.product_location %} is publicly accessible over the Internet. In private mode, users cannot anonymously clone repositories over `git://`. If built-in authentication is also enabled, an administrator must invite new users to create an account on the instance. For more information, see "[Configuring built-in authentication](/admin/identity-and-access-management/using-built-in-authentication/configuring-built-in-authentication)."
+You must enable private mode if {% data variables.location.product_location %} is publicly accessible over the Internet. In private mode, users cannot anonymously clone repositories over `git://`. If built-in authentication is also enabled, an administrator must invite new users to create an account on the instance. For more information, see "[Configuring built-in authentication](/admin/identity-and-access-management/using-built-in-authentication/configuring-built-in-authentication)."
 
 {% data reusables.enterprise_installation.image-urls-viewable-warning %}
 
-With private mode enabled, you can allow unauthenticated Git operations (and anyone with network access to {% data variables.product.product_location %}) to read a public repository's code on your instance with anonymous Git read access enabled. For more information, see "[Allowing admins to enable anonymous Git read access to public repositories](/enterprise/admin/guides/user-management/allowing-admins-to-enable-anonymous-git-read-access-to-public-repositories)."
+With private mode enabled, you can allow unauthenticated Git operations (and anyone with network access to {% data variables.location.product_location %}) to read a public repository's code on your instance with anonymous Git read access enabled. For more information, see "[Allowing admins to enable anonymous Git read access to public repositories](/enterprise/admin/guides/user-management/allowing-admins-to-enable-anonymous-git-read-access-to-public-repositories)."
 
 {% data reusables.enterprise_site_admin_settings.access-settings %}
 {% data reusables.enterprise_site_admin_settings.management-console %}
diff --git a/content/admin/configuration/configuring-your-enterprise/initializing-github-ae.md b/content/admin/configuration/configuring-your-enterprise/initializing-github-ae.md
index a3c095be52..5b582d0630 100644
--- a/content/admin/configuration/configuring-your-enterprise/initializing-github-ae.md
+++ b/content/admin/configuration/configuring-your-enterprise/initializing-github-ae.md
@@ -33,7 +33,7 @@ During initialization, the enterprise owner will name your enterprise, configure
 To begin initialization, you will receive an invitation email from {% data variables.product.company_short %}. Before you configure {% data variables.product.prodname_ghe_managed %}, review the following prerequisites.
 
 
-1. To initialize {% data variables.product.product_location %}, you must have a SAML identity provider (IdP). {% data reusables.saml.ae-uses-saml-sso %} To connect your IdP to your enterprise during initialization, you should have your IdP's Entity ID (SSO) URL, Issuer ID URL, and public signing certificate (Base64-encoded). For more information, see "[About identity and access management for your enterprise](/admin/authentication/about-identity-and-access-management-for-your-enterprise)."
+1. To initialize {% data variables.location.product_location %}, you must have a SAML identity provider (IdP). {% data reusables.saml.ae-uses-saml-sso %} To connect your IdP to your enterprise during initialization, you should have your IdP's Entity ID (SSO) URL, Issuer ID URL, and public signing certificate (Base64-encoded). For more information, see "[About identity and access management for your enterprise](/admin/authentication/about-identity-and-access-management-for-your-enterprise)."
 
     {% note %}
 
diff --git a/content/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise.md b/content/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise.md
index 9e19416580..d288949214 100644
--- a/content/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise.md
+++ b/content/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise.md
@@ -1,6 +1,6 @@
 ---
 title: Managing GitHub Mobile for your enterprise
-intro: 'You can decide whether people can use {% data variables.product.prodname_mobile %} to connect to {% data variables.product.product_location %}.'
+intro: 'You can decide whether people can use {% data variables.product.prodname_mobile %} to connect to {% data variables.location.product_location %}.'
 permissions: 'Enterprise owners can manage {% data variables.product.prodname_mobile %} for a {% data variables.product.product_name %} instance.'
 versions:
   ghes: '*'
@@ -16,9 +16,9 @@ shortTitle: Manage GitHub Mobile
 
 ## About {% data variables.product.prodname_mobile %}
 
-{% data variables.product.prodname_mobile %} allows people to triage, collaborate, and manage work on {% data variables.product.product_location %} from a mobile device after successful authentication. {% data reusables.mobile.about-mobile %} For more information, see "[{% data variables.product.prodname_mobile %}](/get-started/using-github/github-mobile)."
+{% data variables.product.prodname_mobile %} allows people to triage, collaborate, and manage work on {% data variables.location.product_location %} from a mobile device after successful authentication. {% data reusables.mobile.about-mobile %} For more information, see "[{% data variables.product.prodname_mobile %}](/get-started/using-github/github-mobile)."
 
-You can allow or disallow people from using {% data variables.product.prodname_mobile %} to authenticate to {% data variables.product.product_location %} and access your instance's data. By default, {% data variables.product.prodname_mobile %} is{% ifversion ghes > 3.3 %} enabled for people who use {% data variables.product.product_location %}.{% else %} not enabled for people who use {% data variables.product.product_location %}. To allow connection to your instance with {% data variables.product.prodname_mobile %}, you must enable the feature for your instance.{% endif %}
+You can allow or disallow people from using {% data variables.product.prodname_mobile %} to authenticate to {% data variables.location.product_location %} and access your instance's data. By default, {% data variables.product.prodname_mobile %} is{% ifversion ghes > 3.3 %} enabled for people who use {% data variables.location.product_location %}.{% else %} not enabled for people who use {% data variables.location.product_location %}. To allow connection to your instance with {% data variables.product.prodname_mobile %}, you must enable the feature for your instance.{% endif %}
 
 {% ifversion ghes < 3.6 %}
 {% note %}
diff --git a/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md b/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md
index ea742e0fc5..7d3c7e3665 100644
--- a/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md
+++ b/content/admin/configuration/configuring-your-enterprise/site-admin-dashboard.md
@@ -51,7 +51,7 @@ For more information on audit logging in general, see "[About the audit log for
 
 ## Reports
 
-If you need to get information on the users, organizations, and repositories in {% data variables.product.product_location %}, you would ordinarily fetch JSON data through the [GitHub API](/rest). Unfortunately, the API may not provide all of the data that you want and it requires a bit of technical expertise to use. The site admin dashboard offers a **Reports** section as an alternative, making it easy for you to download CSV reports with most of the information that you are likely to need for users, organizations, and repositories.
+If you need to get information on the users, organizations, and repositories in {% data variables.location.product_location %}, you would ordinarily fetch JSON data through the [GitHub API](/rest). Unfortunately, the API may not provide all of the data that you want and it requires a bit of technical expertise to use. The site admin dashboard offers a **Reports** section as an alternative, making it easy for you to download CSV reports with most of the information that you are likely to need for users, organizations, and repositories.
 
 Specifically, you can download CSV reports that list
 
@@ -62,7 +62,7 @@ Specifically, you can download CSV reports that list
 - all organizations
 - all repositories
 
-You can also access these reports programmatically via standard HTTP authentication with a site admin account. You must use a personal access token with the `site_admin` scope. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)."
+You can also access these reports programmatically via standard HTTP authentication with a site admin account. You must use a {% data variables.product.pat_v1 %} with the `site_admin` scope. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)."
 
 For example, here is how you would download the "all users" report using cURL:
 
@@ -164,7 +164,7 @@ You can create a new index, or you can click on an existing index in the list to
 - Start a new index repair job.
 - Enable or disable index repair jobs.
 
-A progress bar shows the current status of a repair job across background workers. The bar is the percentage difference of the repair offset with the highest record ID in the database. You can ignore the value shown in the progress bar after a repair job has completed. The progress bar shows the difference between the repair offset and the highest record ID in the database, and will decrease as more repositories are added to {% data variables.product.product_location %} even though those repositories are actually indexed.
+A progress bar shows the current status of a repair job across background workers. The bar is the percentage difference of the repair offset with the highest record ID in the database. You can ignore the value shown in the progress bar after a repair job has completed. The progress bar shows the difference between the repair offset and the highest record ID in the database, and will decrease as more repositories are added to {% data variables.location.product_location %} even though those repositories are actually indexed.
 
 To minimize the effects on I/O performance and reduce the chances of operations timing out, run the repair job during off-peak hours. As the job reconciles the search index with database and Git repository data, one CPU will be used. Monitor your system's load averages and CPU usage with a utility like `top`. If you don't notice any significant increase in resource consumption, it should also be safe to run an index repair job during peak hours.
 
@@ -177,7 +177,7 @@ This allows you to enable or disable both search and index operations on source
 {% endif %}
 ## Reserved logins
 
-Certain words are reserved for internal use in {% data variables.product.product_location %}, which means that these words cannot be used as usernames.
+Certain words are reserved for internal use in {% data variables.location.product_location %}, which means that these words cannot be used as usernames.
 
 For example, the following words are reserved, among others:
 
@@ -216,7 +216,7 @@ Refer to this section of the site admin dashboard to manage organizations, peopl
 
 ## Repositories
 
-This is a list of the repositories on {% data variables.product.product_location %}. You can click on a repository name and access functions for administering the repository.
+This is a list of the repositories on {% data variables.location.product_location %}. You can click on a repository name and access functions for administering the repository.
 
 - [Blocking force pushes to a repository](/enterprise/admin/guides/developer-workflow/blocking-force-pushes-to-a-repository/)
 - [Configuring {% data variables.large_files.product_name_long %}](/enterprise/admin/guides/installation/configuring-git-large-file-storage/#configuring-git-large-file-storage-for-an-individual-repository)
@@ -224,21 +224,21 @@ This is a list of the repositories on {% data variables.product.product_location
 
 ## All users
 
-Here you can see all of the users on {% data variables.product.product_location %}, and [initiate an SSH key audit](/enterprise/admin/guides/user-management/auditing-ssh-keys).
+Here you can see all of the users on {% data variables.location.product_location %}, and [initiate an SSH key audit](/enterprise/admin/guides/user-management/auditing-ssh-keys).
 
 ## Site admins
 
-Here you can see all of the administrators on {% data variables.product.product_location %}, and [initiate an SSH key audit](/enterprise/admin/guides/user-management/auditing-ssh-keys).
+Here you can see all of the administrators on {% data variables.location.product_location %}, and [initiate an SSH key audit](/enterprise/admin/guides/user-management/auditing-ssh-keys).
 
 ## Dormant users
 {% ifversion ghes %}
-Here you can see and [suspend](/enterprise/admin/guides/user-management/suspending-and-unsuspending-users) all of the inactive users on {% data variables.product.product_location %}. A user account is considered to be inactive ("dormant") when it:
+Here you can see and [suspend](/enterprise/admin/guides/user-management/suspending-and-unsuspending-users) all of the inactive users on {% data variables.location.product_location %}. A user account is considered to be inactive ("dormant") when it:
 {% endif %}
 {% ifversion ghae %}
-Here you can see and suspend all of the inactive users on {% data variables.product.product_location %}. A user account is considered to be inactive ("dormant") when it:
+Here you can see and suspend all of the inactive users on {% data variables.location.product_location %}. A user account is considered to be inactive ("dormant") when it:
 {% endif %}
 
-- Has existed for longer than the dormancy threshold that's set for {% data variables.product.product_location %}.
+- Has existed for longer than the dormancy threshold that's set for {% data variables.location.product_location %}.
 - Has not generated any activity within that time period.
 - Is not a site administrator.
 
@@ -246,4 +246,4 @@ Here you can see and suspend all of the inactive users on {% data variables.prod
 
 ## Suspended users
 
-Here you can see all of the users who have been suspended on {% data variables.product.product_location %}, and [initiate an SSH key audit](/enterprise/admin/guides/user-management/auditing-ssh-keys).
+Here you can see all of the users who have been suspended on {% data variables.location.product_location %}, and [initiate an SSH key audit](/enterprise/admin/guides/user-management/auditing-ssh-keys).
diff --git a/content/admin/configuration/configuring-your-enterprise/troubleshooting-tls-errors.md b/content/admin/configuration/configuring-your-enterprise/troubleshooting-tls-errors.md
index ed88b5046f..eca1544cea 100644
--- a/content/admin/configuration/configuring-your-enterprise/troubleshooting-tls-errors.md
+++ b/content/admin/configuration/configuring-your-enterprise/troubleshooting-tls-errors.md
@@ -49,7 +49,7 @@ Otherwise, you can use the SSL Converter tool to convert your certificate into t
 
 ## Unresponsive installation after uploading a key
 
-If {% data variables.product.product_location %} is unresponsive after uploading an TLS key, please [contact {% data variables.product.prodname_enterprise %} Support](https://enterprise.github.com/support) with specific details, including a copy of your TLS certificate. Ensure that your private key **is not** included. 
+If {% data variables.location.product_location %} is unresponsive after uploading an TLS key, please [contact {% data variables.product.prodname_enterprise %} Support](https://enterprise.github.com/support) with specific details, including a copy of your TLS certificate. Ensure that your private key **is not** included. 
 
 ## Certificate validity errors
 
@@ -83,4 +83,4 @@ If your {% data variables.product.prodname_ghe_server %} appliance interacts wit
 
 ## Updating a TLS certificate
 
-You can generate a new self-signed certificate or update an existing TLS certificate for {% data variables.product.product_location %} with the `ghe-ssl-certificate-setup` command line utility. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-ssl-ca-certificate-setup)."
+You can generate a new self-signed certificate or update an existing TLS certificate for {% data variables.location.product_location %} with the `ghe-ssl-certificate-setup` command line utility. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-ssl-ca-certificate-setup)."
diff --git a/content/admin/enterprise-management/configuring-clustering/cluster-network-configuration.md b/content/admin/enterprise-management/configuring-clustering/cluster-network-configuration.md
index 9ae58ffd19..3bca1364de 100644
--- a/content/admin/enterprise-management/configuring-clustering/cluster-network-configuration.md
+++ b/content/admin/enterprise-management/configuring-clustering/cluster-network-configuration.md
@@ -19,7 +19,7 @@ shortTitle: Configure a cluster network
 
 The simplest network design for clustering is to place the nodes on a single LAN. If a cluster must span subnetworks, we do not recommend configuring any firewall rules between the networks. The latency between nodes should be less than 1 millisecond.
 
-{% ifversion ghes %}For high availability, the latency between the network with the active nodes and the network with the passive nodes must be less than 70 milliseconds. We don't recommend configuring a firewall between the two networks.{% endif %}
+{% data reusables.enterprise_clustering.network-latency %}
 
 ### Application ports for end users
 
diff --git a/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md b/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md
index 1291e253e1..a4a6b01075 100644
--- a/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md
+++ b/content/admin/enterprise-management/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md
@@ -41,7 +41,7 @@ On each new virtual machine, install the same version of {% data variables.produ
 
 You must assign a static IP address to each new node that you provision, and you must configure a load balancer to accept connections and direct them to the nodes in your cluster's front-end tier.
 
-We don't recommend configuring a firewall between the network with your active cluster and the network with your passive cluster. The latency between the network with the active nodes and the network with the passive nodes must be less than 70 milliseconds. For more information about network connectivity between nodes in the passive cluster, see "[Cluster network configuration](/enterprise/admin/enterprise-management/cluster-network-configuration)."
+{% data reusables.enterprise_clustering.network-latency %} For more information about network connectivity between nodes in the passive cluster, see "[Cluster network configuration](/enterprise/admin/enterprise-management/cluster-network-configuration)."
 
 ## Creating a high availability replica for a cluster
 
diff --git a/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md b/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md
index 0f2952586c..b3f1c3ec05 100644
--- a/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md
+++ b/content/admin/enterprise-management/configuring-high-availability/creating-a-high-availability-replica.md
@@ -39,6 +39,8 @@ shortTitle: Create HA replica
 
 This example configuration uses a primary and two replicas, which are located in three different geographic regions. While the three nodes can be in different networks, all nodes are required to be reachable from all the other nodes. At the minimum, the required administrative ports should be open to all the other nodes. For more information about the port requirements, see "[Network Ports](/enterprise/admin/guides/installation/network-ports/#administrative-ports)."
 
+{% data reusables.enterprise_clustering.network-latency %}{% ifversion ghes > 3.2 %} If latency is more than 70 milliseconds, we recommend cache replica nodes instead. For more information, see "[Configuring a repository cache](/admin/enterprise-management/caching-repositories/configuring-a-repository-cache)."{% endif %}
+
 1. Create the first replica the same way you would for a standard two node configuration by running `ghe-repl-setup` on the first replica.
   ```shell
   (replica1)$ ghe-repl-setup PRIMARY_IP
diff --git a/content/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard.md b/content/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard.md
index 2172cbd34b..c2f149719e 100644
--- a/content/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard.md
+++ b/content/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard.md
@@ -27,7 +27,7 @@ shortTitle: Access the monitor dashboard
 
 {% note %}
 
-**Note**: Because regularly polling {% data variables.product.product_location %} with continuous integration (CI) or build servers can effectively cause a denial of service attack that results in problems, we recommend using webhooks to push updates. For more information, see "[About webhooks](/enterprise/user/articles/about-webhooks/)".
+**Note**: Because regularly polling {% data variables.location.product_location %} with continuous integration (CI) or build servers can effectively cause a denial of service attack that results in problems, we recommend using webhooks to push updates. For more information, see "[About webhooks](/enterprise/user/articles/about-webhooks/)".
 
 {% endnote %}
 
diff --git a/content/admin/enterprise-management/monitoring-your-appliance/configuring-collectd.md b/content/admin/enterprise-management/monitoring-your-appliance/configuring-collectd.md
index 6c8a9ac870..0c216af47e 100644
--- a/content/admin/enterprise-management/monitoring-your-appliance/configuring-collectd.md
+++ b/content/admin/enterprise-management/monitoring-your-appliance/configuring-collectd.md
@@ -18,7 +18,7 @@ topics:
 ---
 ## Set up an external `collectd` server
 
-If you haven't already set up an external `collectd` server, you will need to do so before enabling `collectd` forwarding on {% data variables.product.product_location %}. Your `collectd` server must be running `collectd` version 5.x or higher.
+If you haven't already set up an external `collectd` server, you will need to do so before enabling `collectd` forwarding on {% data variables.location.product_location %}. Your `collectd` server must be running `collectd` version 5.x or higher.
 
 1. Log into your `collectd` server.
 2. Create or edit the `collectd` configuration file to load the network plugin and populate the server and port directives with the proper values. On most distributions, this is located at `/etc/collectd/collectd.conf`
@@ -60,6 +60,6 @@ ssh -p 122 admin@[hostname] -- 'ghe-export-graphs' && scp -P 122 admin@[hostname
 
 ### Central collectd server receives no data
 
-{% data variables.product.prodname_enterprise %} ships with `collectd` version 5.x. `collectd` 5.x is not backwards compatible with the 4.x release series. Your central `collectd` server needs to be at least version 5.x to accept data sent from {% data variables.product.product_location %}.
+{% data variables.product.prodname_enterprise %} ships with `collectd` version 5.x. `collectd` 5.x is not backwards compatible with the 4.x release series. Your central `collectd` server needs to be at least version 5.x to accept data sent from {% data variables.location.product_location %}.
 
 For help with further questions or issues, contact {% data variables.contact.contact_ent_support %}.
diff --git a/content/admin/enterprise-management/monitoring-your-appliance/generating-a-health-check-for-your-enterprise.md b/content/admin/enterprise-management/monitoring-your-appliance/generating-a-health-check-for-your-enterprise.md
index 85706221fa..436c8127ba 100644
--- a/content/admin/enterprise-management/monitoring-your-appliance/generating-a-health-check-for-your-enterprise.md
+++ b/content/admin/enterprise-management/monitoring-your-appliance/generating-a-health-check-for-your-enterprise.md
@@ -1,6 +1,6 @@
 ---
 title: Generating a Health Check for your enterprise
-intro: 'You can gain insight into the general health and Git and API requests of {% data variables.product.product_location %} by generating a Health Check.'
+intro: 'You can gain insight into the general health and Git and API requests of {% data variables.location.product_location %} by generating a Health Check.'
 versions:
   ghes: '*'
 type: how_to
@@ -21,10 +21,10 @@ product: '{% data reusables.gated-features.generated-health-checks %}'
 
 ## About generated Health Checks
 
-You can create a support bundle for {% data variables.product.product_location %} that contains a lot of data, such as diagnostics and log files. To help analyze and interpret this data, you can generate a Health Check. For more information about support bundles, see "[Providing data to {% data variables.contact.github_support %}](/support/contacting-github-support/providing-data-to-github-support#creating-and-sharing-support-bundles)."
+You can create a support bundle for {% data variables.location.product_location %} that contains a lot of data, such as diagnostics and log files. To help analyze and interpret this data, you can generate a Health Check. For more information about support bundles, see "[Providing data to {% data variables.contact.github_support %}](/support/contacting-github-support/providing-data-to-github-support#creating-and-sharing-support-bundles)."
 
-A Health Check provides the following information about {% data variables.product.product_location %}.
-- Insights into the general health of {% data variables.product.product_location %}, such as upgrade status, storage, and license seat consumption
+A Health Check provides the following information about {% data variables.location.product_location %}.
+- Insights into the general health of {% data variables.location.product_location %}, such as upgrade status, storage, and license seat consumption
 - A security section, which focuses on subdomain isolation and user authentication
 - Analysis of Git requests, with details about the busiest repositories and Git users 
 - Analysis of API requests, including the busiest times, most frequently requested endpoints, and most active callers
diff --git a/content/admin/enterprise-management/monitoring-your-appliance/index.md b/content/admin/enterprise-management/monitoring-your-appliance/index.md
index 332baa5a57..fb441b33e9 100644
--- a/content/admin/enterprise-management/monitoring-your-appliance/index.md
+++ b/content/admin/enterprise-management/monitoring-your-appliance/index.md
@@ -1,6 +1,6 @@
 ---
 title: Monitoring your appliance
-intro: 'As use of {% data variables.product.product_location %} increases over time, the utilization of system resources, like CPU, memory, and storage will also increase. You can configure monitoring and alerting so that you''re aware of potential issues before they become critical enough to negatively impact application performance or availability.'
+intro: 'As use of {% data variables.location.product_location %} increases over time, the utilization of system resources, like CPU, memory, and storage will also increase. You can configure monitoring and alerting so that you''re aware of potential issues before they become critical enough to negatively impact application performance or availability.'
 redirect_from:
   - /enterprise/admin/guides/installation/system-resource-monitoring-and-alerting
   - /enterprise/admin/guides/installation/monitoring-your-github-enterprise-appliance
diff --git a/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md b/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md
index 6d1ee8d6f6..9c3f478189 100644
--- a/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md
+++ b/content/admin/enterprise-management/monitoring-your-appliance/monitoring-using-snmp.md
@@ -15,7 +15,7 @@ topics:
   - Monitoring
   - Performance
 ---
-SNMP is a common standard for monitoring devices over a network. We strongly recommend enabling SNMP so you can monitor the health of {% data variables.product.product_location %} and know when to add more memory, storage, or processor power to the host machine.
+SNMP is a common standard for monitoring devices over a network. We strongly recommend enabling SNMP so you can monitor the health of {% data variables.location.product_location %} and know when to add more memory, storage, or processor power to the host machine.
 
 {% data variables.product.prodname_enterprise %} has a standard SNMP installation, so you can take advantage of the [many plugins](https://www.monitoring-plugins.org/doc/man/check_snmp.html) available for Nagios or for any other monitoring system.
 
@@ -35,7 +35,7 @@ SNMP is a common standard for monitoring devices over a network. We strongly rec
   $ snmpget -v 2c -c COMMUNITY-STRING -O e HOSTNAME hrSystemDate.0
   ```
 
-This should return the system time on {% data variables.product.product_location %} host.
+This should return the system time on {% data variables.location.product_location %} host.
 
 ## User-based security
 
diff --git a/content/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds.md b/content/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds.md
index fff12c9155..48672a0695 100644
--- a/content/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds.md
+++ b/content/admin/enterprise-management/monitoring-your-appliance/recommended-alert-thresholds.md
@@ -42,7 +42,7 @@ We also recommend that you monitor virtualization "steal" time to ensure that ot
 
 ## Monitoring memory usage
 
-The amount of physical memory allocated to {% data variables.product.product_location %} can have a large impact on overall performance and application responsiveness. The system is designed to make heavy use of the kernel disk cache to speed up Git operations. We recommend that the normal RSS working set fit within 50% of total available RAM at peak usage.
+The amount of physical memory allocated to {% data variables.location.product_location %} can have a large impact on overall performance and application responsiveness. The system is designed to make heavy use of the kernel disk cache to speed up Git operations. We recommend that the normal RSS working set fit within 50% of total available RAM at peak usage.
 
 | Severity | Threshold |
 | -------- | --------- |
diff --git a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/enabling-automatic-update-checks.md b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/enabling-automatic-update-checks.md
index c482927560..645c354107 100644
--- a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/enabling-automatic-update-checks.md
+++ b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/enabling-automatic-update-checks.md
@@ -1,6 +1,6 @@
 ---
 title: Enabling automatic update checks
-intro: 'You can enable automatic update checks so that {% data variables.product.product_location %} checks for and downloads the latest {% data variables.product.prodname_ghe_server %} release.'
+intro: 'You can enable automatic update checks so that {% data variables.location.product_location %} checks for and downloads the latest {% data variables.product.prodname_ghe_server %} release.'
 redirect_from:
   - /enterprise/admin/installation/enabling-automatic-update-checks
   - /enterprise/admin/enterprise-management/enabling-automatic-update-checks
@@ -13,13 +13,13 @@ topics:
   - Upgrades
 shortTitle: Enable automatic update checks
 ---
-When an upgrade package is automatically downloaded for {% data variables.product.product_location %}, you'll receive a message letting you know you can upgrade {% data variables.product.prodname_ghe_server %}. Packages download to the `/var/lib/ghe-updates` directory on {% data variables.product.product_location %}. For more information, see "[Upgrading {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server)."
+When an upgrade package is automatically downloaded for {% data variables.location.product_location %}, you'll receive a message letting you know you can upgrade {% data variables.product.prodname_ghe_server %}. Packages download to the `/var/lib/ghe-updates` directory on {% data variables.location.product_location %}. For more information, see "[Upgrading {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server)."
 
 If a hotpatch is available for an upgrade, the `.hpkg` will download automatically. In the management console you can choose to install the hotpatch immediately or schedule installation for a later time. For more information, see "[Upgrading with a hotpatch](/enterprise/admin/guides/installation/upgrading-github-enterprise-server#upgrading-with-a-hotpatch)."
 
 {% tip %}
 
-**Tip:** To enable automatic update checks, {% data variables.product.product_location %} must be able to connect to `https://github-enterprise.s3.amazonaws.com`.
+**Tip:** To enable automatic update checks, {% data variables.location.product_location %} must be able to connect to `https://github-enterprise.s3.amazonaws.com`.
 
 {% endtip %}
 
diff --git a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md
index d117fdaf09..884c2a3d88 100644
--- a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md
+++ b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources.md
@@ -32,7 +32,7 @@ shortTitle: Increase CPU or memory
 
 ### Resizing considerations
 
-Before increasing CPU or memory resources for {% data variables.product.product_location %}, review the following recommendations.
+Before increasing CPU or memory resources for {% data variables.location.product_location %}, review the following recommendations.
 
 - **Scale your memory with CPUs**. {% data reusables.enterprise_installation.increasing-cpus-req %}
 - **Assign an Elastic IP address to the instance**. If you haven't assigned an Elastic IP to your instance, you'll have to adjust the DNS A records for your {% data variables.product.prodname_ghe_server %} host after the restart to account for the change in public IP address. Once your instance restarts, the instance keeps the Elastic IP if you launched the instance in a virtual private cloud (VPC). If you create the instance in an EC2-Classic network, you must manually reassign the Elastic IP to the instance.
@@ -70,7 +70,7 @@ It's not possible to add CPU or memory resources to an existing AWS/EC2 instance
 
 ### Resizing considerations
 
-Before increasing CPU or memory resources for {% data variables.product.product_location %}, review the following recommendations.
+Before increasing CPU or memory resources for {% data variables.location.product_location %}, review the following recommendations.
 
 - **Scale your memory with CPUs**. {% data reusables.enterprise_installation.increasing-cpus-req %}
 - **Assign a static IP address to the instance**. If you haven't assigned a static IP to your instance, you might have to adjust the DNS A records for your {% data variables.product.prodname_ghe_server %} host after the restart to account for the change in IP address.
@@ -103,7 +103,7 @@ It's not possible to add CPU or memory resources to an existing OpenStack KVM in
 {% data reusables.enterprise_installation.increasing-cpus-req %}
 
 1. Use the vSphere Client to connect to the VMware ESXi host.
-2. Shut down {% data variables.product.product_location %}.
+2. Shut down {% data variables.location.product_location %}.
 3. Select the virtual machine and click **Edit Settings**.
 4. Under "Hardware", adjust the CPU and/or memory resources allocated to the virtual machine as needed:
 ![VMware setup resources](/assets/images/enterprise/vmware/vsphere-hardware-tab.png)
diff --git a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity.md b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity.md
index f2cbc06ce5..e55e7cb44d 100644
--- a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity.md
+++ b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity.md
@@ -17,7 +17,7 @@ shortTitle: Increase storage capacity
 ---
 {% data reusables.enterprise_installation.warning-on-upgrading-physical-resources %}
 
-As more users join {% data variables.product.product_location %}, you may need to resize your storage volume. Refer to the documentation for your virtualization platform for information on resizing storage.
+As more users join {% data variables.location.product_location %}, you may need to resize your storage volume. Refer to the documentation for your virtualization platform for information on resizing storage.
 
 ## Requirements and recommendations
 
diff --git a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md
index 07df14b46d..24cfb85f46 100644
--- a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md
+++ b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrade-requirements.md
@@ -27,7 +27,7 @@ topics:
 ## Recommendations
 
 - Include as few upgrades as possible in your upgrade process. For example, instead of upgrading from {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.supported[2] }} to {{ enterpriseServerReleases.supported[1] }} to {{ enterpriseServerReleases.latest }}, you could upgrade from {% data variables.product.prodname_enterprise %} {{ enterpriseServerReleases.supported[2] }} to {{ enterpriseServerReleases.latest }}. Use the [{% data variables.enterprise.upgrade_assistant %}](https://support.github.com/enterprise/server-upgrade) to find the upgrade path from your current release version.
-- If you’re several versions behind, upgrade {% data variables.product.product_location %} as far forward as possible with each step of your upgrade process. Using the latest version possible on each upgrade allows you to take advantage of performance improvements and bug fixes. For example, you could upgrade from {% data variables.product.prodname_enterprise %} 2.7 to 2.8 to 2.10, but upgrading from {% data variables.product.prodname_enterprise %} 2.7 to 2.9 to 2.10 uses a later version in the second step.
+- If you’re several versions behind, upgrade {% data variables.location.product_location %} as far forward as possible with each step of your upgrade process. Using the latest version possible on each upgrade allows you to take advantage of performance improvements and bug fixes. For example, you could upgrade from {% data variables.product.prodname_enterprise %} 2.7 to 2.8 to 2.10, but upgrading from {% data variables.product.prodname_enterprise %} 2.7 to 2.9 to 2.10 uses a later version in the second step.
 - Use the latest patch release when upgrading. {% data reusables.enterprise_installation.enterprise-download-upgrade-pkg %}
 - Use a staging instance to test the upgrade steps. For more information, see "[Setting up a staging instance](/enterprise/admin/guides/installation/setting-up-a-staging-instance/)."
 - When running multiple upgrades, wait at least 24 hours between feature upgrades to allow data migrations and upgrade tasks running in the background to fully complete.
diff --git a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md
index 590bf709b2..c1c8100472 100644
--- a/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md
+++ b/content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server.md
@@ -32,11 +32,11 @@ shortTitle: Upgrading GHES
 
   {% note %}
 
-  **Note:** Your {% data variables.product.prodname_enterprise_backup_utilities %} version needs to be the same version as, or at most two versions ahead of, {% data variables.product.product_location %}. For more information, see "[Upgrading GitHub Enterprise Server Backup Utilities](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance#upgrading-github-enterprise-server-backup-utilities)."
+  **Note:** Your {% data variables.product.prodname_enterprise_backup_utilities %} version needs to be the same version as, or at most two versions ahead of, {% data variables.location.product_location %}. For more information, see "[Upgrading GitHub Enterprise Server Backup Utilities](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance#upgrading-github-enterprise-server-backup-utilities)."
 
   {% endnote %}
 
-1. If {% data variables.product.product_location %} uses ephemeral self-hosted runners for {% data variables.product.prodname_actions %} and you've disabled automatic updates, upgrade your runners to the version of the runner application that your upgraded instance will run.
+1. If {% data variables.location.product_location %} uses ephemeral self-hosted runners for {% data variables.product.prodname_actions %} and you've disabled automatic updates, upgrade your runners to the version of the runner application that your upgraded instance will run.
 1. If you are upgrading using an upgrade package, schedule a maintenance window for {% data variables.product.prodname_ghe_server %} end users. If you are using a hotpatch, maintenance mode is not required.
 
   {% note %}
@@ -84,7 +84,7 @@ Using the {% data variables.enterprise.management_console %}, you can install a
 **{% ifversion ghes %}Notes{% else %}Note{% endif %}**:
 
 {% ifversion ghes %}
-- If {% data variables.product.product_location %} is running a release candidate build, you can't upgrade with a hotpatch.
+- If {% data variables.location.product_location %} is running a release candidate build, you can't upgrade with a hotpatch.
 
 - {% endif %}Installing a hotpatch using the {% data variables.enterprise.management_console %} is not available in clustered environments. To install a hotpatch in a clustered environment, see "[Upgrading a cluster](/enterprise/admin/clustering/upgrading-a-cluster#upgrading-with-a-hotpatch)."
 
@@ -184,7 +184,7 @@ While you can use a hotpatch to upgrade to the latest patch release within a fea
 {% ifversion ip-exception-list %}
 1. Optionally, to validate the upgrade, configure an IP exception list to allow access to a specified list of IP addresses. For more information, see "[Validating changes in maintenance mode using the IP exception list](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode#validating-changes-in-maintenance-mode-using-the-ip-exception-list)."
 {% endif %}
-7. For single appliance upgrades, disable maintenance mode so users can use {% data variables.product.product_location %}.
+7. For single appliance upgrades, disable maintenance mode so users can use {% data variables.location.product_location %}.
 
   {% note %}
 
@@ -239,7 +239,7 @@ Appliances configured for high-availability and geo-replication use replica inst
    - If you have upgraded each node to {% data variables.product.product_name %} 3.6.0 or later and started replication, but `git replication is behind the primary` continues to appear after 45 minutes, contact {% data variables.contact.enterprise_support %}. For more information, see "[Receiving help from {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support)."
    {%- endif %}
    - {% ifversion ghes = 3.4 or ghes = 3.5 or ghes = 3.6 %}Otherwise, if{% else %}If{% endif %} `ghe-repl-status` did not return `OK`, contact {% data variables.contact.enterprise_support %}. For more information, see "[Receiving help from {% data variables.contact.github_support %}](/admin/enterprise-support/receiving-help-from-github-support)."
-6. When you have completed upgrading the last replica, and the resync is complete, disable maintenance mode so users can use {% data variables.product.product_location %}.
+6. When you have completed upgrading the last replica, and the resync is complete, disable maintenance mode so users can use {% data variables.location.product_location %}.
 
 ## Restoring from a failed upgrade
 
diff --git a/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md b/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md
index bd71918b12..986fa1a462 100644
--- a/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md
+++ b/content/admin/github-actions/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled.md
@@ -1,7 +1,7 @@
 ---
 title: Backing up and restoring GitHub Enterprise Server with GitHub Actions enabled
 shortTitle: Backing up and restoring
-intro: 'To restore a backup of {% data variables.product.product_location %} when {% data variables.product.prodname_actions %} is enabled, you must configure {% data variables.product.prodname_actions %} before restoring the backup with {% data variables.product.prodname_enterprise_backup_utilities %}.'
+intro: 'To restore a backup of {% data variables.location.product_location %} when {% data variables.product.prodname_actions %} is enabled, you must configure {% data variables.product.prodname_actions %} before restoring the backup with {% data variables.product.prodname_enterprise_backup_utilities %}.'
 versions:
   ghes: '*'
 type: how_to
@@ -16,13 +16,13 @@ redirect_from:
 
 ## About backups of {% data variables.product.product_name %} when using {% data variables.product.prodname_actions %}
 
-You can use {% data variables.product.prodname_enterprise_backup_utilities %} to back up and restore the data and configuration for {% data variables.product.product_location %} to a new instance. For more information, see "[Configuring backups on your appliance](/admin/configuration/configuring-backups-on-your-appliance)."
+You can use {% data variables.product.prodname_enterprise_backup_utilities %} to back up and restore the data and configuration for {% data variables.location.product_location %} to a new instance. For more information, see "[Configuring backups on your appliance](/admin/configuration/configuring-backups-on-your-appliance)."
 
 However, not all the data for {% data variables.product.prodname_actions %} is included in these backups. {% data reusables.actions.enterprise-storage-ha-backups %}
 
 ## Restoring a backup of {% data variables.product.product_name %} when {% data variables.product.prodname_actions %} is enabled
 
-To restore a backup of {% data variables.product.product_location %} with {% data variables.product.prodname_actions %}, you must manually configure network settings and external storage on the destination instance before you restore your backup from {% data variables.product.prodname_enterprise_backup_utilities %}. 
+To restore a backup of {% data variables.location.product_location %} with {% data variables.product.prodname_actions %}, you must manually configure network settings and external storage on the destination instance before you restore your backup from {% data variables.product.prodname_enterprise_backup_utilities %}. 
 
 1. Confirm that the source instance is offline.
 1. Manually configure network settings on the replacement {% data variables.product.prodname_ghe_server %} instance. Network settings are excluded from the backup snapshot, and are not overwritten by `ghe-restore`. For more information, see "[Configuring network settings](/admin/configuration/configuring-network-settings)."
@@ -41,4 +41,4 @@ To restore a backup of {% data variables.product.product_location %} with {% dat
    ```
 {% data reusables.actions.apply-configuration-and-enable %}
 1. After {% data variables.product.prodname_actions %} is configured and enabled, to restore the rest of the data from the backup, use the `ghe-restore` command. For more information, see "[Restoring a backup](/admin/configuration/configuring-backups-on-your-appliance#restoring-a-backup)."
-1. Re-register your self-hosted runners on the destination instance. For more information, see "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
+1. Re-register your self-hosted runners on the destination instance. For more information, see "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
\ No newline at end of file
diff --git a/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md b/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md
index cd563300ed..c38c209a49 100644
--- a/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md
+++ b/content/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise.md
@@ -16,7 +16,7 @@ shortTitle: Troubleshoot GitHub Actions
 
 ## Checking the health of {% data variables.product.prodname_actions %}
 
-You can check the health of {% data variables.product.prodname_actions %} on {% data variables.product.product_location %} with the `ghe-actions-check` command-line utility. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-actions-check)" and "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
+You can check the health of {% data variables.product.prodname_actions %} on {% data variables.location.product_location %} with the `ghe-actions-check` command-line utility. For more information, see "[Command-line utilities](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-actions-check)" and "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)."
 
 ## Configuring self-hosted runners when using a self-signed certificate for {% data variables.product.prodname_ghe_server %}
 
@@ -58,14 +58,14 @@ If these settings aren't correctly configured, you might receive errors like `Re
 
 If you deploy {% data variables.product.prodname_ghe_server %} in your environment with a new hostname and the old hostname no longer resolves to your instance, self-hosted runners will be unable to connect to the old hostname, and will not execute any jobs.
 
-You will need to update the configuration of your self-hosted runners to use the new hostname for {% data variables.product.product_location %}. Each self-hosted runner will require one of the following procedures:
+You will need to update the configuration of your self-hosted runners to use the new hostname for {% data variables.location.product_location %}. Each self-hosted runner will require one of the following procedures:
 
 * In the self-hosted runner application directory, edit the `.runner` and `.credentials` files to replace all mentions of the old hostname with the new hostname, then restart the self-hosted runner application.
 * Remove the runner from {% data variables.product.prodname_ghe_server %} using the UI, and re-add it. For more information, see "[Removing self-hosted runners](/actions/hosting-your-own-runners/removing-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
 
 ## Stuck jobs and {% data variables.product.prodname_actions %} memory and CPU limits
 
-{% data variables.product.prodname_actions %} is composed of multiple services running on {% data variables.product.product_location %}. By default, these services are set up with default CPU and memory limits that should work for most instances. However, heavy users of {% data variables.product.prodname_actions %} might need to adjust these settings.
+{% data variables.product.prodname_actions %} is composed of multiple services running on {% data variables.location.product_location %}. By default, these services are set up with default CPU and memory limits that should work for most instances. However, heavy users of {% data variables.product.prodname_actions %} might need to adjust these settings.
 
 You may be hitting the CPU or memory limits if you notice that jobs are not starting (even though there are idle runners), or if the job's progress is not updating or changing in the UI.
 
@@ -73,7 +73,7 @@ You may be hitting the CPU or memory limits if you notice that jobs are not star
 
 Access the management console and use the monitor dashboard to inspect the overall CPU and memory graphs under "System Health". For more information, see "[Accessing the monitor dashboard](/admin/enterprise-management/accessing-the-monitor-dashboard)."
 
-If the overall "System Health" CPU usage is close to 100%, or there is no free memory left, then {% data variables.product.product_location %} is running at capacity and needs to be scaled up. For more information, see "[Increasing CPU or memory resources](/admin/enterprise-management/increasing-cpu-or-memory-resources)."
+If the overall "System Health" CPU usage is close to 100%, or there is no free memory left, then {% data variables.location.product_location %} is running at capacity and needs to be scaled up. For more information, see "[Increasing CPU or memory resources](/admin/enterprise-management/increasing-cpu-or-memory-resources)."
 
 ### 2. Check the Nomad Jobs CPU and memory usage in the management console
 
@@ -161,7 +161,7 @@ If any of these services are at or near 100% CPU utilization, or the memory is n
 
 {% data reusables.dependabot.beta-security-and-version-updates %}
 
-After you set up {% data variables.product.prodname_dependabot %} updates for {% data variables.product.product_location %}, you may see failures when existing workflows are triggered by {% data variables.product.prodname_dependabot %} events.
+After you set up {% data variables.product.prodname_dependabot %} updates for {% data variables.location.product_location %}, you may see failures when existing workflows are triggered by {% data variables.product.prodname_dependabot %} events.
 
 By default, {% data variables.product.prodname_actions %} workflow runs that are triggered by {% data variables.product.prodname_dependabot %} from `push`, `pull_request`, `pull_request_review`, or `pull_request_review_comment` events are treated as if they were opened from a repository fork. Unlike workflows triggered by other actors, this means they receive a read-only `GITHUB_TOKEN` and do not have access to any secrets that are normally available. This will cause any workflows that attempt to write to the repository to fail when they are triggered by {% data variables.product.prodname_dependabot %}.
 
@@ -174,7 +174,7 @@ There are three ways to resolve this problem:
 ### Providing workflows triggered by {% data variables.product.prodname_dependabot %} access to secrets and increased permissions
 
 1. Log in to the administrative shell using SSH. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)."
-1. To remove the limitations on workflows triggered by {% data variables.product.prodname_dependabot %} on {% data variables.product.product_location %}, use the following command.
+1. To remove the limitations on workflows triggered by {% data variables.product.prodname_dependabot %} on {% data variables.location.product_location %}, use the following command.
     ``` shell
     $ ghe-config app.actions.disable-dependabot-enforcement true
     ```
diff --git a/content/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment.md b/content/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment.md
index 80e128920e..c9f9e75ca4 100644
--- a/content/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment.md
+++ b/content/admin/github-actions/advanced-configuration-and-troubleshooting/using-a-staging-environment.md
@@ -16,7 +16,7 @@ shortTitle: Use staging environment
 
 ## About staging environments for {% data variables.product.product_name %}
 
-It can be useful to have a staging or testing environment for {% data variables.product.product_location %}, so that you can test updates or new features before implementing them in your production environment. For more information, see "[Setting up a staging instance](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)."
+It can be useful to have a staging or testing environment for {% data variables.location.product_location %}, so that you can test updates or new features before implementing them in your production environment. For more information, see "[Setting up a staging instance](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)."
 
 ## Using a staging environment with {% data variables.product.prodname_actions %}
 
diff --git a/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-minio-gateway-for-nas-storage.md b/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-minio-gateway-for-nas-storage.md
index ffb187c826..be47b2ae56 100644
--- a/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-minio-gateway-for-nas-storage.md
+++ b/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-minio-gateway-for-nas-storage.md
@@ -21,7 +21,7 @@ shortTitle: MinIO Gateway for NAS storage
 
 Before enabling {% data variables.product.prodname_actions %}, make sure you have completed the following steps:
 
-* To avoid resource contention on the appliance, we recommend that MinIO be hosted separately from {% data variables.product.product_location %}.
+* To avoid resource contention on the appliance, we recommend that MinIO be hosted separately from {% data variables.location.product_location %}.
 * Create your bucket for storing workflow data. {% indented_data_reference reusables.actions.enterprise-s3-permission spaces=2 %}
   
 {% data reusables.actions.enterprise-common-prereqs %}
diff --git a/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates.md b/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates.md
index a8b13c428b..dec9d74057 100644
--- a/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates.md
+++ b/content/admin/github-actions/enabling-github-actions-for-github-enterprise-server/managing-self-hosted-runners-for-dependabot-updates.md
@@ -1,6 +1,6 @@
 ---
 title: Managing self-hosted runners for Dependabot updates on your enterprise
-intro: 'You can create dedicated runners for {% data variables.product.product_location %} that {% data variables.product.prodname_dependabot %} uses to create pull requests to help secure and maintain the dependencies used in repositories on your enterprise.'
+intro: 'You can create dedicated runners for {% data variables.location.product_location %} that {% data variables.product.prodname_dependabot %} uses to create pull requests to help secure and maintain the dependencies used in repositories on your enterprise.'
 redirect_from:
   - /admin/github-actions/enabling-github-actions-for-github-enterprise-server/setting-up-dependabot-updates
 allowTitleToDifferFromFilename: true
@@ -19,24 +19,24 @@ shortTitle: Dependabot updates
 
 ## About self-hosted runners for {% data variables.product.prodname_dependabot_updates %}
 
-You can help users of {% data variables.product.product_location %} to create and maintain secure code by setting up {% data variables.product.prodname_dependabot %} security and version updates. With {% data variables.product.prodname_dependabot_updates %}, developers can configure repositories so that their dependencies are updated and kept secure automatically. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
+You can help users of {% data variables.location.product_location %} to create and maintain secure code by setting up {% data variables.product.prodname_dependabot %} security and version updates. With {% data variables.product.prodname_dependabot_updates %}, developers can configure repositories so that their dependencies are updated and kept secure automatically. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
 
-To use {% data variables.product.prodname_dependabot_updates %} on {% data variables.product.product_location %}, you must configure self-hosted runners to create the pull requests that will update dependencies.
+To use {% data variables.product.prodname_dependabot_updates %} on {% data variables.location.product_location %}, you must configure self-hosted runners to create the pull requests that will update dependencies.
 
 ## Prerequisites
 
 {% ifversion dependabot-updates-github-connect %}
-Configuring self-hosted runners is only one step in the middle of the process for enabling {% data variables.product.prodname_dependabot_updates %}. There are several steps you must follow before these steps, including configuring {% data variables.product.product_location %} to use {% data variables.product.prodname_actions %} with self-hosted runners. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
+Configuring self-hosted runners is only one step in the middle of the process for enabling {% data variables.product.prodname_dependabot_updates %}. There are several steps you must follow before these steps, including configuring {% data variables.location.product_location %} to use {% data variables.product.prodname_actions %} with self-hosted runners. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
 {% else %}
 Before you configure self-hosted runners for {% data variables.product.prodname_dependabot_updates %}, you must:
 
-- Configure {% data variables.product.product_location %} to use {% data variables.product.prodname_actions %} with self-hosted runners. 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)."
+- Configure {% data variables.location.product_location %} to use {% data variables.product.prodname_actions %} with self-hosted runners. 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)."
 - Enable {% data variables.product.prodname_dependabot_alerts %} for your enterprise. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)."
 {% endif %}
 
 ## Configuring self-hosted runners for {% data variables.product.prodname_dependabot_updates %}
 
-After you configure {% data variables.product.product_location %} to use {% data variables.product.prodname_actions %}, you need to add self-hosted runners for {% data variables.product.prodname_dependabot_updates %}.
+After you configure {% data variables.location.product_location %} to use {% data variables.product.prodname_actions %}, you need to add self-hosted runners for {% data variables.product.prodname_dependabot_updates %}.
 
 ### System requirements for {% data variables.product.prodname_dependabot %} runners
 
diff --git a/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises.md b/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises.md
index 53143aafdb..c8553798a2 100644
--- a/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises.md
+++ b/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises.md
@@ -33,7 +33,7 @@ topics:
 
 {% data variables.product.prodname_actions %} helps your team work faster at scale. When large repositories start using {% data variables.product.prodname_actions %}, teams merge significantly more pull requests per day, and the pull requests are merged significantly faster. For more information, see "[Writing and shipping code faster](https://octoverse.github.com/writing-code-faster/#scale-through-automation)" in the State of the Octoverse.
 
-You can create your own unique automations, or you can use and adapt workflows from our ecosystem of over 10,000 actions built by industry leaders and the open source community. {% ifversion ghec %}For more information, see "[Finding and customizing actions](/actions/learn-github-actions/finding-and-customizing-actions)."{% else %}You can restrict your developers to using actions that exist on {% data variables.product.product_location %}, or you can allow your developers to access actions on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[About using actions in your enterprise](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise)."{% endif %}
+You can create your own unique automations, or you can use and adapt workflows from our ecosystem of over 10,000 actions built by industry leaders and the open source community. {% ifversion ghec %}For more information, see "[Finding and customizing actions](/actions/learn-github-actions/finding-and-customizing-actions)."{% else %}You can restrict your developers to using actions that exist on {% data variables.location.product_location %}, or you can allow your developers to access actions on {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[About using actions in your enterprise](/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise)."{% endif %}
 
 {% data variables.product.prodname_actions %} is developer friendly, because it's integrated directly into the familiar {% data variables.product.product_name %} experience.
 
@@ -50,7 +50,7 @@ You can create your own unique automations, or you can use and adapt workflows f
 {% data reusables.actions.migrating-enterprise %}
 
 {% ifversion ghes %}
-{% data reusables.actions.ghes-actions-not-enabled-by-default %} After you finish planning, you can follow the instructions for enabling {% data variables.product.prodname_actions %}. For example, you may need to upgrade the CPU and memory resources for {% data variables.product.product_location %}. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)."
+{% data reusables.actions.ghes-actions-not-enabled-by-default %} After you finish planning, you can follow the instructions for enabling {% data variables.product.prodname_actions %}. For example, you may need to upgrade the CPU and memory resources for {% data variables.location.product_location %}. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)."
 
 {% else %}
 After you finish planning, you can follow the instructions for getting started with {% data variables.product.prodname_actions %}. For more information, see {% ifversion ghec %}"[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_cloud %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud)."{% elsif ghae %}"[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_managed %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-ae)."{% endif %}
diff --git a/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server.md b/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server.md
index 3eef9926ec..babd01f28f 100644
--- a/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server.md
+++ b/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server.md
@@ -36,7 +36,7 @@ This article explains how site administrators can configure {% data variables.pr
 
 {%- ifversion ghes < 3.6 %}
 
-The CPU and memory resources available to {% data variables.product.product_location %} determine the number of jobs that can be run concurrently without performance loss. {% data reusables.actions.minimum-hardware %}
+The CPU and memory resources available to {% data variables.location.product_location %} determine the number of jobs that can be run concurrently without performance loss. {% data reusables.actions.minimum-hardware %}
 
 The peak quantity of concurrent jobs running without performance loss depends on such factors as job duration, artifact usage, number of repositories running Actions, and how much other work your instance is doing not related to Actions. Internal testing at GitHub demonstrated the following performance targets for GitHub Enterprise Server on a range of CPU and memory configurations:
 
@@ -44,7 +44,7 @@ The peak quantity of concurrent jobs running without performance loss depends on
 
 {%- ifversion ghes > 3.5 %}
 
-The CPU and memory resources available to {% data variables.product.product_location %} determine the number of runners that can be configured without performance loss. {% data reusables.actions.minimum-hardware %}
+The CPU and memory resources available to {% data variables.location.product_location %} determine the number of runners that can be configured without performance loss. {% data reusables.actions.minimum-hardware %}
 
 The peak quantity of connected runners without performance loss depends on such factors as job duration, artifact usage, number of repositories running Actions, and how much other work your instance is doing not related to Actions. Internal testing at GitHub demonstrated the following performance targets for GitHub Enterprise Server on a range of CPU and memory configurations:
 
@@ -107,7 +107,7 @@ Maximum concurrency was measured using multiple repositories, job duration of ap
 
 If you plan to enable {% data variables.product.prodname_actions %} for the users of an existing instance, review the levels of activity for users and automations on the instance and ensure that you have provisioned adequate CPU and memory for your users. For more information about monitoring the capacity and performance of {% data variables.product.prodname_ghe_server %}, see "[Monitoring your appliance](/admin/enterprise-management/monitoring-your-appliance)."
 
-For more information about minimum hardware requirements for {% data variables.product.product_location %}, see the hardware considerations for your instance's platform.
+For more information about minimum hardware requirements for {% data variables.location.product_location %}, see the hardware considerations for your instance's platform.
 
 - [AWS](/admin/installation/installing-github-enterprise-server-on-aws#hardware-considerations)
 - [Azure](/admin/installation/installing-github-enterprise-server-on-azure#hardware-considerations)
@@ -121,7 +121,7 @@ For more information about minimum hardware requirements for {% data variables.p
 
 {% ifversion ghes > 3.4 %}
 
-Optionally, you can limit resource consumption on {% data variables.product.product_location %} by configuring a rate limit for {% data variables.product.prodname_actions %}. For more information, see "[Configuring rate limits](/admin/configuration/configuring-your-enterprise/configuring-rate-limits#configuring-rate-limits-for-github-actions)."
+Optionally, you can limit resource consumption on {% data variables.location.product_location %} by configuring a rate limit for {% data variables.product.prodname_actions %}. For more information, see "[Configuring rate limits](/admin/configuration/configuring-your-enterprise/configuring-rate-limits#configuring-rate-limits-for-github-actions)."
 
 {% endif %}
 
diff --git a/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md b/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md
index 2e27bf07bd..8fc4c6c049 100644
--- a/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md
+++ b/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md
@@ -18,7 +18,7 @@ topics:
 
 {% data reusables.actions.about-actions-for-enterprises %} For more information, see "[About {% data variables.product.prodname_actions %} for enterprises](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)."
 
-With {% data variables.product.prodname_actions %}, developers can write and combine individual tasks called actions to create custom workflows. {% ifversion ghes or ghae %}To enable {% data variables.product.prodname_actions %} for {% ifversion ghae %}your enterprise{% elsif ghes %} {% data variables.product.product_location %}{% endif %}, you must host at least one machine to execute jobs.{% endif %} {% ifversion ghec %}You can host your own runner machine to execute jobs, and this{% elsif ghes or ghae %}This{% endif %} machine is called a self-hosted runner. {% data reusables.actions.self-hosted-runner-locations %} {% data reusables.actions.self-hosted-runner-architecture %} {% ifversion ghec %}All{% elsif ghes or ghae %}Self-hosted{% endif %} runners can run Linux, Windows, or macOS. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)."
+With {% data variables.product.prodname_actions %}, developers can write and combine individual tasks called actions to create custom workflows. {% ifversion ghes or ghae %}To enable {% data variables.product.prodname_actions %} for {% ifversion ghae %}your enterprise{% elsif ghes %} {% data variables.location.product_location %}{% endif %}, you must host at least one machine to execute jobs.{% endif %} {% ifversion ghec %}You can host your own runner machine to execute jobs, and this{% elsif ghes or ghae %}This{% endif %} machine is called a self-hosted runner. {% data reusables.actions.self-hosted-runner-locations %} {% data reusables.actions.self-hosted-runner-architecture %} {% ifversion ghec %}All{% elsif ghes or ghae %}Self-hosted{% endif %} runners can run Linux, Windows, or macOS. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)."
 
 {% ifversion ghec %}
 
@@ -38,7 +38,7 @@ This guide shows you how to apply a centralized management approach to self-host
 
 You'll also find additional information about how to monitor and secure your self-hosted runners,{% ifversion ghes or ghae %} how to access actions from {% data variables.product.prodname_dotcom_the_website %},{% endif %} and how to customize the software on your runner machines.
 
-After you finish the guide, {% ifversion ghec or ghae %}members of your enterprise{% elsif ghes %}users of {% data variables.product.product_location %}{% endif %} will be able to run workflow jobs from {% data variables.product.prodname_actions %} on a self-hosted runner machine.
+After you finish the guide, {% ifversion ghec or ghae %}members of your enterprise{% elsif ghes %}users of {% data variables.location.product_location %}{% endif %} will be able to run workflow jobs from {% data variables.product.prodname_actions %} on a self-hosted runner machine.
 
 ## Prerequisites
 
@@ -48,7 +48,7 @@ After you finish the guide, {% ifversion ghec or ghae %}members of your enterpri
 
 ## 1. Configure policies for {% data variables.product.prodname_actions %}
 
-First, enable {% data variables.product.prodname_actions %} for all organizations, and configure a policy to restrict the actions{% ifversion actions-workflow-policy %} and reusable workflows{% endif %} that can run {% ifversion ghec or ghae%}within your enterprise on {% data variables.product.product_name %}{% elsif ghes %}on {% data variables.product.product_location %}{% endif %}. Optionally, organization owners can further restrict these policies for each organization.
+First, enable {% data variables.product.prodname_actions %} for all organizations, and configure a policy to restrict the actions{% ifversion actions-workflow-policy %} and reusable workflows{% endif %} that can run {% ifversion ghec or ghae%}within your enterprise on {% data variables.product.product_name %}{% elsif ghes %}on {% data variables.location.product_location %}{% endif %}. Optionally, organization owners can further restrict these policies for each organization.
 
 {% data reusables.enterprise-accounts.access-enterprise %}
 {% data reusables.enterprise-accounts.policies-tab %}
@@ -65,11 +65,11 @@ First, enable {% data variables.product.prodname_actions %} for all organization
    {%- endif %}
 1. Click **Save**.
 
-You can configure additional policies to restrict the actions available to {% ifversion ghec or ghae %}enterprise members{% elsif ghes %}users of {% data variables.product.product_location %}{% endif %}. For more information, see "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#allowing-select-actions-to-run)."
+You can configure additional policies to restrict the actions available to {% ifversion ghec or ghae %}enterprise members{% elsif ghes %}users of {% data variables.location.product_location %}{% endif %}. For more information, see "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise#allowing-select-actions-to-run)."
 
 ## 2. Deploy the self-hosted runner for your enterprise
 
-Next, add a self-hosted runner to your enterprise. {% data variables.product.product_name %} will guide you through installation of the necessary software on the runner machine. After you deploy the runner, you can verify connectivity between the runner machine and {%ifversion ghec or ghae %}your enterprise{% elsif ghes %}{% data variables.product.product_location %}{% endif %}.
+Next, add a self-hosted runner to your enterprise. {% data variables.product.product_name %} will guide you through installation of the necessary software on the runner machine. After you deploy the runner, you can verify connectivity between the runner machine and {%ifversion ghec or ghae %}your enterprise{% elsif ghes %}{% data variables.location.product_location %}{% endif %}.
 
 ### Adding the self-hosted runner
 
@@ -126,7 +126,7 @@ For more information, see "[Managing access to self-hosted runners using groups]
 
 ## 5. Automatically scale your self-hosted runners
 
-Optionally, you can build custom tooling to automatically scale the self-hosted runners for {% ifversion ghec or ghae %}your enterprise{% elsif ghes %}{% data variables.product.product_location %}{% endif %}. For example, your tooling can respond to webhook events from {% data variables.product.product_location %} to automatically scale a cluster of runner machines. For more information, see "[Autoscaling with self-hosted runners](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)."
+Optionally, you can build custom tooling to automatically scale the self-hosted runners for {% ifversion ghec or ghae %}your enterprise{% elsif ghes %}{% data variables.location.product_location %}{% endif %}. For example, your tooling can respond to webhook events from {% data variables.location.product_location %} to automatically scale a cluster of runner machines. For more information, see "[Autoscaling with self-hosted runners](/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners)."
 
 {% endif %}
 
diff --git a/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md b/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md
index d8de55e3fa..8ac0a99e29 100644
--- a/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md
+++ b/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md
@@ -91,7 +91,7 @@ You should plan for how you'll manage the resources required to use {% data vari
 {% ifversion ghes %}
 ### Hardware requirements
 
-You may need to upgrade the CPU and memory resources for {% data variables.product.product_location %} to handle the load from {% data variables.product.prodname_actions %} without causing performance loss. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-requirements)."
+You may need to upgrade the CPU and memory resources for {% data variables.location.product_location %} to handle the load from {% data variables.product.prodname_actions %} without causing performance loss. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-requirements)."
 {% endif %}
 
 ### Runners
diff --git a/content/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise.md b/content/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise.md
index 6610670d48..8aa85ea18f 100644
--- a/content/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise.md
+++ b/content/admin/github-actions/managing-access-to-actions-from-githubcom/about-using-actions-in-your-enterprise.md
@@ -23,7 +23,7 @@ shortTitle: About actions in your enterprise
 
 {% data variables.product.prodname_actions %} workflows can use _actions_, which are individual tasks that you can combine to create jobs and customize your workflow. You can create your own actions, or use and customize actions shared by the {% data variables.product.prodname_dotcom %} community.
 
-{% data reusables.actions.enterprise-no-internet-actions %} You can restrict your developers to using actions that are stored on {% data variables.product.product_location %}, which includes most official {% data variables.product.company_short %}-authored actions, as well as any actions your developers create. Alternatively, to allow your developers to benefit from the full ecosystem of actions built by industry leaders and the open source community, you can configure access to other actions from {% data variables.product.prodname_dotcom_the_website %}. 
+{% data reusables.actions.enterprise-no-internet-actions %} You can restrict your developers to using actions that are stored on {% data variables.location.product_location %}, which includes most official {% data variables.product.company_short %}-authored actions, as well as any actions your developers create. Alternatively, to allow your developers to benefit from the full ecosystem of actions built by industry leaders and the open source community, you can configure access to other actions from {% data variables.product.prodname_dotcom_the_website %}. 
 
 We recommend allowing automatic access to all actions from {% data variables.product.prodname_dotcom_the_website %}. {% ifversion ghes %}However, this does require {% data variables.product.product_name %} to make outbound connections to {% data variables.product.prodname_dotcom_the_website %}. If you don't want to allow these connections, or{% else %}If{% endif %} you want to have greater control over which actions are used on your enterprise, you can manually sync specific actions from {% data variables.product.prodname_dotcom_the_website %}.
 
@@ -40,7 +40,7 @@ The bundled official actions include the following, among others.
 
 To see all the official actions included on your enterprise instance, browse to the `actions` organization on your instance: https://HOSTNAME/actions.
 
-There is no connection required between {% data variables.product.product_location %} and {% data variables.product.prodname_dotcom_the_website %} to use these actions.
+There is no connection required between {% data variables.location.product_location %} and {% data variables.product.prodname_dotcom_the_website %} to use these actions.
 
 Each action is a repository in the `actions` organization, and each action repository includes the necessary tags, branches, and commit SHAs that your workflows can use to reference the action. For information on how to update the bundled official actions, see "[Using the latest version of the official bundled actions](/admin/github-actions/using-the-latest-version-of-the-official-bundled-actions)."
 
@@ -61,7 +61,7 @@ The recommended approach is to enable automatic access to all actions from {% da
 {% ifversion ghes %}
 {% note %}
 
-**Note:** Before you can configure access to actions on {% data variables.product.prodname_dotcom_the_website %}, you must 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)."
+**Note:** Before you can configure access to actions on {% data variables.product.prodname_dotcom_the_website %}, you must configure {% data variables.location.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)."
 
 
 {% endnote %}
diff --git a/content/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect.md b/content/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect.md
index 7ea2bb0b09..709907e154 100644
--- a/content/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect.md
+++ b/content/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect.md
@@ -37,7 +37,7 @@ If a user has already created an organization and repository in your enterprise
 ## Enabling automatic access to all {% data variables.product.prodname_dotcom_the_website %} actions
 
 Before enabling access to all actions from {% data variables.product.prodname_dotcom_the_website %} for your enterprise, you must{% ifversion ghes %}:
-- 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)."
+- Configure {% data variables.location.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)."
 - Enable{% else %} enable{% endif %} {% data variables.product.prodname_github_connect %}. For more information, see "[Managing {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/managing-github-connect)."
 
 {% data reusables.enterprise-accounts.access-enterprise %}
@@ -50,15 +50,15 @@ Before enabling access to all actions from {% data variables.product.prodname_do
 
 ## Automatic retirement of namespaces for actions accessed on {% data variables.product.prodname_dotcom_the_website %}
 
-When you enable {% data variables.product.prodname_github_connect %}, users see no change in behavior for existing workflows because {% data variables.product.prodname_actions %} searches {% data variables.product.product_location %} for each action before falling back to {% data variables.product.prodname_dotcom_the_website%}. This ensures that any custom versions of actions your enterprise has created are used in preference to their counterparts on {% data variables.product.prodname_dotcom_the_website%}.
+When you enable {% data variables.product.prodname_github_connect %}, users see no change in behavior for existing workflows because {% data variables.product.prodname_actions %} searches {% data variables.location.product_location %} for each action before falling back to {% data variables.product.prodname_dotcom_the_website%}. This ensures that any custom versions of actions your enterprise has created are used in preference to their counterparts on {% data variables.product.prodname_dotcom_the_website%}.
 
-Automatic retirement of namespaces for actions accessed on {% data variables.product.prodname_dotcom_the_website %} blocks the potential for a man-in-the-middle attack by a malicious user with access to {% data variables.product.product_location %}. When an action on {% data variables.product.prodname_dotcom_the_website %} is used for the first time, that namespace is retired in {% data variables.product.product_location %}. This blocks any user creating an organization and repository in your enterprise that matches that organization and repository name on {% data variables.product.prodname_dotcom_the_website %}. This ensures that when a workflow runs, the intended action is always run.
+Automatic retirement of namespaces for actions accessed on {% data variables.product.prodname_dotcom_the_website %} blocks the potential for a man-in-the-middle attack by a malicious user with access to {% data variables.location.product_location %}. When an action on {% data variables.product.prodname_dotcom_the_website %} is used for the first time, that namespace is retired in {% data variables.location.product_location %}. This blocks any user creating an organization and repository in your enterprise that matches that organization and repository name on {% data variables.product.prodname_dotcom_the_website %}. This ensures that when a workflow runs, the intended action is always run.
 
-After using an action from {% data variables.product.prodname_dotcom_the_website %}, if you want to create an action in {% data variables.product.product_location %} with the same name, first you need to make the namespace for that organization and repository available.
+After using an action from {% data variables.product.prodname_dotcom_the_website %}, if you want to create an action in {% data variables.location.product_location %} with the same name, first you need to make the namespace for that organization and repository available.
 
 {% data reusables.enterprise_site_admin_settings.access-settings %}
 2. In the left sidebar, under **Site admin** click **Retired namespaces**.
-3. Locate the namespace that you want use in {% data variables.product.product_location %} and click **Unretire**.
+3. Locate the namespace that you want use in {% data variables.location.product_location %} and click **Unretire**.
    ![Unretire namespace](/assets/images/enterprise/site-admin-settings/unretire-namespace.png)
 4. Go to the relevant organization and create a new repository.
 
diff --git a/content/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom.md b/content/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom.md
index ef7ce0c911..e44a1c5cf1 100644
--- a/content/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom.md
+++ b/content/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom.md
@@ -36,7 +36,7 @@ The `actions-sync` tool can only download actions from {% data variables.product
 {% ifversion ghes > 3.2 or ghae %}
 {% note %}
 
-**Note:** The `actions-sync` tool is intended for use in systems where {% data variables.product.prodname_github_connect %} is not enabled. If you run the tool on a system with {% data variables.product.prodname_github_connect %} enabled, you may see the error `The repository  has been retired and cannot be reused`. This indicates that a workflow has used that action directly on {% data variables.product.prodname_dotcom_the_website %} and the namespace is retired on {% data variables.product.product_location %}. For more information, see "[Automatic retirement of namespaces for actions accessed on {% data variables.product.prodname_dotcom_the_website%}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#automatic-retirement-of-namespaces-for-actions-accessed-on-githubcom)." 
+**Note:** The `actions-sync` tool is intended for use in systems where {% data variables.product.prodname_github_connect %} is not enabled. If you run the tool on a system with {% data variables.product.prodname_github_connect %} enabled, you may see the error `The repository  has been retired and cannot be reused`. This indicates that a workflow has used that action directly on {% data variables.product.prodname_dotcom_the_website %} and the namespace is retired on {% data variables.location.product_location %}. For more information, see "[Automatic retirement of namespaces for actions accessed on {% data variables.product.prodname_dotcom_the_website%}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#automatic-retirement-of-namespaces-for-actions-accessed-on-githubcom)." 
 
 {% endnote %}
 {% endif %}
@@ -44,8 +44,8 @@ The `actions-sync` tool can only download actions from {% data variables.product
 ## Prerequisites
 
 * Before using the `actions-sync` tool, you must ensure that all destination organizations already exist in your enterprise. The following example demonstrates how to sync actions to an organization named `synced-actions`. For more information, see "[Creating a new organization from scratch](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)."
-* You must create a personal access token (PAT) on your enterprise that can create and write to repositories in the destination organizations. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)."{% ifversion ghes %}
-* If you want to sync the bundled actions in the `actions` organization on {% data variables.product.product_location %}, you must be an owner of the `actions` organization.
+* You must create a {% data variables.product.pat_generic %} on your enterprise that can create and write to repositories in the destination organizations. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)."{% ifversion ghes %}
+* If you want to sync the bundled actions in the `actions` organization on {% data variables.location.product_location %}, you must be an owner of the `actions` organization.
 
   {% note %}
   
@@ -84,7 +84,7 @@ This example demonstrates using the `actions-sync` tool to sync an individual ac
    The above command uses the following arguments:
 
    * `--cache-dir`: The cache directory on the machine running the command.
-   * `--destination-token`: A personal access token for the destination enterprise instance.
+   * `--destination-token`: A {% data variables.product.pat_generic %} for the destination enterprise instance.
    * `--destination-url`: The URL of the destination enterprise instance.
    * `--repo-name`: The action repository to sync. This takes the format of `owner/repository:destination_owner/destination_repository`.
      
diff --git a/content/admin/github-actions/managing-access-to-actions-from-githubcom/using-the-latest-version-of-the-official-bundled-actions.md b/content/admin/github-actions/managing-access-to-actions-from-githubcom/using-the-latest-version-of-the-official-bundled-actions.md
index 5d4d770631..c75e4e6eef 100644
--- a/content/admin/github-actions/managing-access-to-actions-from-githubcom/using-the-latest-version-of-the-official-bundled-actions.md
+++ b/content/admin/github-actions/managing-access-to-actions-from-githubcom/using-the-latest-version-of-the-official-bundled-actions.md
@@ -50,7 +50,7 @@ Once {% data variables.product.prodname_github_connect %} is configured, you can
    {% ifversion ghes > 3.2 or ghae %}
    {% note %}
 
-   **Note:** The first time the `checkout` action is used from {% data variables.product.prodname_dotcom_the_website %}, the `actions/checkout` namespace is automatically retired on {% data variables.product.product_location %}. If you ever want to revert to using a local copy of the action, you first need to remove the namespace from retirement. For more information, see "[Automatic retirement of namespaces for actions accessed on {% data variables.product.prodname_dotcom_the_website%}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#automatic-retirement-of-namespaces-for-actions-accessed-on-githubcom)."
+   **Note:** The first time the `checkout` action is used from {% data variables.product.prodname_dotcom_the_website %}, the `actions/checkout` namespace is automatically retired on {% data variables.location.product_location %}. If you ever want to revert to using a local copy of the action, you first need to remove the namespace from retirement. For more information, see "[Automatic retirement of namespaces for actions accessed on {% data variables.product.prodname_dotcom_the_website%}](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect#automatic-retirement-of-namespaces-for-actions-accessed-on-githubcom)."
 
    {% endnote %}
    {% endif %}
diff --git a/content/admin/identity-and-access-management/index.md b/content/admin/identity-and-access-management/index.md
index 100327b51f..477ee3ba03 100644
--- a/content/admin/identity-and-access-management/index.md
+++ b/content/admin/identity-and-access-management/index.md
@@ -1,6 +1,6 @@
 ---
 title: Identity and access management
-intro: 'You can configure how people access {% ifversion ghec or ghae %}your enterprise on {% data variables.product.product_name %}{% elsif ghes %}{% data variables.product.product_location %}{% endif %}.'
+intro: 'You can configure how people access {% ifversion ghec or ghae %}your enterprise on {% data variables.product.product_name %}{% elsif ghes %}{% data variables.location.product_location %}{% endif %}.'
 redirect_from:
   - /enterprise/admin/authentication
   - /admin/authentication
diff --git a/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise.md b/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise.md
index 0ad52e007b..3466c75d14 100644
--- a/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise.md
+++ b/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise.md
@@ -1,7 +1,7 @@
 ---
 title: About authentication for your enterprise
 shortTitle: About authentication
-intro: 'You {% ifversion ghae %}must configure SAML single sign-on (SSO) so people can{% else %}can choose how people{% endif %} authenticate to access {% ifversion ghec %}your enterprise''s resources on {% data variables.product.product_name %}{% elsif ghes %}{% data variables.product.product_location %}{% elsif ghae %}your enterprise on {% data variables.product.product_name %}{% endif %}.'
+intro: 'You {% ifversion ghae %}must configure SAML single sign-on (SSO) so people can{% else %}can choose how people{% endif %} authenticate to access {% ifversion ghec %}your enterprise''s resources on {% data variables.product.product_name %}{% elsif ghes %}{% data variables.location.product_location %}{% elsif ghae %}your enterprise on {% data variables.product.product_name %}{% endif %}.'
 versions:
   ghec: '*'
   ghes: '*'
@@ -29,23 +29,23 @@ After learning more about these options, to determine which method is best for y
 
 The following options are available for account management and authentication on {% data variables.product.product_name %}.
 
-- [Authentication through {% data variables.product.product_location %}](#authentication-through-githubcom)
-- [Authentication through {% data variables.product.product_location %} with additional SAML access restriction](#authentication-through-githubcom-with-additional-saml-access-restriction)
+- [Authentication through {% data variables.location.product_location %}](#authentication-through-githubcom)
+- [Authentication through {% data variables.location.product_location %} with additional SAML access restriction](#authentication-through-githubcom-with-additional-saml-access-restriction)
 - [Authentication with {% data variables.product.prodname_emus %} and federation](#authentication-with-enterprise-managed-users-and-federation)
 
-### Authentication through {% data variables.product.product_location %}
+### Authentication through {% data variables.location.product_location %}
 
-By default, each member must create a personal account on {% data variables.product.product_location %}. You grant access to your enterprise, and the member can access your enterprise's resources after signing into the account on {% data variables.product.product_location %}. The member manages the account, and can contribute to other enterprises, organizations, and repositories on {% data variables.product.product_location %}.
+By default, each member must create a personal account on {% data variables.location.product_location %}. You grant access to your enterprise, and the member can access your enterprise's resources after signing into the account on {% data variables.location.product_location %}. The member manages the account, and can contribute to other enterprises, organizations, and repositories on {% data variables.location.product_location %}.
 
-### Authentication through {% data variables.product.product_location %} with additional SAML access restriction
+### Authentication through {% data variables.location.product_location %} with additional SAML access restriction
 
-If you configure additional SAML access restriction, each member must create and manage a personal account on {% data variables.product.product_location %}. You grant access to your enterprise, and the member can access your enterprise's resources after both signing into the account on {% data variables.product.product_location %} and successfully authenticating with your SAML identity provider (IdP). The member can contribute to other enterprises, organizations, and repositories on {% data variables.product.product_location %} using their personal account. For more information about requiring SAML authentication for all access your enterprise's resources, see "[About SAML for enterprise IAM](/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam)."
+If you configure additional SAML access restriction, each member must create and manage a personal account on {% data variables.location.product_location %}. You grant access to your enterprise, and the member can access your enterprise's resources after both signing into the account on {% data variables.location.product_location %} and successfully authenticating with your SAML identity provider (IdP). The member can contribute to other enterprises, organizations, and repositories on {% data variables.location.product_location %} using their personal account. For more information about requiring SAML authentication for all access your enterprise's resources, see "[About SAML for enterprise IAM](/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam)."
 
 If you use a standalone organization with {% data variables.product.product_name %}, or if you don't want to use SAML authentication for every organization in your enterprise, you can configure SAML for an individual organization. For more information, see "[About identity and access management with SAML single sign-on](/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on)."
 
 ### Authentication with {% data variables.product.prodname_emus %} and federation
 
-If you need more control of the accounts for your enterprise members on {% data variables.product.product_location %}, you can use {% data variables.product.prodname_emus %}. With {% data variables.product.prodname_emus %}, you provision and manage accounts for your enterprise members on {% data variables.product.product_location %} using your IdP. Each member signs into an account that you create, and your enterprise manages the account. Contributions to the rest of {% data variables.product.prodname_dotcom_the_website %} are restricted. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users)."
+If you need more control of the accounts for your enterprise members on {% data variables.location.product_location %}, you can use {% data variables.product.prodname_emus %}. With {% data variables.product.prodname_emus %}, you provision and manage accounts for your enterprise members on {% data variables.location.product_location %} using your IdP. Each member signs into an account that you create, and your enterprise manages the account. Contributions to the rest of {% data variables.product.prodname_dotcom_the_website %} are restricted. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users)."
 
 ## Identifying the best authentication method for your enterprise
 
@@ -76,29 +76,29 @@ You can use {% data variables.product.prodname_emus %} with an unsupported IdP o
 
 ### Do your developers work in public repositories, gists, or {% data variables.product.prodname_pages %} sites?
 
-To prevent enterprise members from accidentally leaking corporate-owned content to the public on {% data variables.product.prodname_dotcom_the_website %}, {% data variables.product.prodname_emus %} imposes strong restrictions on what users can do. For example, {% data variables.product.prodname_managed_users %} cannot create public repositories, gists of any visibility, or {% data variables.product.prodname_pages %} sites that are visible outside the enterprise. For a full list of restrictions, see "[Abilities and restrictions of {% data variables.product.prodname_managed_users %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users#abilities-and-restrictions-of-managed-users)."
+To prevent enterprise members from accidentally leaking corporate-owned content to the public on {% data variables.product.prodname_dotcom_the_website %}, {% data variables.product.prodname_emus %} imposes strong restrictions on what users can do. For example, {% data variables.enterprise.prodname_managed_users %} cannot create public repositories, gists of any visibility, or {% data variables.product.prodname_pages %} sites that are visible outside the enterprise. For a full list of restrictions, see "[Abilities and restrictions of {% data variables.enterprise.prodname_managed_users %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users#abilities-and-restrictions-of-managed-users)."
 
 These restrictions are unacceptable for some enterprises. To determine whether {% data variables.product.prodname_emus %} will work for you, review the restrictions with your developers, and confirm whether any of the restrictions will hinder your existing workflows. If so, SAML SSO may be a better choice for your enterprise.
 
 ### Do your developers rely on collaboration outside of your enterprise?
 
-{% data variables.product.prodname_managed_users_caps %} can only contribute to repositories within your enterprise. If your developers must contribute to both repositories within and outside of your enterprise, including private repositories, {% data variables.product.prodname_emus %} may not be right for your enterprise. SAML SSO may be a better solution.
+{% data variables.enterprise.prodname_managed_users_caps %} can only contribute to repositories within your enterprise. If your developers must contribute to both repositories within and outside of your enterprise, including private repositories, {% data variables.product.prodname_emus %} may not be right for your enterprise. SAML SSO may be a better solution.
 
-Some companies maintain repositories within an existing enterprise using SAML SSO on {% data variables.product.product_location %}, and also create an {% data variables.product.prodname_emu_enterprise %}. Developers who contribute to repositories owned by both enterprises from a single workstation must switch between the accounts on {% data variables.product.product_location %} within a single browser, or use a different browser for each account. The developer may also need to customize the workstation's Git configuration to accommodate the two accounts. The complexity of this workflow can increase the risk of mistakenly leaking internal code to the public.
+Some companies maintain repositories within an existing enterprise using SAML SSO on {% data variables.location.product_location %}, and also create an {% data variables.enterprise.prodname_emu_enterprise %}. Developers who contribute to repositories owned by both enterprises from a single workstation must switch between the accounts on {% data variables.location.product_location %} within a single browser, or use a different browser for each account. The developer may also need to customize the workstation's Git configuration to accommodate the two accounts. The complexity of this workflow can increase the risk of mistakenly leaking internal code to the public.
 
-If you decide to create an {% data variables.product.prodname_emu_enterprise %} but require that developers contribute to resources outside of the enterprise from a single workstation, you can provide support for switching between the accounts in a developer's local Git configuration. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users#supporting-developers-with-multiple-user-accounts-on-githubcom)."
+If you decide to create an {% data variables.enterprise.prodname_emu_enterprise %} but require that developers contribute to resources outside of the enterprise from a single workstation, you can provide support for switching between the accounts in a developer's local Git configuration. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users#supporting-developers-with-multiple-user-accounts-on-githubcom)."
 
 ### Does your enterprise rely on outside collaborators?
 
 With SAML SSO, you can give access to specific repositories to people who are not members of your IdP's directory, by using the outside collaborator role. This can be especially useful for collaborators that are external to your business, such as contractors. For more information, see "[Adding outside collaborators to repositories in your organization](/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization)."
 
-With {% data variables.product.prodname_emus %}, the outside collaborator role does not exist. Your enterprise's resources can only be accessed by {% data variables.product.prodname_managed_users %}, which are always provisioned by your IdP. To give external collaborators access to your enterprise, you would have to use guest accounts in your IdP. If you're interested in {% data variables.product.prodname_emus %}, confirm with your developers whether this will hinder any of their existing workflows. If so, SAML SSO may be a better solution.
+With {% data variables.product.prodname_emus %}, the outside collaborator role does not exist. Your enterprise's resources can only be accessed by {% data variables.enterprise.prodname_managed_users %}, which are always provisioned by your IdP. To give external collaborators access to your enterprise, you would have to use guest accounts in your IdP. If you're interested in {% data variables.product.prodname_emus %}, confirm with your developers whether this will hinder any of their existing workflows. If so, SAML SSO may be a better solution.
 
 ### Can your enterprise tolerate migration costs?
 
 If your enterprise is new to {% data variables.product.prodname_dotcom_the_website %}, SAML SSO and {% data variables.product.prodname_emus %} are equally easy to adopt.
 
-If you're already using {% data variables.product.prodname_dotcom_the_website %} with developers managing their own user accounts, adopting {% data variables.product.prodname_emus %} requires migrating to a new enterprise account. For more information, see "[About enterprises with {% data variables.product.prodname_managed_users %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users#about-enterprises-with-managed-users)."
+If you're already using {% data variables.product.prodname_dotcom_the_website %} with developers managing their own user accounts, adopting {% data variables.product.prodname_emus %} requires migrating to a new enterprise account. For more information, see "[About enterprises with {% data variables.enterprise.prodname_managed_users %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users#about-enterprises-with-managed-users)."
 
 Although {% data variables.product.prodname_emus %} is free, the migration process may require time or cost from your team. Confirm that this migration process is acceptable to your business and your developers. If not, SAML SSO may be the better choice for you.
 
@@ -119,7 +119,7 @@ The following authentication methods are available for {% data variables.product
 
 ### External authentication
 
-If you use an external directory or identity provider (IdP) to centralize access to multiple web applications, you may be able to configure external authentication for {% data variables.product.product_location %}. For more information, see the following.
+If you use an external directory or identity provider (IdP) to centralize access to multiple web applications, you may be able to configure external authentication for {% data variables.location.product_location %}. For more information, see the following.
 
 - "[Using CAS for enterprise IAM](/admin/identity-and-access-management/using-cas-for-enterprise-iam)"
 - "[Using LDAP for enterprise IAM](/admin/identity-and-access-management/using-ldap-for-enterprise-iam)"
diff --git a/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/changing-authentication-methods.md b/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/changing-authentication-methods.md
index 2965168552..85b2acf6bd 100644
--- a/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/changing-authentication-methods.md
+++ b/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/changing-authentication-methods.md
@@ -17,7 +17,7 @@ topics:
   - Identity
 shortTitle: Change authentication methods
 ---
-User accounts on {% data variables.product.product_location %} are preserved when you change the authentication method and users will continue to log into the same account as long as their username doesn't change.
+User accounts on {% data variables.location.product_location %} are preserved when you change the authentication method and users will continue to log into the same account as long as their username doesn't change.
 
 If the new method of authentication changes usernames, new accounts will be created. As an administrator, you can rename users through the site admin settings or by using [the User Administration API](/rest/reference/enterprise-admin#update-the-username-for-a-user).
 
@@ -33,10 +33,10 @@ Other issues you should take into consideration include:
 
 * **Group membership:** When you use LDAP to authenticate, users are automatically [suspended and unsuspended](/enterprise/admin/guides/user-management/suspending-and-unsuspending-users) based on restricted group membership and account status with Active Directory.
 
-* **Git authentication:** SAML and CAS only supports Git authentication over HTTP or HTTPS using a [personal access token](/articles/creating-an-access-token-for-command-line-use). Password authentication over HTTP or HTTPS is not supported. LDAP supports password-based Git authentication by default, but we recommend that you [disable that method](/enterprise/admin/authentication/using-ldap#disabling-password-authentication-for-git-operations) and force authentication via a personal access token or SSH key.
+* **Git authentication:** SAML and CAS only supports Git authentication over HTTP or HTTPS using a [{% data variables.product.pat_generic %}](/articles/creating-an-access-token-for-command-line-use). Password authentication over HTTP or HTTPS is not supported. LDAP supports password-based Git authentication by default, but we recommend that you [disable that method](/enterprise/admin/authentication/using-ldap#disabling-password-authentication-for-git-operations) and force authentication via a {% data variables.product.pat_generic %} or SSH key.
 
-* **API authentication:** SAML and CAS only supports API authentication using a [personal access token](/articles/creating-an-access-token-for-command-line-use). Basic authentication is not supported.
+* **API authentication:** SAML and CAS only supports API authentication using a [{% data variables.product.pat_generic %}](/articles/creating-an-access-token-for-command-line-use). Basic authentication is not supported.
 
 * **Two-factor authentication:** {% data reusables.enterprise_user_management.external_auth_disables_2fa %}
 
-* **Fallback authentication for users with no account on your external authentication provider:** You can invite users to authenticate to {% data variables.product.product_location %} without adding them to your identity provider. For more information, see "[Allowing built-in authentication for users outside your provider](/admin/identity-and-access-management/managing-iam-for-your-enterprise/allowing-built-in-authentication-for-users-outside-your-provider)."
+* **Fallback authentication for users with no account on your external authentication provider:** You can invite users to authenticate to {% data variables.location.product_location %} without adding them to your identity provider. For more information, see "[Allowing built-in authentication for users outside your provider](/admin/identity-and-access-management/managing-iam-for-your-enterprise/allowing-built-in-authentication-for-users-outside-your-provider)."
diff --git a/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/index.md b/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/index.md
index 8ad5bff2e7..f43f417986 100644
--- a/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/index.md
+++ b/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/index.md
@@ -2,7 +2,7 @@
 title: Managing IAM for your enterprise
 intro: |
   {%- ifversion ghec %}
-  You can invite existing personal accounts on {% data variables.product.product_location %} to be members of your enterprise, and you can optionally enable SAML single sign-on (SSO) to centrally manage access. Alternatively, you can use {% data variables.product.prodname_emus %} with SAML SSO to create and control the accounts of your enterprise members.
+  You can invite existing personal accounts on {% data variables.location.product_location %} to be members of your enterprise, and you can optionally enable SAML single sign-on (SSO) to centrally manage access. Alternatively, you can use {% data variables.product.prodname_emus %} with SAML SSO to create and control the accounts of your enterprise members.
   {%- elsif ghes %}
   You can use {% data variables.product.product_name %}'s built-in authentication, or you can centrally manage authentication and access to your instance with CAS, LDAP, or SAML.
   {%- elsif ghae %}
diff --git a/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md b/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md
index 822f11384e..138d9b40d8 100644
--- a/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md
+++ b/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md
@@ -30,13 +30,15 @@ topics:
 
 You can configure external authentication for {% data variables.product.product_name %} using CAS, LDAP, or SAML. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server)."
 
-When you use external authentication, {% data variables.product.product_location %} automatically creates a username for each person when the person signs into {% data variables.product.product_location %} through your external authentication system for the first time.
+When you use external authentication, {% data variables.location.product_location %} automatically creates a username for each person when the person signs into {% data variables.location.product_location %} through your external authentication system for the first time.
 
 {% elsif ghec %}
 
 If you use an enterprise with {% data variables.product.prodname_emus %}, members of your enterprise authenticate to access {% data variables.product.prodname_dotcom %} through your SAML identity provider (IdP). For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users)" and "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server)."
 
-{% data variables.product.product_name %} automatically creates a username for each person when their user account is provisioned via SCIM, by normalizing an identifier provided by your IdP. If multiple identifiers are normalized into the same username, a username conflict occurs, and only the first user account is created. {% data reusables.enterprise-accounts.emu-only-emails-within-the-enterprise-can-conflict %} You can resolve username conflicts by making a change in your IdP so that the normalized usernames will be unique.
+{% data variables.product.prodname_dotcom %} automatically creates a username for each person when their user account is provisioned via SCIM, by normalizing an identifier provided by your IdP, then adding an underscore and short code. If multiple identifiers are normalized into the same username, a username conflict occurs, and only the first user account is created. You can resolve username problems by making a change in your IdP so that the normalized usernames will be unique and within the 39-character limit.
+
+{% data reusables.enterprise-accounts.emu-only-emails-within-the-enterprise-can-conflict %}
 
 {% elsif ghae %}
 
@@ -45,11 +47,11 @@ If you use an enterprise with {% data variables.product.prodname_emus %}, member
 {% endif %}
 
 {% ifversion ghec %}
-## About usernames for {% data variables.product.prodname_managed_users %}
+## About usernames for {% data variables.enterprise.prodname_managed_users %}
 
-When your {% data variables.product.prodname_emu_enterprise %} is created, you will choose a short code that will be used as the suffix for your enterprise members' usernames. {% data reusables.enterprise-accounts.emu-shortcode %} The setup user who configures SAML SSO has a username in the format of **@SHORT-CODE_admin**. 
+When your {% data variables.enterprise.prodname_emu_enterprise %} is created, you will choose a short code that will be used as the suffix for your enterprise members' usernames. {% data reusables.enterprise-accounts.emu-shortcode %} The setup user who configures SAML SSO has a username in the format of **@SHORT-CODE_admin**. 
 
-When you provision a new user from your identity provider, the new {% data variables.product.prodname_managed_user %} will have a {% data variables.product.prodname_dotcom %} username in the format of **@IDP-USERNAME_SHORT-CODE**. The IDP-USERNAME component is formed by normalizing the SCIM `userName` attribute value sent from the IdP. 
+When you provision a new user from your identity provider, the new {% data variables.enterprise.prodname_managed_user %} will have a {% data variables.product.prodname_dotcom %} username in the format of **@IDP-USERNAME_SHORT-CODE**. The IDP-USERNAME component is formed by normalizing the SCIM `userName` attribute value sent from the IdP. 
 
 | Identity provider                 | {% data variables.product.prodname_dotcom %} username  |
 |-----------------------------------|----------------------|
@@ -62,7 +64,7 @@ These rules may result in your IdP providing the same _IDP-USERNAME_ for multipl
 - `bob@fabrikam.com`
 - `bob#EXT#fabrikamcom@contoso.com`
 
-This will cause a username conflict, and only the first user will be provisioned. For more information, see "[Resolving username conflicts](#resolving-username-conflicts)."
+This will cause a username conflict, and only the first user will be provisioned. For more information, see "[Resolving username problems](#resolving-username-problems)."
 {% endif %}
 
 Usernames{% ifversion ghec %}, including underscore and short code,{% endif %} must not exceed 39 characters.
@@ -83,7 +85,7 @@ When you configure SAML authentication, {% data variables.product.product_name %
 
 1. Usernames created from email addresses are created from the normalized characters that precede the `@` character.
 
-1. If multiple accounts are normalized into the same {% data variables.product.product_name %} username, only the first user account is created. Subsequent users with the same username won't be able to sign in. {% ifversion ghec %}For more information, see "[Resolving username conflicts](#resolving-username-conflicts)."{% endif %}
+1. If multiple accounts are normalized into the same {% data variables.product.product_name %} username, only the first user account is created. Subsequent users with the same username won't be able to sign in. {% ifversion ghec %}For more information, see "[Resolving username problems](#resolving-username-problems)."{% endif %}
 
 ### Examples of username normalization
 
@@ -100,7 +102,7 @@ When you configure SAML authentication, {% data variables.product.product_name %
 {% ifversion not ghec %}
 ### About username normalization with SAML
 
-{% ifversion ghes %}If you configure SAML authentication for {% data variables.product.product_location %}, {% endif %}{% data variables.product.product_name %} determines each person's username by one of the following assertions in the SAML response, ordered by descending priority.
+{% ifversion ghes %}If you configure SAML authentication for {% data variables.location.product_location %}, {% endif %}{% data variables.product.product_name %} determines each person's username by one of the following assertions in the SAML response, ordered by descending priority.
 
 1. The custom `username` attribute, if defined and present
 1. An `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` assertion, if present
@@ -109,23 +111,28 @@ When you configure SAML authentication, {% data variables.product.product_name %
 
 {% data variables.product.product_name %} requires the `NameID` element even if other attributes are present. For more information, see "[SAML configuration reference](/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference#saml-attributes)."
 
-{% data variables.product.product_name %} creates a mapping between the `NameID` from the IdP and the username {% ifversion ghae %}in{% else %}on{% endif %} {% data variables.product.product_location %}, so the `NameID` should be persistent, unique, and not subject to change for the lifecycle of the user.
+{% data variables.product.product_name %} creates a mapping between the `NameID` from the IdP and the username {% ifversion ghae %}in{% else %}on{% endif %} {% data variables.location.product_location %}, so the `NameID` should be persistent, unique, and not subject to change for the lifecycle of the user.
 
 {% ifversion ghes %}
 {% note %}
 
-**Note**: If the `NameID` for a user does change on the IdP, the person will see an error message when signing into {% data variables.product.product_location %}. To restore the person's access, you'll need to update the user account's `NameID` mapping. For more information, see "[Updating a user's SAML `NameID`](/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid)."
+**Note**: If the `NameID` for a user does change on the IdP, the person will see an error message when signing into {% data variables.location.product_location %}. To restore the person's access, you'll need to update the user account's `NameID` mapping. For more information, see "[Updating a user's SAML `NameID`](/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid)."
 
 {% endnote %}
 {% endif %}
 {% endif %}
 
 {% ifversion ghec %}
-## Resolving username conflicts
+## Resolving username problems
 
-When a new user is being provisioned, if the user's normalized username conflicts with an existing user in the enterprise, the provisioning attempt will fail with a `409` error. 
+When a new user is being provisioned, if the username is longer than 39 characters (including underscore and short code), or conflicts with an existing user in the enterprise, the provisioning attempt will fail with a `409` error. 
 
-To resolve this problem, you must make a change in your IdP so that the normalized usernames will be unique. If you cannot change the identifier that's being normalized, you can change the attribute mapping for the `userName` attribute. If you change the attribute mapping, usernames of existing {% data variables.product.prodname_managed_users %} will be updated, but nothing else about the accounts will change, including activity history.
+To resolve this problem, you must make one of the following changes in your IdP so that all normalized usernames will be within the character limit and unique.
+- Change the `userName` attribute value for individual users that are causing problems
+- Change the `userName` attribute mapping for all users
+- Configure a custom `userName` attribute for all users
+
+When you change the attribute mapping, usernames of existing {% data variables.enterprise.prodname_managed_users %} will be updated, but nothing else about the accounts will change, including activity history.
 
 {% note %}
 
@@ -133,9 +140,9 @@ To resolve this problem, you must make a change in your IdP so that the normaliz
 
 {% endnote %}
 
-### Resolving username conflicts with Azure AD
+### Resolving username problems with Azure AD
 
-To resolve username conflicts in Azure AD, either modify the User Principal Name value for the conflicting user or modify the attribute mapping for the `userName` attribute. If you modify the attribute mapping, you can choose an existing attribute or use an expression to ensure that all provisioned users have a unique normalized alias.
+To resolve username problems in Azure AD, either modify the User Principal Name value for the conflicting user or modify the attribute mapping for the `userName` attribute. If you modify the attribute mapping, you can choose an existing attribute or use an expression to ensure that all provisioned users have a unique normalized alias.
 
 1. In Azure AD, open the {% data variables.product.prodname_emu_idp_application %} application.
 1. In the left sidebar, click **Provisioning**.
@@ -146,9 +153,9 @@ To resolve username conflicts in Azure AD, either modify the User Principal Name
    - To map an existing attribute in Azure AD to the `userName` attribute in {% data variables.product.prodname_dotcom %}, click your desired attribute field. Then, save and wait for a provisioning cycle to occur within about 40 minutes.
    - To use an expression instead of an existing attribute, change the Mapping type to "Expression", then add a custom expression that will make this value unique for all users. For example, you could use `[FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]`. For more information, see [Reference for writing expressions for attribute mappings in Azure Active Directory](https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/functions-for-customizing-application-data) in Microsoft Docs.
 
-### Resolving username conflicts with Okta
+### Resolving username problems with Okta
 
-To resolve username conflicts in Okta, update the attribute mapping settings for the {% data variables.product.prodname_emu_idp_application %} application.
+To resolve username problems in Okta, update the attribute mapping settings for the {% data variables.product.prodname_emu_idp_application %} application.
 
 1. In Okta, open the {% data variables.product.prodname_emu_idp_application %} application.
 1. Click **Sign On**.
diff --git a/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes.md b/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes.md
index 9c6996ef2b..48536e3ec9 100644
--- a/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes.md
+++ b/content/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes.md
@@ -15,7 +15,7 @@ redirect_from:
 permissions: Enterprise owners can download the SSO recovery codes for the enterprise account.
 ---
 
-In the event that your IdP is unavailable, you can use a recovery code to sign in and access your enterprise on {% data variables.product.product_location %}. For more information, see "[Accessing your enterprise account if your identity provider is unavailable](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/accessing-your-enterprise-account-if-your-identity-provider-is-unavailable)."
+In the event that your IdP is unavailable, you can use a recovery code to sign in and access your enterprise on {% data variables.location.product_location %}. For more information, see "[Accessing your enterprise account if your identity provider is unavailable](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise/accessing-your-enterprise-account-if-your-identity-provider-is-unavailable)."
 
 If you did not save your recovery codes when you configured SSO, you can still access the codes from your enterprise's settings.
 
diff --git a/content/admin/identity-and-access-management/using-built-in-authentication/configuring-built-in-authentication.md b/content/admin/identity-and-access-management/using-built-in-authentication/configuring-built-in-authentication.md
index 0805543241..50f7970f7e 100644
--- a/content/admin/identity-and-access-management/using-built-in-authentication/configuring-built-in-authentication.md
+++ b/content/admin/identity-and-access-management/using-built-in-authentication/configuring-built-in-authentication.md
@@ -1,6 +1,6 @@
 ---
 title: Configuring built-in authentication
-intro: 'When you use the default authentication method, all authentication details are stored on {% data variables.product.product_location %}.'
+intro: 'When you use the default authentication method, all authentication details are stored on {% data variables.location.product_location %}.'
 permissions: 'Site administrators can configure authentication for a {% data variables.product.product_name %} instance.'
 redirect_from:
   - /enterprise/admin/user-management/using-built-in-authentication
@@ -21,7 +21,7 @@ shortTitle: Configure built-in authentication
 
 ## About built-in authentication
 
-By default, {% data variables.product.product_name %} uses built-in authentication. Each person creates a user account on {% data variables.product.product_location %} from an invitation or by signing up, and then authenticates with the credentials for the account to access your instance. Your {% data variables.product.product_name %} instance stores the authentication information for the account.
+By default, {% data variables.product.product_name %} uses built-in authentication. Each person creates a user account on {% data variables.location.product_location %} from an invitation or by signing up, and then authenticates with the credentials for the account to access your instance. Your {% data variables.product.product_name %} instance stores the authentication information for the account.
 
 You can prevent unauthenticated people from creating new user accounts on your instance. For more information, see "[Disabling unauthenticated sign-ups](/admin/identity-and-access-management/using-built-in-authentication/disabling-unauthenticated-sign-ups)."
 
diff --git a/content/admin/identity-and-access-management/using-built-in-authentication/disabling-unauthenticated-sign-ups.md b/content/admin/identity-and-access-management/using-built-in-authentication/disabling-unauthenticated-sign-ups.md
index c90a5e19fb..040dd977c6 100644
--- a/content/admin/identity-and-access-management/using-built-in-authentication/disabling-unauthenticated-sign-ups.md
+++ b/content/admin/identity-and-access-management/using-built-in-authentication/disabling-unauthenticated-sign-ups.md
@@ -7,7 +7,7 @@ redirect_from:
   - /admin/authentication/disabling-unauthenticated-sign-ups
   - /enterprise/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/disabling-unauthenticated-sign-ups
   - /admin/identity-and-access-management/authenticating-users-for-your-github-enterprise-server-instance/disabling-unauthenticated-sign-ups
-intro: 'If you''re using built-in authentication for {% data variables.product.product_location %}, you can block unauthenticated people from creating new user accounts on your instance.'
+intro: 'If you''re using built-in authentication for {% data variables.location.product_location %}, you can block unauthenticated people from creating new user accounts on your instance.'
 permissions: 'Site administrators can disable unauthenticated sign-ups on a {% data variables.product.product_name %} instance.'
 versions:
   ghes: '*'
diff --git a/content/admin/identity-and-access-management/using-built-in-authentication/inviting-people-to-use-your-instance.md b/content/admin/identity-and-access-management/using-built-in-authentication/inviting-people-to-use-your-instance.md
index d0c1a70509..826da0bc57 100644
--- a/content/admin/identity-and-access-management/using-built-in-authentication/inviting-people-to-use-your-instance.md
+++ b/content/admin/identity-and-access-management/using-built-in-authentication/inviting-people-to-use-your-instance.md
@@ -27,4 +27,4 @@ You can disable unauthenticated sign-ups and require an invitation to create a n
 {% data reusables.enterprise_site_admin_settings.invite-user-sidebar-tab %}
 {% data reusables.enterprise_site_admin_settings.invite-user-reset-link %}
 
-If you've configured email for notifications on {% data variables.product.product_location %}, your instance will send the invitation to the provided email address. For more information, see "[Configuring email for notifications](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications)."
+If you've configured email for notifications on {% data variables.location.product_location %}, your instance will send the invitation to the provided email address. For more information, see "[Configuring email for notifications](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications)."
diff --git a/content/admin/identity-and-access-management/using-cas-for-enterprise-iam/index.md b/content/admin/identity-and-access-management/using-cas-for-enterprise-iam/index.md
index d69a4b62dc..eb31c71027 100644
--- a/content/admin/identity-and-access-management/using-cas-for-enterprise-iam/index.md
+++ b/content/admin/identity-and-access-management/using-cas-for-enterprise-iam/index.md
@@ -1,7 +1,7 @@
 ---
 title: Using CAS for enterprise IAM
 shortTitle: CAS for enterprise IAM
-intro: 'You can centrally manage accounts and access to {% data variables.product.product_location %} by integrating with your existing CAS identity provider (IdP).'
+intro: 'You can centrally manage accounts and access to {% data variables.location.product_location %} by integrating with your existing CAS identity provider (IdP).'
 versions:
   ghes: '*'
 children:
diff --git a/content/admin/identity-and-access-management/using-cas-for-enterprise-iam/using-cas.md b/content/admin/identity-and-access-management/using-cas-for-enterprise-iam/using-cas.md
index e6bf80e26a..80a7879125 100644
--- a/content/admin/identity-and-access-management/using-cas-for-enterprise-iam/using-cas.md
+++ b/content/admin/identity-and-access-management/using-cas-for-enterprise-iam/using-cas.md
@@ -24,9 +24,9 @@ topics:
 
 CAS is a single sign-on (SSO) protocol that centralizes authentication to multiple web applications. For more information, see "[Central Authentication Service](https://en.wikipedia.org/wiki/Central_Authentication_Service)" on Wikipedia.
 
-After you configure CAS, people who use {% data variables.product.product_location %} must use a personal access token to authenticate API or Git requests over HTTP(S). CAS credentials cannot be used to authenticate these requests. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)."
+After you configure CAS, people who use {% data variables.location.product_location %} must use a {% data variables.product.pat_generic %} to authenticate API or Git requests over HTTP(S). CAS credentials cannot be used to authenticate these requests. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)."
 
-If you configure CAS, people with accounts on your identity provider (IdP) do not consume a user license until the person signs into {% data variables.product.product_location %}.
+If you configure CAS, people with accounts on your identity provider (IdP) do not consume a user license until the person signs into {% data variables.location.product_location %}.
 
 {% data reusables.enterprise_user_management.built-in-authentication %}
 
diff --git a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md
index 1444925cd5..a448aa318d 100644
--- a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md
+++ b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md
@@ -22,9 +22,9 @@ topics:
 
 With {% data variables.product.prodname_emus %}, you can control the user accounts of your enterprise members through your identity provider (IdP). Users assigned to the {% data variables.product.prodname_emu_idp_application %} application in your IdP are provisioned as new user accounts on {% data variables.product.prodname_dotcom %} and added to your enterprise. You control usernames, profile data, team membership, and repository access for the user accounts from your IdP.
 
-In your IdP, you can give each {% data variables.product.prodname_managed_user %} the role of user, enterprise owner, or billing manager. {% data variables.product.prodname_managed_users_caps %} can own organizations within your enterprise and can add other {% data variables.product.prodname_managed_users %} to the organizations and teams within. For more information, see "[Roles in an enterprise](/github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise/roles-in-an-enterprise)" and "[About organizations](/organizations/collaborating-with-groups-in-organizations/about-organizations)."
+In your IdP, you can give each {% data variables.enterprise.prodname_managed_user %} the role of user, enterprise owner, or billing manager. {% data variables.enterprise.prodname_managed_users_caps %} can own organizations within your enterprise and can add other {% data variables.enterprise.prodname_managed_users %} to the organizations and teams within. For more information, see "[Roles in an enterprise](/github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise/roles-in-an-enterprise)" and "[About organizations](/organizations/collaborating-with-groups-in-organizations/about-organizations)."
 
-Organization membership can be managed manually, or you can update membership automatically as {% data variables.product.prodname_managed_users %} are added to IdP groups that are connected to teams within the organization. When a {% data variables.product.prodname_managed_user %} is manually added to an organization, unassigning them from the {% data variables.product.prodname_emu_idp_application %} application on your IdP will suspend the user but not remove them from the organization. For more information about managing organization and team membership automatically, see "[Managing team memberships with identity provider groups](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/managing-team-memberships-with-identity-provider-groups)."
+Organization membership can be managed manually, or you can update membership automatically as {% data variables.enterprise.prodname_managed_users %} are added to IdP groups that are connected to teams within the organization. When a {% data variables.enterprise.prodname_managed_user %} is manually added to an organization, unassigning them from the {% data variables.product.prodname_emu_idp_application %} application on your IdP will suspend the user but not remove them from the organization. For more information about managing organization and team membership automatically, see "[Managing team memberships with identity provider groups](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/managing-team-memberships-with-identity-provider-groups)."
 
 {% ifversion oidc-for-emu %}
 
@@ -32,11 +32,11 @@ Organization membership can be managed manually, or you can update membership au
 
 {% endif %}
 
-You can grant {% data variables.product.prodname_managed_users %} access to and the ability to contribute to repositories within your enterprise, but {% data variables.product.prodname_managed_users %} cannot create public content or collaborate with other users, organizations, and enterprises on the rest of {% data variables.product.prodname_dotcom %}. For more information, see "[Abilities and restrictions of {% data variables.product.prodname_managed_users %}](#abilities-and-restrictions-of-enterprise-managed-users)."
+You can grant {% data variables.enterprise.prodname_managed_users %} access to and the ability to contribute to repositories within your enterprise, but {% data variables.enterprise.prodname_managed_users %} cannot create public content or collaborate with other users, organizations, and enterprises on the rest of {% data variables.product.prodname_dotcom %}. For more information, see "[Abilities and restrictions of {% data variables.enterprise.prodname_managed_users %}](#abilities-and-restrictions-of-enterprise-managed-users)."
 
-The usernames of your enterprise's {% data variables.product.prodname_managed_users %} and their profile information, such as display names and email addresses, are set by through your IdP and cannot be changed by the users themselves. For more information, see "[Usernames and profile information](#usernames-and-profile-information)."
+The usernames of your enterprise's {% data variables.enterprise.prodname_managed_users %} and their profile information, such as display names and email addresses, are set by through your IdP and cannot be changed by the users themselves. For more information, see "[Usernames and profile information](#usernames-and-profile-information)."
 
-Enterprise owners can audit all of the {% data variables.product.prodname_managed_users %}' actions on {% data variables.product.prodname_dotcom %}. For more information, see "[Audit log events for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise#about-audit-log-events-for-your-enterprise)."
+Enterprise owners can audit all of the {% data variables.enterprise.prodname_managed_users %}' actions on {% data variables.product.prodname_dotcom %}. For more information, see "[Audit log events for your enterprise](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise#about-audit-log-events-for-your-enterprise)."
 
 To use {% data variables.product.prodname_emus %}, you need a separate type of enterprise account with {% data variables.product.prodname_emus %} enabled. For more information about creating this account, see "[About enterprises with managed users](#about-enterprises-with-managed-users)."
 
@@ -60,24 +60,25 @@ To use {% data variables.product.prodname_emus %}, you need a separate type of e
 
 {% endif %}
 
-## Abilities and restrictions of {% data variables.product.prodname_managed_users %}
+## Abilities and restrictions of {% data variables.enterprise.prodname_managed_users %}
 
-{% data variables.product.prodname_managed_users_caps %} can only contribute to private and internal repositories within their enterprise and private repositories owned by their user account. {% data variables.product.prodname_managed_users_caps %} have read-only access to the wider {% data variables.product.prodname_dotcom %} community. These visibility and access restrictions for users and content apply to all requests, including API requests.
+{% data variables.enterprise.prodname_managed_users_caps %} can only contribute to private and internal repositories within their enterprise and private repositories owned by their user account. {% data variables.enterprise.prodname_managed_users_caps %} have read-only access to the wider {% data variables.product.prodname_dotcom %} community. These visibility and access restrictions for users and content apply to all requests, including API requests.
 
-* {% data variables.product.prodname_managed_users_caps %} cannot be invited to organizations or repositories outside of the enterprise, nor can the {% data variables.product.prodname_managed_users %} be invited to other enterprises. 
+* {% data variables.enterprise.prodname_managed_users_caps %} cannot be invited to organizations or repositories outside of the enterprise, nor can the {% data variables.enterprise.prodname_managed_users %} be invited to other enterprises. 
 * Outside collaborators are not supported by {% data variables.product.prodname_emus %}.
-* {% data variables.product.prodname_managed_users_caps %} cannot create issues or pull requests in, comment or add reactions to, nor star, watch, or fork repositories outside of the enterprise.
-* {% data variables.product.prodname_managed_users_caps %} can view all public repositories on {% data variables.product.prodname_dotcom_the_website %}, but cannot push code to repositories outside of the enterprise.
-* {% data variables.product.prodname_managed_users_caps %} and the content they create is only visible to other members of the enterprise. 
-* {% data variables.product.prodname_managed_users_caps %} cannot follow users outside of the enterprise.
-* {% data variables.product.prodname_managed_users_caps %} cannot create gists or comment on gists.
-* {% data variables.product.prodname_managed_users_caps %} cannot install {% data variables.product.prodname_github_apps %} on their user accounts.
-* Other {% data variables.product.prodname_dotcom %} users cannot see, mention, or invite a {% data variables.product.prodname_managed_user %} to collaborate.
-* You can choose whether {% data variables.product.prodname_managed_users %} are able to create repositories owned by their user accounts. For more information, see "[Enforcing repository management policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-repository-creation)."
-* If you allow {% data variables.product.prodname_managed_users %} to create repositories owned by their user accounts, they can only own private repositories and can only invite other enterprise members to collaborate on their user-owned repositories.
+* {% data variables.enterprise.prodname_managed_users_caps %} cannot create issues or pull requests in, comment or add reactions to, nor star, watch, or fork repositories outside of the enterprise.
+* {% data variables.enterprise.prodname_managed_users_caps %} can view all public repositories on {% data variables.product.prodname_dotcom_the_website %}, but cannot push code to repositories outside of the enterprise.
+* {% data variables.enterprise.prodname_managed_users_caps %} and the content they create is only visible to other members of the enterprise. 
+* {% data variables.enterprise.prodname_managed_users_caps %} cannot follow users outside of the enterprise.
+* {% data variables.enterprise.prodname_managed_users_caps %} cannot create gists or comment on gists.
+* {% data variables.enterprise.prodname_managed_users_caps %} cannot create starter workflows for {% data variables.product.prodname_actions %}.
+* {% data variables.enterprise.prodname_managed_users_caps %} cannot install {% data variables.product.prodname_github_apps %} on their user accounts.
+* Other {% data variables.product.prodname_dotcom %} users cannot see, mention, or invite a {% data variables.enterprise.prodname_managed_user %} to collaborate.
+* You can choose whether {% data variables.enterprise.prodname_managed_users %} are able to create repositories owned by their user accounts. For more information, see "[Enforcing repository management policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-for-repository-creation)."
+* If you allow {% data variables.enterprise.prodname_managed_users %} to create repositories owned by their user accounts, they can only own private repositories and can only invite other enterprise members to collaborate on their user-owned repositories.
 * {% data reusables.enterprise-accounts.emu-forks %}
-* Only private and internal repositories can be created in organizations owned by an {% data variables.product.prodname_emu_enterprise %}, depending on organization and enterprise repository visibility settings. 
-* {% data variables.product.prodname_managed_users_caps %} are limited in their use of {% data variables.product.prodname_pages %}. For more information, see "[About {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/about-github-pages#limitations-for-enterprise-managed-users)."
+* Only private and internal repositories can be created in organizations owned by an {% data variables.enterprise.prodname_emu_enterprise %}, depending on organization and enterprise repository visibility settings. 
+* {% data variables.enterprise.prodname_managed_users_caps %} are limited in their use of {% data variables.product.prodname_pages %}. For more information, see "[About {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/about-github-pages#limitations-for-enterprise-managed-users)."
 
 ## Getting started with {% data variables.product.prodname_emus %}
 
@@ -85,7 +86,7 @@ Before your developers can use {% data variables.product.prodname_ghe_cloud %} w
 
 1. To use {% data variables.product.prodname_emus %}, you need a separate type of enterprise account with {% data variables.product.prodname_emus %} enabled. To try out {% data variables.product.prodname_emus %} or to discuss options for migrating from your existing enterprise, please contact [{% data variables.product.prodname_dotcom %}'s Sales team](https://enterprise.github.com/contact).
   
-  Your contact on the GitHub Sales team will work with you to create your new {% data variables.product.prodname_emu_enterprise %}. You'll need to provide the email address for the user who will set up your enterprise and a short code that will be used as the suffix for your enterprise members' usernames. {% data reusables.enterprise-accounts.emu-shortcode %} For more information, see "[Usernames and profile information](#usernames-and-profile-information)."
+  Your contact on the GitHub Sales team will work with you to create your new {% data variables.enterprise.prodname_emu_enterprise %}. You'll need to provide the email address for the user who will set up your enterprise and a short code that will be used as the suffix for your enterprise members' usernames. {% data reusables.enterprise-accounts.emu-shortcode %} For more information, see "[Usernames and profile information](#usernames-and-profile-information)."
   
 2. After we create your enterprise, you will receive an email from {% data variables.product.prodname_dotcom %} inviting you to choose a password for your enterprise's setup user, which will be the first owner in the enterprise. Use an incognito or private browsing window when setting the password. The setup user is only used to configure single sign-on and SCIM provisioning integration for the enterprise. It will no longer have access to administer the enterprise account once SSO is successfully enabled. The setup user's username is your enterprise's shortcode suffixed with `_admin`. 
   
@@ -112,17 +113,17 @@ Before your developers can use {% data variables.product.prodname_ghe_cloud %} w
   
 5. Once authentication and provisioning are configured, you can start provisioning members and managing teams. For more information, see "[Managing team memberships with identity provider groups](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/managing-team-memberships-with-identity-provider-groups)."
 
-If members of your enterprise must use one workstation to contribute to repositories on {% data variables.product.product_location %} from both a  {% data variables.product.prodname_managed_user %} and a personal account, you can provide support. For more information, see "[Supporting developers with multiple user accounts on {% data variables.product.prodname_dotcom_the_website %}](#supporting-developers-with-multiple-user-accounts-on-githubcom)."
+If members of your enterprise must use one workstation to contribute to repositories on {% data variables.location.product_location %} from both a  {% data variables.enterprise.prodname_managed_user %} and a personal account, you can provide support. For more information, see "[Supporting developers with multiple user accounts on {% data variables.product.prodname_dotcom_the_website %}](#supporting-developers-with-multiple-user-accounts-on-githubcom)."
 
-## Authenticating as a {% data variables.product.prodname_managed_user %}
+## Authenticating as a {% data variables.enterprise.prodname_managed_user %}
 
-{% data variables.product.prodname_managed_users_caps %} must authenticate through their identity provider. To authenticate, a {% data variables.product.prodname_managed_user %} can visit their IdP application portal or use the login page on {% data variables.product.prodname_dotcom_the_website %}. 
+{% data variables.enterprise.prodname_managed_users_caps %} must authenticate through their identity provider. To authenticate, a {% data variables.enterprise.prodname_managed_user %} can visit their IdP application portal or use the login page on {% data variables.product.prodname_dotcom_the_website %}. 
 
 By default, when an unauthenticated user attempts to access an enterprise that uses {% data variables.product.prodname_emus %}, {% data variables.product.company_short %} displays a 404 error. An enterprise owner can optionally enable automatic redirects to single sign-on (SSO) instead of the 404. For more information, see "[Enforcing policies for security settings in your enterprise](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-sso-for-unauthenticated-users)."
 
 {% data reusables.enterprise-accounts.about-recovery-codes %} For more information, see "[Managing recovery codes for your enterprise](/admin/identity-and-access-management/managing-recovery-codes-for-your-enterprise)."
 
-### Authenticating as a {% data variables.product.prodname_managed_user %} via {% data variables.product.prodname_dotcom_the_website %}
+### Authenticating as a {% data variables.enterprise.prodname_managed_user %} via {% data variables.product.prodname_dotcom_the_website %}
 
 1. Navigate to [https://github.com/login](https://github.com/login).
 1. In the "Username or email address" text box, enter your username including the underscore and short code.
@@ -135,12 +136,14 @@ By default, when an unauthenticated user attempts to access an enterprise that u
 
 {% data variables.product.product_name %} automatically creates a username for each person by normalizing an identifier provided by your IdP. For more information, see "[Username considerations for external authentication](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication)."
 
-A conflict may occur when provisioning users if the unique parts of the identifier provided by your IdP are removed during normalization. {% data reusables.enterprise-accounts.emu-only-emails-within-the-enterprise-can-conflict %} If you're unable to provision a user due to a username conflict, you should modify the username provided by your IdP. For more information, see "[Resolving username conflicts](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication#resolving-username-conflicts)."
+A conflict may occur when provisioning users if the unique parts of the identifier provided by your IdP are removed during normalization. If you're unable to provision a user due to a username conflict, you should modify the username provided by your IdP. For more information, see "[Resolving username problems](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication#resolving-username-problems)."
 
-The profile name and email address of a {% data variables.product.prodname_managed_user %} is also provided by the IdP. {% data variables.product.prodname_managed_users_caps %} cannot change their profile name or email address on {% data variables.product.prodname_dotcom %}, and the IdP can only provide a single email address.
+{% data reusables.enterprise-accounts.emu-only-emails-within-the-enterprise-can-conflict %} 
 
-## Supporting developers with multiple user accounts on {% data variables.product.product_location %}
+The profile name and email address of a {% data variables.enterprise.prodname_managed_user %} is also provided by the IdP. {% data variables.enterprise.prodname_managed_users_caps %} cannot change their profile name or email address on {% data variables.product.prodname_dotcom %}, and the IdP can only provide a single email address.
 
-People on your team may need to contribute to resources on {% data variables.product.product_location %} that are outside of your {% data variables.product.prodname_emu_enterprise %}. For example, you may wish to maintain a separate enterprise for your company's open source projects. Because a {% data variables.product.prodname_managed_user %} cannot contribute to public resources, users will need to maintain a separate, personal account for this work.
+## Supporting developers with multiple user accounts on {% data variables.location.product_location %}
 
-People who must contribute from two user accounts on {% data variables.product.product_location %} using one workstation can configure Git to simplify the process. For more information, see "[Managing multiple accounts](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts)."
+People on your team may need to contribute to resources on {% data variables.location.product_location %} that are outside of your {% data variables.enterprise.prodname_emu_enterprise %}. For example, you may wish to maintain a separate enterprise for your company's open source projects. Because a {% data variables.enterprise.prodname_managed_user %} cannot contribute to public resources, users will need to maintain a separate, personal account for this work.
+
+People who must contribute from two user accounts on {% data variables.location.product_location %} using one workstation can configure Git to simplify the process. For more information, see "[Managing multiple accounts](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts)."
diff --git a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md
index 28d9c00c89..74dd43ee44 100644
--- a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md
+++ b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md
@@ -18,7 +18,7 @@ topics:
 
 {% data reusables.enterprise-accounts.emu-cap-validates %}
 
-CAP support is enabled automatically for any {% data variables.product.prodname_emu_enterprise %} that enables OIDC SSO and cannot be disabled. {% data variables.product.prodname_dotcom %} enforces your IdP's IP conditions but not device compliance conditions.
+CAP support is enabled automatically for any {% data variables.enterprise.prodname_emu_enterprise %} that enables OIDC SSO and cannot be disabled. {% data variables.product.prodname_dotcom %} enforces your IdP's IP conditions but not device compliance conditions.
 
 For more information about using OIDC with {% data variables.product.prodname_emus %}, see "[Configuring OIDC for Enterprise Managed Users](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users)" and "[Migrating from SAML to OIDC](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc)."
 
@@ -36,9 +36,9 @@ For more information about using OIDC with {% data variables.product.prodname_em
 
 ### {% data variables.product.prodname_actions %}
 
-Actions that use a personal access token will likely be blocked by your IdP's CAP. We recommend that personal access tokens are created by a service account which is then exempted from IP controls in your IdP's CAP. 
+Actions that use a {% data variables.product.pat_generic %} will likely be blocked by your IdP's CAP. We recommend that {% data variables.product.pat_generic %}s are created by a service account which is then exempted from IP controls in your IdP's CAP. 
 
-If you're unable to use a service account, another option for unblocking actions that use personal access tokens is to allow the IP ranges used by {% data variables.product.prodname_actions %}. For more information, see "[About GitHub's IP addresses](/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses)."
+If you're unable to use a service account, another option for unblocking actions that use {% data variables.product.pat_generic %}s is to allow the IP ranges used by {% data variables.product.prodname_actions %}. For more information, see "[About GitHub's IP addresses](/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses)."
 
 ### {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} 
 
diff --git a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users.md b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users.md
index f4871fbac2..66e9c9d84f 100644
--- a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users.md
+++ b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users.md
@@ -16,11 +16,11 @@ topics:
 
 ## About OIDC for Enterprise Managed Users
 
-With {% data variables.product.prodname_emus %}, your enterprise uses your identity provider (IdP) to authenticate all members. You can use OpenID Connect (OIDC) to manage authentication for your {% data variables.product.prodname_emu_enterprise %}. Enabling OIDC SSO is a one-click setup process with certificates managed by {% data variables.product.prodname_dotcom %} and your IdP.
+With {% data variables.product.prodname_emus %}, your enterprise uses your identity provider (IdP) to authenticate all members. You can use OpenID Connect (OIDC) to manage authentication for your {% data variables.enterprise.prodname_emu_enterprise %}. Enabling OIDC SSO is a one-click setup process with certificates managed by {% data variables.product.prodname_dotcom %} and your IdP.
 
 {% data reusables.enterprise-accounts.emu-cap-validates %} For more information, see "[About support for your IdP's Conditional Access Policy](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy)."
 
-You can adjust the lifetime of a session, and how often a {% data variables.product.prodname_managed_user %} needs to reauthenticate with your IdP, by changing the lifetime policy property of the ID tokens issued for {% data variables.product.prodname_dotcom %} from  your IdP. The default lifetime is one hour. For more information, see "[Configurable token lifetimes in the Microsoft identity platform](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes)" in the Azure AD documentation.
+You can adjust the lifetime of a session, and how often a {% data variables.enterprise.prodname_managed_user %} needs to reauthenticate with your IdP, by changing the lifetime policy property of the ID tokens issued for {% data variables.product.prodname_dotcom %} from  your IdP. The default lifetime is one hour. For more information, see "[Configurable token lifetimes in the Microsoft identity platform](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes)" in the Azure AD documentation.
 
 If you currently use SAML SSO for authentication and would prefer to use OIDC and benefit from CAP support, you can follow a migration path. For more information, see "[Migrating from SAML to OIDC](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc)." 
 
diff --git a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-saml-single-sign-on-for-enterprise-managed-users.md b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-saml-single-sign-on-for-enterprise-managed-users.md
index c36fb58cb3..fe4dde3d44 100644
--- a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-saml-single-sign-on-for-enterprise-managed-users.md
+++ b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-saml-single-sign-on-for-enterprise-managed-users.md
@@ -35,7 +35,7 @@ After you configure SAML SSO, we recommend storing your recovery codes so you ca
 
 ## Configuring SAML single sign-on for {% data variables.product.prodname_emus %}
 
-To configure SAML SSO for your {% data variables.product.prodname_emu_enterprise %}, you must configure an application on your IdP and then configure your enterprise on GitHub.com. After you configure SAML SSO, you can configure user provisioning. 
+To configure SAML SSO for your {% data variables.enterprise.prodname_emu_enterprise %}, you must configure an application on your IdP and then configure your enterprise on GitHub.com. After you configure SAML SSO, you can configure user provisioning. 
 
 To install and configure the {% data variables.product.prodname_emu_idp_application %} application on your IdP, you must have a tenant and administrative access on a supported IdP.
 
@@ -104,7 +104,7 @@ After you install and configure the {% data variables.product.prodname_emu_idp_a
 
     {% note %}
 
-    **Note:** When you require SAML SSO for your enterprise, the setup user will no longer have access to the enterprise but will remain signed in to GitHub. Only {% data variables.product.prodname_managed_users %} provisioned by your IdP will have access to the enterprise.
+    **Note:** When you require SAML SSO for your enterprise, the setup user will no longer have access to the enterprise but will remain signed in to GitHub. Only {% data variables.enterprise.prodname_managed_users %} provisioned by your IdP will have access to the enterprise.
 
     {% endnote %}
 
diff --git a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users-with-okta.md b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users-with-okta.md
index 0451bc6859..dddd160ff4 100644
--- a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users-with-okta.md
+++ b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users-with-okta.md
@@ -25,7 +25,7 @@ You can use {% data variables.product.prodname_emus %} with Okta as your identit
 
 Before you can configure provisioning with Okta, you must configure SAML single-sign on. For more information, see "[Configuring SAML single sign-on for Enterprise Managed Users](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-saml-single-sign-on-for-enterprise-managed-users)."
 
-To configure provisioning with Okta, you must set your enterprise's name in the {% data variables.product.prodname_emu_idp_application %} application and enter your setup user's personal access token. You can then start provisioning users in Okta.
+To configure provisioning with Okta, you must set your enterprise's name in the {% data variables.product.prodname_emu_idp_application %} application and enter your setup user's {% data variables.product.pat_generic %}. You can then start provisioning users in Okta.
 
 ## Supported features
 
@@ -47,7 +47,7 @@ To configure provisioning with Okta, you must set your enterprise's name in the
 
 ## Setting your enterprise name
 
-After your {% data variables.product.prodname_emu_enterprise %} has been created, you can begin to configure provisioning by setting your enterprise name in Okta.
+After your {% data variables.enterprise.prodname_emu_enterprise %} has been created, you can begin to configure provisioning by setting your enterprise name in Okta.
 
 1. Navigate to your {% data variables.product.prodname_emu_idp_application %} application on Okta.
 1. Click the **Sign On** tab.
@@ -60,14 +60,14 @@ After your {% data variables.product.prodname_emu_enterprise %} has been created
 
 After setting your enterprise name, you can proceed to configure provisioning settings.
 
-To configure provisioning, the setup user with the **@SHORT-CODE_admin** username will need to provide a personal access token with the **admin:enterprise** scope. For more information on creating a new token, see "[Creating a personal access token](/github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users#creating-a-personal-access-token)."
+To configure provisioning, the setup user with the **@SHORT-CODE_admin** username will need to provide a {% data variables.product.pat_v1 %} with the **admin:enterprise** scope. For more information on creating a new token, see "[Creating a {% data variables.product.pat_generic %}](/github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users#creating-a-personal-access-token)."
 
 1. Navigate to your {% data variables.product.prodname_emu_idp_application %} application on Okta.
 1. Click the **Provisioning** tab.
 1. In the settings menu, click **Integration**.
 1. To make changes, click **Edit**.
 1. Select **Enable API integration**.
-1. In the "API Token" field, enter the personal access token with the **admin:enterprise** scope belonging to the setup user.
+1. In the "API Token" field, enter the {% data variables.product.pat_v1 %} with the **admin:enterprise** scope belonging to the setup user.
 ![Screenshot showing the API Token field on Okta](/assets/images/help/enterprises/okta-emu-token.png)
 1. Click **Test API Credentials**. If the test is successful, a verification message will appear at the top of the screen.
 1. To save the token, click **Save**.
diff --git a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users.md b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users.md
index e8ae88c37a..af0d546dab 100644
--- a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users.md
+++ b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-scim-provisioning-for-enterprise-managed-users.md
@@ -19,7 +19,7 @@ topics:
 
 You must configure provisioning for {% data variables.product.prodname_emus %} to create, manage, and deactivate user accounts for your enterprise members. When you configure provisioning for {% data variables.product.prodname_emus %}, users assigned to the {% data variables.product.prodname_emu_idp_application %} application in your identity provider are provisioned as new user accounts on {% data variables.product.prodname_dotcom %} via SCIM, and the users are added to your enterprise. 
 
-When you update information associated with a user's identity on your IdP, your IdP will update the user's account on GitHub.com. When you unassign the user from the {% data variables.product.prodname_emu_idp_application %} application or deactivate a user's account on your IdP, your IdP will communicate with {% data variables.product.prodname_dotcom %} to invalidate any sessions and disable the member's account. The disabled account's information is maintained and their username is changed to a hash of their original username with the short code appended. If you reassign a user to the {% data variables.product.prodname_emu_idp_application %} application or reactivate their account on your IdP, the {% data variables.product.prodname_managed_user %} account on {% data variables.product.prodname_dotcom %} will be reactivated and username restored.
+When you update information associated with a user's identity on your IdP, your IdP will update the user's account on GitHub.com. When you unassign the user from the {% data variables.product.prodname_emu_idp_application %} application or deactivate a user's account on your IdP, your IdP will communicate with {% data variables.product.prodname_dotcom %} to invalidate any sessions and disable the member's account. The disabled account's information is maintained and their username is changed to a hash of their original username with the short code appended. If you reassign a user to the {% data variables.product.prodname_emu_idp_application %} application or reactivate their account on your IdP, the {% data variables.enterprise.prodname_managed_user %} account on {% data variables.product.prodname_dotcom %} will be reactivated and username restored.
 
 Groups in your IdP can be used to manage team membership within your enterprise's organizations, allowing you to configure repository access and permissions through your IdP. For more information, see "[Managing team memberships with identity provider groups](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/managing-team-memberships-with-identity-provider-groups)."
 
@@ -30,9 +30,9 @@ Before you can configure provisioning for {% data variables.product.prodname_emu
 - For more information on configuring OIDC, see "[Configuring OIDC for Enterprise Managed Users](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users)"
 - {% endif %}For information on configuring SAML, see "[Configuring SAML single sign-on for Enterprise Managed Users](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-saml-single-sign-on-for-enterprise-managed-users)."
 
-## Creating a personal access token
+## Creating a {% data variables.product.pat_generic %}
 
-To configure provisioning for your {% data variables.product.prodname_emu_enterprise %}, you need a personal access token with the **admin:enterprise** scope that belongs to the setup user.
+To configure provisioning for your {% data variables.enterprise.prodname_emu_enterprise %}, you need a {% data variables.product.pat_v1 %} with the **admin:enterprise** scope that belongs to the setup user.
 
 {% warning %}
 
@@ -59,7 +59,7 @@ To configure provisioning for your {% data variables.product.prodname_emu_enterp
 
 ## Configuring provisioning for {% data variables.product.prodname_emus %}
 
-After creating your personal access token and storing it securely, you can configure provisioning on your identity provider. 
+After creating your {% data variables.product.pat_generic %} and storing it securely, you can configure provisioning on your identity provider. 
 
 {% data reusables.scim.emu-scim-rate-limit %}
 
diff --git a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/managing-team-memberships-with-identity-provider-groups.md b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/managing-team-memberships-with-identity-provider-groups.md
index f797dce094..e7306b64c7 100644
--- a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/managing-team-memberships-with-identity-provider-groups.md
+++ b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/managing-team-memberships-with-identity-provider-groups.md
@@ -1,7 +1,7 @@
 ---
 title: Managing team memberships with identity provider groups
 shortTitle: Manage teams with your IdP
-intro: 'You can manage team membership on {% data variables.product.product_name %} through your identity provider (IdP) by connecting IdP groups with your {% data variables.product.prodname_emu_enterprise %}.'
+intro: 'You can manage team membership on {% data variables.product.product_name %} through your identity provider (IdP) by connecting IdP groups with your {% data variables.enterprise.prodname_emu_enterprise %}.'
 product: '{% data reusables.gated-features.emus %}'
 redirect_from:
   - /github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/managing-team-memberships-with-identity-provider-groups
@@ -22,7 +22,7 @@ topics:
 
 With {% data variables.product.prodname_emus %}, you can manage team membership within your enterprise through your IdP. When you connect a team in one of your enterprise's organizations to an IdP group, changes to membership from the IdP group are reflected in your enterprise automatically, reducing the need for manual updates and custom scripts. 
 
-When a change to an IdP group or a new team connection results in a {% data variables.product.prodname_managed_user %} joining a team in an organization they were not already a member of, the {% data variables.product.prodname_managed_user %} will automatically be added to the organization. Organization owners can also manage organization membership manually. When you disconnect a group from a team, users who became members of the organization via team membership are removed from the organization if they are not assigned membership in the organization by any other means.
+When a change to an IdP group or a new team connection results in a {% data variables.enterprise.prodname_managed_user %} joining a team in an organization they were not already a member of, the {% data variables.enterprise.prodname_managed_user %} will automatically be added to the organization. Organization owners can also manage organization membership manually. When you disconnect a group from a team, users who became members of the organization via team membership are removed from the organization if they are not assigned membership in the organization by any other means.
 
 You can connect a team in your enterprise to one IdP group. You can assign the same IdP group to multiple teams in your enterprise.
 
diff --git a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md
index f6e7cb1071..1d10031b84 100644
--- a/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md
+++ b/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md
@@ -1,7 +1,7 @@
 ---
 title: Migrating from SAML to OIDC
 shortTitle: Migrating from SAML to OIDC
-intro: 'If you''re using SAML to authenticate members in your {% data variables.product.prodname_emu_enterprise %}, you can migrate to OpenID Connect (OIDC) and benefit from support for your IdP''s Conditional Access Policy.'
+intro: 'If you''re using SAML to authenticate members in your {% data variables.enterprise.prodname_emu_enterprise %}, you can migrate to OpenID Connect (OIDC) and benefit from support for your IdP''s Conditional Access Policy.'
 product: '{% data reusables.gated-features.emus %}'
 versions:
   feature: oidc-for-emu
@@ -14,11 +14,11 @@ topics:
 
 {% data reusables.enterprise-accounts.oidc-beta-notice %}
 
-## About migrating your {% data variables.product.prodname_emu_enterprise %} from SAML to OIDC
+## About migrating your {% data variables.enterprise.prodname_emu_enterprise %} from SAML to OIDC
 
-If your {% data variables.product.prodname_emu_enterprise %} uses SAML SSO to authenticate with Azure Active Directory (Azure AD), you can migrate to OIDC. {% data reusables.enterprise-accounts.emu-cap-validates %}
+If your {% data variables.enterprise.prodname_emu_enterprise %} uses SAML SSO to authenticate with Azure Active Directory (Azure AD), you can migrate to OIDC. {% data reusables.enterprise-accounts.emu-cap-validates %}
 
-When you migrate from SAML to OIDC, {% data variables.product.prodname_managed_users %} and groups that were previously provisioned for SAML but are not provisioned by the {% data variables.product.prodname_emu_idp_oidc_application %} application will have "(SAML)" appended to their display names.
+When you migrate from SAML to OIDC, {% data variables.enterprise.prodname_managed_users %} and groups that were previously provisioned for SAML but are not provisioned by the {% data variables.product.prodname_emu_idp_oidc_application %} application will have "(SAML)" appended to their display names.
 
 If you're new to {% data variables.product.prodname_emus %} and haven't yet configured authentication for your enterprise, you do not need to migrate and can set up OIDC single sign-on immediately. For more information, see "[Configuring OIDC for Enterprise Managed Users](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/configuring-oidc-for-enterprise-managed-users)."
 
@@ -47,11 +47,11 @@ If you're new to {% data variables.product.prodname_emus %} and haven't yet conf
    ![Screenshot showing the "Configure with Azure" button](/assets/images/help/enterprises/saml-to-oidc-button.png)
 1. Read both warnings and click to continue.
 {% data reusables.enterprise-accounts.emu-azure-admin-consent %}
-1. In a new tab or window, while signed in as the setup user on {% data variables.product.prodname_dotcom_the_website %}, create a personal access token with the **admin:enterprise** scope and **no expiration** and copy it to your clipboard. For more information about creating a new token, see "[Creating a personal access token](/github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users#creating-a-personal-access-token)."
+1. In a new tab or window, while signed in as the setup user on {% data variables.product.prodname_dotcom_the_website %}, create a {% data variables.product.pat_v1 %} with the **admin:enterprise** scope and **no expiration** and copy it to your clipboard. For more information about creating a new token, see "[Creating a {% data variables.product.pat_generic %}](/github/setting-up-and-managing-your-enterprise/managing-your-enterprise-users-with-your-identity-provider/configuring-scim-provisioning-for-enterprise-managed-users#creating-a-personal-access-token)."
 1. In the settings for the {% data variables.product.prodname_emu_idp_oidc_application %} application in Azure Portal, under "Tenant URL", type `https://api.github.com/scim/v2/enterprises/YOUR_ENTERPRISE`, replacing YOUR_ENTERPRISE with the name of your enterprise account.  
    
    For example, if your enterprise account's URL is `https://github.com/enterprises/octo-corp`, the name of the enterprise account is `octo-corp`.
-1. Under "Secret token", paste the personal access token with the **admin:enterprise** scope that you created earlier.
+1. Under "Secret token", paste the {% data variables.product.pat_v1 %} with the **admin:enterprise** scope that you created earlier.
 1. To test the configuration, click **Test Connection**.
 1. To save your changes, at the top of the form, click **Save**.
 1. In Azure Portal, copy the users and groups from the old {% data variables.product.prodname_emu_idp_application %} application to the new {% data variables.product.prodname_emu_idp_oidc_application %} application.
diff --git a/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/index.md b/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/index.md
index 85e23f74dc..67af5b8586 100644
--- a/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/index.md
+++ b/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/index.md
@@ -1,7 +1,7 @@
 ---
 title: Using LDAP for enterprise IAM
 shortTitle: LDAP for enterprise IAM
-intro: 'You can centrally manage accounts and access to {% data variables.product.product_location %} by integrating with your existing LDAP directory.'
+intro: 'You can centrally manage accounts and access to {% data variables.location.product_location %} by integrating with your existing LDAP directory.'
 versions:
   ghes: '*'
 children:
diff --git a/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md b/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md
index 954b132001..1054fee109 100644
--- a/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md
+++ b/content/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap.md
@@ -26,7 +26,7 @@ topics:
 
 LDAP is a popular application protocol for access and maintenance of directory information services, and is one of the most common protocols for integration of third-party software with large company user directories. For more information, see "[Lightweight Directory Access Protocol](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol)" on Wikipedia.
 
-If you use an LDAP directory for centralized authentication, you can configure LDAP authentication for the people who use {% data variables.product.product_location %}.
+If you use an LDAP directory for centralized authentication, you can configure LDAP authentication for the people who use {% data variables.location.product_location %}.
 
 {% data reusables.enterprise_user_management.built-in-authentication %}
 
@@ -45,7 +45,7 @@ If you use an LDAP directory for centralized authentication, you can configure L
 
 {% data reusables.enterprise_user_management.consider-usernames-for-external-authentication %} For more information, see "[Username considerations for external authentication](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication)."
 
-## Configuring LDAP with {% data variables.product.product_location %}
+## Configuring LDAP with {% data variables.location.product_location %}
 
 After you configure LDAP, users will be able to sign into your instance with their LDAP credentials. When users sign in for the first time, their profile names, email addresses, and SSH keys will be set with the LDAP attributes from your directory.
 
@@ -53,7 +53,7 @@ When you configure LDAP access for users via the {% data variables.enterprise.ma
 
 {% warning %}
 
-**Warning:** Before configuring LDAP on {% data variables.product.product_location %}, make sure that your LDAP service supports paged results.
+**Warning:** Before configuring LDAP on {% data variables.location.product_location %}, make sure that your LDAP service supports paged results.
 
 {% endwarning %}
 
@@ -66,11 +66,11 @@ When you configure LDAP access for users via the {% data variables.enterprise.ma
 5. Add your configuration settings.
 
 ## LDAP attributes
-Use these attributes to finish configuring LDAP for {% data variables.product.product_location %}.
+Use these attributes to finish configuring LDAP for {% data variables.location.product_location %}.
 
 | Attribute name           | Type     | Description |
 |--------------------------|----------|-------------|
-| `Host`                   | Required | The LDAP host, e.g. `ldap.example.com` or `10.0.0.30`. If the hostname is only available from your internal network, you may need to configure {% data variables.product.product_location %}'s DNS first so it can resolve the hostname using your internal nameservers. |
+| `Host`                   | Required | The LDAP host, e.g. `ldap.example.com` or `10.0.0.30`. If the hostname is only available from your internal network, you may need to configure {% data variables.location.product_location %}'s DNS first so it can resolve the hostname using your internal nameservers. |
 | `Port`                   | Required | The port the host's LDAP services are listening on. Examples include: 389 and 636 (for LDAPS). |
 | `Encryption`             | Required | The encryption method used to secure communications to the LDAP server. Examples include plain (no encryption), SSL/LDAPS (encrypted from the start), and StartTLS (upgrade to encrypted communication once connected). |
 | `Domain search user`     | Optional | The LDAP user that looks up other users that sign in, to allow authentication. This is typically a service account created specifically for third-party integrations. Use a fully qualified name, such as `cn=Administrator,cn=Users,dc=Example,dc=com`. With Active Directory, you can also use the `[DOMAIN]\[USERNAME]` syntax (e.g. `WINDOWS\Administrator`) for the domain search user with Active Directory. |
@@ -89,11 +89,11 @@ Use these attributes to finish configuring LDAP for {% data variables.product.pr
 
 ### Disabling password authentication for Git operations
 
-Select **Disable username and password authentication for Git operations** in your LDAP settings to enforce use of personal access tokens or SSH keys for Git access, which can help prevent your server from being overloaded by LDAP authentication requests. We recommend this setting because a slow-responding LDAP server, especially combined with a large number of requests due to polling, is a frequent source of performance issues and outages.
+Select **Disable username and password authentication for Git operations** in your LDAP settings to enforce use of {% data variables.product.pat_generic %}s or SSH keys for Git access, which can help prevent your server from being overloaded by LDAP authentication requests. We recommend this setting because a slow-responding LDAP server, especially combined with a large number of requests due to polling, is a frequent source of performance issues and outages.
 
 ![Disable LDAP password auth for Git check box](/assets/images/enterprise/management-console/ldap-disable-password-auth-for-git.png)
 
-When this option is selected, if a user tries to use a password for Git operations via the command line, they will receive an error message that says, `Password authentication is not allowed for Git operations. You must use a personal access token.`
+When this option is selected, if a user tries to use a password for Git operations via the command line, they will receive an error message that says, `Password authentication is not allowed for Git operations. You must use a {% data variables.product.pat_generic %}.`
 
 ### Enabling LDAP certificate verification
 
@@ -206,7 +206,7 @@ Unless [LDAP Sync is enabled](#enabling-ldap-sync), changes to LDAP accounts are
 
 You can also [use the API to trigger a manual sync](/enterprise/user/rest/reference/enterprise-admin#ldap).
 
-## Revoking access to {% data variables.product.product_location %}
+## Revoking access to {% data variables.location.product_location %}
 
 If [LDAP Sync is enabled](#enabling-ldap-sync), removing a user's LDAP credentials will suspend their account after the next synchronization run.
 
diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam.md
index 0992bd4192..6bbe5ad199 100644
--- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam.md
+++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam.md
@@ -1,7 +1,7 @@
 ---
 title: About SAML for enterprise IAM
 shortTitle: About SAML for IAM
-intro: 'You can use SAML single sign-on (SSO) {% ifversion ghae %}and System for Cross-domain Identity Management (SCIM) {% endif %}to centrally manage access {% ifversion ghec %}to organizations owned by your enterprise on {% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}to {% data variables.product.product_location %}{% elsif ghae %}to {% data variables.product.product_location %}{% endif %}.'
+intro: 'You can use SAML single sign-on (SSO) {% ifversion ghae %}and System for Cross-domain Identity Management (SCIM) {% endif %}to centrally manage access {% ifversion ghec %}to organizations owned by your enterprise on {% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}to {% data variables.location.product_location %}{% elsif ghae %}to {% data variables.location.product_location %}{% endif %}.'
 versions:
   ghec: '*'
   ghes: '*'
@@ -24,11 +24,11 @@ redirect_from:
   - /admin/identity-and-access-management/using-saml-for-enterprise-iam/about-identity-and-access-management-for-your-enterprise
 ---
 
-## About SAML SSO for {% ifversion ghec or ghae %}your enterprise on {% endif %}{% ifversion ghec or ghes %}{% data variables.product.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}
+## About SAML SSO for {% ifversion ghec or ghae %}your enterprise on {% endif %}{% ifversion ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}
 
 {% ifversion ghec %}
 
-If your enterprise members manage their own user accounts on {% data variables.product.product_location %}, you can configure SAML authentication as an additional access restriction for your enterprise or organization. {% data reusables.saml.dotcom-saml-explanation %} 
+If your enterprise members manage their own user accounts on {% data variables.location.product_location %}, you can configure SAML authentication as an additional access restriction for your enterprise or organization. {% data reusables.saml.dotcom-saml-explanation %} 
 
 {% data reusables.saml.saml-accounts %}
 
@@ -52,9 +52,9 @@ If you use Azure AD as your IDP, you can use team synchronization to manage team
 
 {% elsif ghes %}
 
-SAML SSO allows people to authenticate and access {% data variables.product.product_location %} through an external system for identity management.
+SAML SSO allows people to authenticate and access {% data variables.location.product_location %} through an external system for identity management.
 
-SAML is an XML-based standard for authentication and authorization. When you configure SAML for {% data variables.product.product_location %}, the external system for authentication is called an identity provider (IdP). Your instance acts as a SAML service provider (SP). For more information about the SAML standard, see [Security Assertion Markup Language](https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language) on Wikipedia.
+SAML is an XML-based standard for authentication and authorization. When you configure SAML for {% data variables.location.product_location %}, the external system for authentication is called an identity provider (IdP). Your instance acts as a SAML service provider (SP). For more information about the SAML standard, see [Security Assertion Markup Language](https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language) on Wikipedia.
 
 For more information about the configuration of SAML SSO on {% data variables.product.product_name %}, see "[Configuring SAML single sign-on for your enterprise](/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise)."
 
@@ -68,11 +68,11 @@ For more information about the configuration of SAML SSO on {% data variables.pr
 
 {% data reusables.saml.ae-uses-saml-sso %} {% data reusables.saml.ae-enable-saml-sso-during-bootstrapping %}
 
-After you configure the application for {% data variables.product.product_name %} on your identity provider (IdP), you can provision access to {% data variables.product.product_location %} by assigning the application to users and groups on your IdP. For more information about SAML SSO for {% data variables.product.product_name %}, see "[Configuring SAML single sign-on for your enterprise](/admin/authentication/configuring-saml-single-sign-on-for-your-enterprise)."
+After you configure the application for {% data variables.product.product_name %} on your identity provider (IdP), you can provision access to {% data variables.location.product_location %} by assigning the application to users and groups on your IdP. For more information about SAML SSO for {% data variables.product.product_name %}, see "[Configuring SAML single sign-on for your enterprise](/admin/authentication/configuring-saml-single-sign-on-for-your-enterprise)."
 
 {% data reusables.scim.after-you-configure-saml %} For more information, see "[Configuring user provisioning for your enterprise](/admin/authentication/configuring-user-provisioning-for-your-enterprise)."
 
-To learn how to configure both authentication and user provisioning for {% data variables.product.product_location %} with your specific IdP, see "[Configuring authentication and provisioning with your identity provider](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider)."
+To learn how to configure both authentication and user provisioning for {% data variables.location.product_location %} with your specific IdP, see "[Configuring authentication and provisioning with your identity provider](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider)."
 
 {% endif %}
 
diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-authentication-and-provisioning-for-your-enterprise-using-azure-ad.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-authentication-and-provisioning-for-your-enterprise-using-azure-ad.md
index 1c7dd3ba90..8775694a20 100644
--- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-authentication-and-provisioning-for-your-enterprise-using-azure-ad.md
+++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-authentication-and-provisioning-for-your-enterprise-using-azure-ad.md
@@ -1,7 +1,7 @@
 ---
 title: Configuring authentication and provisioning for your enterprise using Azure AD
 shortTitle: Configure with Azure AD
-intro: 'You can use a tenant in Azure Active Directory (Azure AD) as an identity provider (IdP) to centrally manage authentication and user provisioning for {% data variables.product.product_location %}.'
+intro: 'You can use a tenant in Azure Active Directory (Azure AD) as an identity provider (IdP) to centrally manage authentication and user provisioning for {% data variables.location.product_location %}.'
 permissions: 'Enterprise owners can configure authentication and provisioning for an enterprise on {% data variables.product.product_name %}.'
 versions:
   ghae: '*'
@@ -30,7 +30,7 @@ After you enable SAML SSO and SCIM for {% data variables.product.prodname_ghe_ma
 * Assign the {% data variables.product.prodname_ghe_managed %} application to an IdP group on Azure AD to automatically create and grant access to user accounts on {% data variables.product.product_name %} for all members of the IdP group. In addition, the IdP group is available on {% data variables.product.prodname_ghe_managed %} for connection to a team and its parent organization.
 * Unassign the {% data variables.product.prodname_ghe_managed %} application from an IdP group to deactivate the {% data variables.product.product_name %} user accounts of all IdP users who had access only through that IdP group and remove the users from the parent organization. The IdP group will be disconnected from any teams on {% data variables.product.product_name %}.
 
-For more information about managing identity and access for your enterprise on {% data variables.product.product_location %}, see "[Managing identity and access for your enterprise](/admin/authentication/managing-identity-and-access-for-your-enterprise)." For more information about synchronizing teams with IdP groups, see "[Synchronizing a team with an identity provider group](/organizations/organizing-members-into-teams/synchronizing-a-team-with-an-identity-provider-group)."
+For more information about managing identity and access for your enterprise on {% data variables.location.product_location %}, see "[Managing identity and access for your enterprise](/admin/authentication/managing-identity-and-access-for-your-enterprise)." For more information about synchronizing teams with IdP groups, see "[Synchronizing a team with an identity provider group](/organizations/organizing-members-into-teams/synchronizing-a-team-with-an-identity-provider-group)."
 
 ## Prerequisites
 
@@ -50,7 +50,7 @@ To configure authentication and user provisioning for {% data variables.product.
 
     - {% data reusables.saml.ae-enable-saml-sso-during-bootstrapping %}
 
-    - If you've already configured SAML SSO for {% data variables.product.product_location %} using another IdP and you want to use Azure AD instead, you can edit your configuration. For more information, see "[Configuring SAML single sign-on for your enterprise](/admin/authentication/configuring-saml-single-sign-on-for-your-enterprise#editing-the-saml-sso-configuration)."
+    - If you've already configured SAML SSO for {% data variables.location.product_location %} using another IdP and you want to use Azure AD instead, you can edit your configuration. For more information, see "[Configuring SAML single sign-on for your enterprise](/admin/authentication/configuring-saml-single-sign-on-for-your-enterprise#editing-the-saml-sso-configuration)."
 
 1. Enable user provisioning in {% data variables.product.product_name %} and configure user provisioning in Azure AD. For more information, see "[Configuring user provisioning for your enterprise](/admin/authentication/configuring-user-provisioning-for-your-enterprise#enabling-user-provisioning-for-your-enterprise)."
 
diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-authentication-and-provisioning-for-your-enterprise-using-okta.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-authentication-and-provisioning-for-your-enterprise-using-okta.md
index 7537bbff9a..e0b7437cad 100644
--- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-authentication-and-provisioning-for-your-enterprise-using-okta.md
+++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-authentication-and-provisioning-for-your-enterprise-using-okta.md
@@ -81,9 +81,9 @@ To enable single sign-on (SSO) for {% data variables.product.prodname_ghe_manage
 
 ## Enabling API integration
 
-The "GitHub AE" app in Okta uses the {% data variables.product.product_name %} API to interact with your enterprise for SCIM and SSO. This procedure explains how to enable and test access to the API by configuring Okta with a personal access token for {% data variables.product.prodname_ghe_managed %}.
+The "GitHub AE" app in Okta uses the {% data variables.product.product_name %} API to interact with your enterprise for SCIM and SSO. This procedure explains how to enable and test access to the API by configuring Okta with a {% data variables.product.pat_generic %} for {% data variables.product.prodname_ghe_managed %}.
 
-1. In {% data variables.product.prodname_ghe_managed %}, generate a personal access token with the `admin:enterprise` scope. For more information, see "[Creating a personal access token](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)".
+1. In {% data variables.product.prodname_ghe_managed %}, generate a {% data variables.product.pat_v1 %} with the `admin:enterprise` scope. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)".
 {% data reusables.saml.okta-ae-applications-menu %}
 {% data reusables.saml.okta-ae-configure-app %}
 {% data reusables.saml.okta-ae-provisioning-tab %}
@@ -93,7 +93,7 @@ The "GitHub AE" app in Okta uses the {% data variables.product.product_name %} A
 
   ![Enable API integration](/assets/images/help/saml/okta-ae-enable-api-integration.png)
 
-1. For "API Token", type the {% data variables.product.prodname_ghe_managed %} personal access token you generated previously.
+1. For "API Token", type the {% data variables.product.prodname_ghe_managed %} {% data variables.product.pat_generic %} you generated previously.
 
 1. Click **Test API Credentials**. 
 
diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md
index f62297bd90..5f0283606c 100644
--- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md
+++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise.md
@@ -1,7 +1,7 @@
 ---
 title: Configuring SAML single sign-on for your enterprise
 shortTitle: Configure SAML SSO
-intro: 'You can control and secure access to {% ifversion ghec %}resources like repositories, issues, and pull requests within your enterprise''s organizations{% elsif ghes %}{% data variables.product.product_location %}{% elsif ghae %}your enterprise on {% data variables.product.prodname_ghe_managed %}{% endif %} by {% ifversion ghec %}enforcing{% elsif ghes or ghae %}configuring{% endif %} SAML single sign-on (SSO) through your identity provider (IdP).'
+intro: 'You can control and secure access to {% ifversion ghec %}resources like repositories, issues, and pull requests within your enterprise''s organizations{% elsif ghes %}{% data variables.location.product_location %}{% elsif ghae %}your enterprise on {% data variables.product.prodname_ghe_managed %}{% endif %} by {% ifversion ghec %}enforcing{% elsif ghes or ghae %}configuring{% endif %} SAML single sign-on (SSO) through your identity provider (IdP).'
 permissions: '{% ifversion ghes %}Site administrators{% elsif ghec or ghae %}Enterprise owners{% endif %} can configure SAML SSO for {% ifversion ghec or ghae %}an enterprise on {% data variables.product.product_name %}{% elsif ghes %}a {% data variables.product.product_name %} instance{% endif %}.'
 versions:
   ghec: '*'
@@ -45,9 +45,9 @@ For more information, see "[About identity and access management with SAML singl
 
 {% elsif ghes or ghae %}
 
-SAML SSO allows you to centrally control and secure access to {% data variables.product.product_location %} from your SAML IdP. When an unauthenticated user visits {% data variables.product.product_location %} in a browser, {% data variables.product.product_name %} will redirect the user to your SAML IdP to authenticate. After the user successfully authenticates with an account on the IdP, the IdP redirects the user back to {% data variables.product.product_location %}. {% data variables.product.product_name %} validates the response from your IdP, then grants access to the user.
+SAML SSO allows you to centrally control and secure access to {% data variables.location.product_location %} from your SAML IdP. When an unauthenticated user visits {% data variables.location.product_location %} in a browser, {% data variables.product.product_name %} will redirect the user to your SAML IdP to authenticate. After the user successfully authenticates with an account on the IdP, the IdP redirects the user back to {% data variables.location.product_location %}. {% data variables.product.product_name %} validates the response from your IdP, then grants access to the user.
 
-After a user successfully authenticates on your IdP, the user's SAML session for {% data variables.product.product_location %} is active in the browser for 24 hours. After 24 hours, the user must authenticate again with your IdP.
+After a user successfully authenticates on your IdP, the user's SAML session for {% data variables.location.product_location %} is active in the browser for 24 hours. After 24 hours, the user must authenticate again with your IdP.
 
 {% data reusables.saml.saml-ghes-account-revocation %}
 
@@ -106,7 +106,7 @@ For more detailed information about how to enable SAML using Okta, see "[Configu
 
 ## Configuring SAML SSO
 
-You can enable or disable SAML authentication for {% data variables.product.product_location %}, or you can edit an existing configuration. You can view and edit authentication settings for {% data variables.product.product_name %} in the management console. For more information, see "[Accessing the management console](/admin/configuration/configuring-your-enterprise/accessing-the-management-console)."
+You can enable or disable SAML authentication for {% data variables.location.product_location %}, or you can edit an existing configuration. You can view and edit authentication settings for {% data variables.product.product_name %} in the management console. For more information, see "[Accessing the management console](/admin/configuration/configuring-your-enterprise/accessing-the-management-console)."
 
 {% note %}
 
@@ -133,21 +133,21 @@ You can enable or disable SAML authentication for {% data variables.product.prod
 
    {% endtip %}
 
-1. Select **Disable administrator demotion/promotion** if you **do not** want your SAML provider to determine administrator rights for users on {% data variables.product.product_location %}.
+1. Select **Disable administrator demotion/promotion** if you **do not** want your SAML provider to determine administrator rights for users on {% data variables.location.product_location %}.
 
    ![Screenshot of option to enable option to respect the "administrator" attribute from the IdP to enable or disable administrative rights](/assets/images/enterprise/management-console/disable-admin-demotion-promotion.png)
 {%- ifversion ghes > 3.3 %}
-1. Optionally, to allow {% data variables.product.product_location %} to receive encrypted assertions from your SAML IdP, select **Require encrypted assertions**. You must ensure that your IdP supports encrypted assertions and that the encryption and key transport methods in the management console match the values configured on your IdP. You must also provide {% data variables.product.product_location %}'s public certificate to your IdP. For more information, see "[Enabling encrypted assertions](/admin/identity-and-access-management/using-saml-for-enterprise-iam/enabling-encrypted-assertions)."
+1. Optionally, to allow {% data variables.location.product_location %} to receive encrypted assertions from your SAML IdP, select **Require encrypted assertions**. You must ensure that your IdP supports encrypted assertions and that the encryption and key transport methods in the management console match the values configured on your IdP. You must also provide {% data variables.location.product_location %}'s public certificate to your IdP. For more information, see "[Enabling encrypted assertions](/admin/identity-and-access-management/using-saml-for-enterprise-iam/enabling-encrypted-assertions)."
 
    ![Screenshot of "Enable encrypted assertions" checkbox within management console's "Authentication" section](/assets/images/help/saml/management-console-enable-encrypted-assertions.png)
 {%- endif %}
-1. In the **Single sign-on URL** field, type the HTTP or HTTPS endpoint on your IdP for single sign-on requests. This value is provided by your IdP configuration. If the host is only available from your internal network, you may need to [configure {% data variables.product.product_location %} to use internal nameservers](/enterprise/admin/guides/installation/configuring-dns-nameservers/).
+1. In the **Single sign-on URL** field, type the HTTP or HTTPS endpoint on your IdP for single sign-on requests. This value is provided by your IdP configuration. If the host is only available from your internal network, you may need to [configure {% data variables.location.product_location %} to use internal nameservers](/enterprise/admin/guides/installation/configuring-dns-nameservers/).
 
    ![Screenshot of text field for single sign-on URL](/assets/images/enterprise/management-console/saml-single-sign-url.png)
-1. Optionally, in the **Issuer** field, type your SAML issuer's name. This verifies the authenticity of messages sent to {% data variables.product.product_location %}.
+1. Optionally, in the **Issuer** field, type your SAML issuer's name. This verifies the authenticity of messages sent to {% data variables.location.product_location %}.
 
    ![Screenshot of text field for SAML issuer URL](/assets/images/enterprise/management-console/saml-issuer.png)
-1. In the **Signature Method** and **Digest Method** drop-down menus, choose the hashing algorithm used by your SAML issuer to verify the integrity of the requests from {% data variables.product.product_location %}. Specify the format with the **Name Identifier Format** drop-down menu.
+1. In the **Signature Method** and **Digest Method** drop-down menus, choose the hashing algorithm used by your SAML issuer to verify the integrity of the requests from {% data variables.location.product_location %}. Specify the format with the **Name Identifier Format** drop-down menu.
 
    ![Screenshot of drop-down menus to select signature and digest method](/assets/images/enterprise/management-console/saml-method.png)
 1. Under **Verification certificate**, click **Choose File** and choose a certificate to validate SAML responses from the IdP.
@@ -174,7 +174,7 @@ During initialization for {% data variables.product.product_name %}, you must co
 
 ## Editing the SAML SSO configuration
 
-If the details for your IdP change, you'll need to edit the SAML SSO configuration for {% data variables.product.product_location %}. For example, if the certificate for your IdP expires, you can edit the value for the public certificate.
+If the details for your IdP change, you'll need to edit the SAML SSO configuration for {% data variables.location.product_location %}. For example, if the certificate for your IdP expires, you can edit the value for the public certificate.
 
 {% ifversion ghae %}
 
@@ -198,7 +198,7 @@ If the details for your IdP change, you'll need to edit the SAML SSO configurati
   !["Test SAML configuration" button](/assets/images/help/saml/ae-edit-idp-details-test-saml-configuration.png)
 1. Click **Save**.
     !["Save" button for SAML SSO configuration](/assets/images/help/saml/ae-edit-idp-details-save.png)
-1. Optionally, to automatically provision and deprovision user accounts for {% data variables.product.product_location %}, reconfigure user provisioning with SCIM. For more information, see "[Configuring user provisioning for your enterprise](/admin/authentication/configuring-user-provisioning-for-your-enterprise)."
+1. Optionally, to automatically provision and deprovision user accounts for {% data variables.location.product_location %}, reconfigure user provisioning with SCIM. For more information, see "[Configuring user provisioning for your enterprise](/admin/authentication/configuring-user-provisioning-for-your-enterprise)."
 
 {% endif %}
 
@@ -208,7 +208,7 @@ If the details for your IdP change, you'll need to edit the SAML SSO configurati
 
 {% warning %}
 
-**Warning**: If you disable SAML SSO for {% data variables.product.product_location %}, users without existing SAML SSO sessions cannot sign into {% data variables.product.product_location %}. SAML SSO sessions on {% data variables.product.product_location %} end after 24 hours.
+**Warning**: If you disable SAML SSO for {% data variables.location.product_location %}, users without existing SAML SSO sessions cannot sign into {% data variables.location.product_location %}. SAML SSO sessions on {% data variables.location.product_location %} end after 24 hours.
 
 {% endwarning %}
 
diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-user-provisioning-for-your-enterprise.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-user-provisioning-for-your-enterprise.md
index 231a7b4b5d..0118676666 100644
--- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-user-provisioning-for-your-enterprise.md
+++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-user-provisioning-for-your-enterprise.md
@@ -1,7 +1,7 @@
 ---
 title: Configuring user provisioning for your enterprise
 shortTitle: Configure user provisioning
-intro: 'You can configure System for Cross-domain Identity Management (SCIM) for your enterprise, which automatically provisions user accounts on {% data variables.product.product_location %} when you assign the application for {% data variables.product.product_location %} to a user on your identity provider (IdP).'
+intro: 'You can configure System for Cross-domain Identity Management (SCIM) for your enterprise, which automatically provisions user accounts on {% data variables.location.product_location %} when you assign the application for {% data variables.location.product_location %} to a user on your identity provider (IdP).'
 permissions: 'Enterprise owners can configure user provisioning for an enterprise on {% data variables.product.product_name %}.'
 versions:
   ghae: '*'
@@ -24,7 +24,7 @@ You can configure user provisioning with SCIM to automatically create or suspend
 
 If you do not configure user provisioning with SCIM, your IdP will not communicate with {% data variables.product.product_name %} automatically when you assign or unassign the application to a user. Without SCIM, {% data variables.product.product_name %} creates a user account using SAML Just-in-Time (JIT) provisioning the first time someone navigates to {% data variables.product.product_name %} and signs in by authenticating through your IdP.
 
-Configuring provisioning allows your IdP to communicate with {% data variables.product.product_location %} when you assign or unassign the application for {% data variables.product.product_name %} to a user on your IdP. When you assign the application, your IdP will prompt {% data variables.product.product_location %} to create an account and send an onboarding email to the user. When you unassign the application, your IdP will communicate with {% data variables.product.product_name %} to invalidate any SAML sessions and disable the member's account.
+Configuring provisioning allows your IdP to communicate with {% data variables.location.product_location %} when you assign or unassign the application for {% data variables.product.product_name %} to a user on your IdP. When you assign the application, your IdP will prompt {% data variables.location.product_location %} to create an account and send an onboarding email to the user. When you unassign the application, your IdP will communicate with {% data variables.product.product_name %} to invalidate any SAML sessions and disable the member's account.
 
 To configure provisioning for your enterprise, you must enable provisioning on {% data variables.product.product_name %}, then install and configure a provisioning application on your IdP.
 
@@ -38,27 +38,27 @@ The following IdPs are supported for SSO with {% data variables.product.prodname
 
 {% data reusables.github-ae.saml-idp-table %}
 
-For IdPs that support team mapping, you can assign or unassign the application for {% data variables.product.product_name %} to groups of users in your IdP. These groups are then available to organization owners and team maintainers in {% data variables.product.product_location %} to map to {% data variables.product.product_name %} teams. For more information, see "[Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)."
+For IdPs that support team mapping, you can assign or unassign the application for {% data variables.product.product_name %} to groups of users in your IdP. These groups are then available to organization owners and team maintainers in {% data variables.location.product_location %} to map to {% data variables.product.product_name %} teams. For more information, see "[Mapping Okta groups to teams](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/mapping-okta-groups-to-teams)."
 
 ## Prerequisites
 
-To automatically provision and deprovision access to {% data variables.product.product_location %} from your IdP, you must first configure SAML SSO when you initialize {% data variables.product.product_name %}. For more information, see "[Initializing {% data variables.product.prodname_ghe_managed %}](/admin/configuration/initializing-github-ae)."
+To automatically provision and deprovision access to {% data variables.location.product_location %} from your IdP, you must first configure SAML SSO when you initialize {% data variables.product.product_name %}. For more information, see "[Initializing {% data variables.product.prodname_ghe_managed %}](/admin/configuration/initializing-github-ae)."
 
 You must have administrative access on your IdP to configure the application for user provisioning for {% data variables.product.product_name %}.
 
 ## Enabling user provisioning for your enterprise
 
-1. While signed into {% data variables.product.product_location %} as an enterprise owner, create a personal access token with **admin:enterprise** scope. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)."
+1. While signed into {% data variables.location.product_location %} as an enterprise owner, create a {% data variables.product.pat_v1 %} with **admin:enterprise** scope. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)."
   {% note %}
 
   **Notes**:
-    - To create the personal access token, we recommend using the account for the first enterprise owner that you created during initialization. For more information, see "[Initializing {% data variables.product.prodname_ghe_managed %}](/admin/configuration/initializing-github-ae)."
-    - You'll need this personal access token to configure the application for SCIM on your IdP. Store the token securely in a password manager until you need the token again later in these instructions.
+    - To create the {% data variables.product.pat_generic %}, we recommend using the account for the first enterprise owner that you created during initialization. For more information, see "[Initializing {% data variables.product.prodname_ghe_managed %}](/admin/configuration/initializing-github-ae)."
+    - You'll need this {% data variables.product.pat_generic %} to configure the application for SCIM on your IdP. Store the token securely in a password manager until you need the token again later in these instructions.
 
   {% endnote %}
   {% warning %}
 
-  **Warning**: If the user account for the enterprise owner who creates the personal access token is deactivated or deprovisioned, your IdP will no longer provision and deprovision user accounts for your enterprise automatically. Another enterprise owner must create a new personal access token and reconfigure provisioning on the IdP.
+  **Warning**: If the user account for the enterprise owner who creates the {% data variables.product.pat_generic %} is deactivated or deprovisioned, your IdP will no longer provision and deprovision user accounts for your enterprise automatically. Another enterprise owner must create a new {% data variables.product.pat_generic %} and reconfigure provisioning on the IdP.
 
   {% endwarning %}
 {% data reusables.enterprise-accounts.access-enterprise %}
@@ -77,9 +77,9 @@ You must have administrative access on your IdP to configure the application for
   | Azure AD | [Tutorial: Configure {% data variables.product.prodname_ghe_managed %} for automatic user provisioning](https://docs.microsoft.com/azure/active-directory/saas-apps/github-ae-provisioning-tutorial) in the Microsoft Docs. To configure Azure AD for {% data variables.product.prodname_ghe_managed %}, see "[Configuring authentication and provisioning for your enterprise using Azure AD](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/configuring-authentication-and-provisioning-for-your-enterprise-using-azure-ad)."|
 | Okta | (beta) To configure Okta for {% data variables.product.prodname_ghe_managed %}, see "[Configuring authentication and provisioning for your enterprise using Okta](/admin/authentication/configuring-authentication-and-provisioning-with-your-identity-provider/configuring-authentication-and-provisioning-for-your-enterprise-using-okta)."|
 
-  The application on your IdP requires two values to provision or deprovision user accounts on {% data variables.product.product_location %}.
+  The application on your IdP requires two values to provision or deprovision user accounts on {% data variables.location.product_location %}.
 
   | Value | Other names | Description | Example |
   | :- | :- | :- | :- |
   | URL | Tenant URL | URL to the SCIM provisioning API for your enterprise on {% data variables.product.prodname_ghe_managed %} | {% data variables.product.api_url_pre %}/scim/v2 |
-  | Shared secret | Personal access token, secret token | Token for application on your IdP to perform provisioning tasks on behalf of an enterprise owner | Personal access token you created in step 1 |
+  | Shared secret | {% data variables.product.pat_generic_caps %}, secret token | Token for application on your IdP to perform provisioning tasks on behalf of an enterprise owner | {% data variables.product.pat_generic_caps %} you created in step 1 |
diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/enabling-encrypted-assertions.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/enabling-encrypted-assertions.md
index 7f27a6cbcc..83a3c87b14 100644
--- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/enabling-encrypted-assertions.md
+++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/enabling-encrypted-assertions.md
@@ -1,7 +1,7 @@
 ---
 title: Enabling encrypted assertions
 shortTitle: Enable encrypted assertions
-intro: 'You can improve {% data variables.product.product_location %}''s security with SAML single sign-on (SSO) by encrypting the messages that your SAML identity provider (IdP) sends.'
+intro: 'You can improve {% data variables.location.product_location %}''s security with SAML single sign-on (SSO) by encrypting the messages that your SAML identity provider (IdP) sends.'
 permissions: 'Site administrators can configure encrypted assertions for a {% data variables.product.product_name %} instance.'
 versions:
   ghes: '> 3.3'
@@ -25,7 +25,7 @@ To enable encrypted assertions for authentication to {% data variables.product.p
 
 ## Enabling encrypted assertions
 
-To enable encrypted assertions, you must provide {% data variables.product.product_location %}'s public certificate to your IdP, and configure encryption settings that match your IdP.
+To enable encrypted assertions, you must provide {% data variables.location.product_location %}'s public certificate to your IdP, and configure encryption settings that match your IdP.
 
 {% note %}
 
@@ -40,14 +40,14 @@ To enable encrypted assertions, you must provide {% data variables.product.produ
 1. Select **Require encrypted assertions**.
 
    ![Screenshot of "Enable encrypted assertions" checkbox within management console's "Authentication" section](/assets/images/help/saml/management-console-enable-encrypted-assertions.png)
-1. To the right of "Encryption Certificate", click **Download** to save a copy of {% data variables.product.product_location %}'s public certificate on your local machine.
+1. To the right of "Encryption Certificate", click **Download** to save a copy of {% data variables.location.product_location %}'s public certificate on your local machine.
 
    ![Screenshot of "Download" button for public certificate for encrypted assertions](/assets/images/help/saml/management-console-encrypted-assertions-download-certificate.png)
 1. Sign into your SAML IdP as an administrator.
-1. In the application for {% data variables.product.product_location %}, enable encrypted assertions.
+1. In the application for {% data variables.location.product_location %}, enable encrypted assertions.
    - Note the encryption method and key transport method.
    - Provide the public certificate you downloaded in step 7.
-1. Return to the management console on {% data variables.product.product_location %}.
+1. Return to the management console on {% data variables.location.product_location %}.
 1. To the right of "Encryption Method", select the encryption method for your IdP from step 9.
 
    ![Screenshot of "Encryption Method" for encrypted assertions](/assets/images/help/saml/management-console-encrypted-assertions-encryption-method.png)
diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/index.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/index.md
index 391349b188..9dfcee6f4c 100644
--- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/index.md
+++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/index.md
@@ -1,7 +1,7 @@
 ---
 title: Using SAML for enterprise IAM
 shortTitle: SAML for enterprise IAM
-intro: 'You can centrally manage {% ifversion ghes or ghae %}accounts and {% endif %}access to {% ifversion ghes %}{% data variables.product.product_location %}{% elsif ghae %}your enterprise{% elsif ghec %}your enterprise''s resources{% endif %} with SAML single sign-on (SSO){% ifversion ghec or ghae %} and System for Cross-domain Identity Management (SCIM){% endif %}.'
+intro: 'You can centrally manage {% ifversion ghes or ghae %}accounts and {% endif %}access to {% ifversion ghes %}{% data variables.location.product_location %}{% elsif ghae %}your enterprise{% elsif ghec %}your enterprise''s resources{% endif %} with SAML single sign-on (SSO){% ifversion ghec or ghae %} and System for Cross-domain Identity Management (SCIM){% endif %}.'
 versions:
   ghec: '*'
   ghes: '*'
diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md
index d17cfa8c89..a7575e8ea9 100644
--- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md
+++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference.md
@@ -1,7 +1,7 @@
 ---
 title: SAML configuration reference
 shortTitle: SAML reference
-intro: 'You can see SAML metadata for {% ifversion ghec %}your organization or enterprise on {% data variables.product.product_name %}{% elsif ghes %}{% data variables.product.product_location %}{% elsif ghae %}your enterprise on {% data variables.product.product_name %}{% endif %}, and you can learn more about available SAML attributes and response requirements.'
+intro: 'You can see SAML metadata for {% ifversion ghec %}your organization or enterprise on {% data variables.product.product_name %}{% elsif ghes %}{% data variables.location.product_location %}{% elsif ghae %}your enterprise on {% data variables.product.product_name %}{% endif %}, and you can learn more about available SAML attributes and response requirements.'
 versions:
   ghec: '*'
   ghes: '*'
@@ -17,7 +17,7 @@ topics:
 
 ## About SAML configuration
 
-To use SAML single sign-on (SSO) for authentication to {% data variables.product.product_name %}, you must configure both your external SAML identity provider (IdP) and {% ifversion ghes %}{% data variables.product.product_location %}{% elsif ghec %}your enterprise or organization on {% data variables.product.product_location %}{% elsif ghae %}your enterprise on {% data variables.product.product_name %}{% endif %}. In a SAML configuration, {% data variables.product.product_name %} functions as a SAML service provider (SP).
+To use SAML single sign-on (SSO) for authentication to {% data variables.product.product_name %}, you must configure both your external SAML identity provider (IdP) and {% ifversion ghes %}{% data variables.location.product_location %}{% elsif ghec %}your enterprise or organization on {% data variables.location.product_location %}{% elsif ghae %}your enterprise on {% data variables.product.product_name %}{% endif %}. In a SAML configuration, {% data variables.product.product_name %} functions as a SAML service provider (SP).
 
 You must enter unique values from your SAML IdP when configuring SAML SSO for {% data variables.product.product_name %}, and you must also enter unique values from {% data variables.product.product_name %} on your IdP. For more information about the configuration of SAML SSO for {% data variables.product.product_name %}, see "[Configuring SAML single sign-on for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise){% ifversion ghes or ghae %}{% elsif ghec %}" or "[Enabling and testing SAML single sign-on for your organization](/organizations/managing-saml-single-sign-on-for-your-organization/enabling-and-testing-saml-single-sign-on-for-your-organization){% endif %}."
 
@@ -31,27 +31,27 @@ The SP metadata for {% data variables.product.product_name %} is available for e
 
 You can configure SAML SSO for an individual organization in your enterprise. You can also configure SAML SSO for an organization if you use an individual organization on {% data variables.product.product_name %} and do not use an enterprise account. For more information, see "[Managing SAML single sign-on for your organization](/organizations/managing-saml-single-sign-on-for-your-organization)."
 
-The SP metadata for an organization on {% data variables.product.product_location %} is available at `https://github.com/orgs/ORGANIZATION/saml/metadata`, where **ORGANIZATION** is the name of your organization on {% data variables.product.product_location %}.
+The SP metadata for an organization on {% data variables.location.product_location %} is available at `https://github.com/orgs/ORGANIZATION/saml/metadata`, where **ORGANIZATION** is the name of your organization on {% data variables.location.product_location %}.
 
 | Value | Other names | Description | Example |
 | :- | :- | :- | :- |
-| SP Entity ID | SP URL, audience restriction | The top-level URL for your organization on {% data variables.product.product_location %} | `https://github.com/orgs/ORGANIZATION` |
+| SP Entity ID | SP URL, audience restriction | The top-level URL for your organization on {% data variables.location.product_location %} | `https://github.com/orgs/ORGANIZATION` |
 | SP Assertion Consumer Service (ACS) URL | Reply, recipient, or destination URL | URL where IdP sends SAML responses | `https://github.com/orgs/ORGANIZATION/saml/consume` |
 | SP Single Sign-On (SSO) URL | | URL where IdP begins SSO |  `https://github.com/orgs/ORGANIZATION/saml/sso` |
 
 ### Enterprises
 
-The SP metadata for an enterprise on {% data variables.product.product_location %} is available at `https://github.com/enterprises/ENTERPRISE/saml/metadata`, where **ENTERPRISE** is the name of your enterprise on {% data variables.product.product_location %}.
+The SP metadata for an enterprise on {% data variables.location.product_location %} is available at `https://github.com/enterprises/ENTERPRISE/saml/metadata`, where **ENTERPRISE** is the name of your enterprise on {% data variables.location.product_location %}.
 
 | Value | Other names | Description | Example |
 | :- | :- | :- | :- |
-| SP Entity ID | SP URL, audience restriction | The top-level URL for your enterprise on {% data variables.product.product_location %} | `https://github.com/enterprises/ENTERPRISE` |
+| SP Entity ID | SP URL, audience restriction | The top-level URL for your enterprise on {% data variables.location.product_location %} | `https://github.com/enterprises/ENTERPRISE` |
 | SP Assertion Consumer Service (ACS) URL | Reply, recipient, or destination URL | URL where IdP sends SAML responses | `https://github.com/enterprises/ENTERPRISE/saml/consume` |
 | SP Single Sign-On (SSO) URL | | URL where IdP begins SSO |  `https://github.com/enterprises/ENTERPRISE/saml/sso` |
 
 {% elsif ghes %}
 
-The SP metadata for {% data variables.product.product_location %} is available at `http(s)://HOSTNAME/saml/metadata`, where **HOSTNAME** is the hostname for your instance. {% data variables.product.product_name %} uses the `urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST` binding.
+The SP metadata for {% data variables.location.product_location %} is available at `http(s)://HOSTNAME/saml/metadata`, where **HOSTNAME** is the hostname for your instance. {% data variables.product.product_name %} uses the `urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST` binding.
 
 | Value | Other names | Description | Example |
 | :- | :- | :- | :- |
@@ -78,10 +78,10 @@ The following SAML attributes are available for {% data variables.product.produc
 | Name | Required? | Description |
 | :- | :- | :- |
 | `NameID` | Yes | A persistent user identifier. Any persistent name identifier format may be used. {% ifversion ghec %}If you use an enterprise with {% data variables.product.prodname_emus %}, {% endif %}{% data variables.product.product_name %} will normalize the `NameID` element to use as a username unless one of the alternative assertions is provided. For more information, see "[Username considerations for external authentication](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication)."

{% note %}**Note:** It's important to use a human-readable, persistent identifier. Using a transient identifier format like `urn:oasis:names:tc:SAML:2.0:nameid-format:transient` will result in re-linking of accounts on every sign-in, which can be detrimental to authorization management.{% endnote %} | -| `SessionNotOnOrAfter` | No | The date that {% data variables.product.product_name %} invalidates the associated session. After invalidation, the person must authenticate once again to access {% ifversion ghec or ghae %}your enterprise's resources{% elsif ghes %}{% data variables.product.product_location %}{% endif %}. For more information, see "[Session duration and timeout](#session-duration-and-timeout)." | +| `SessionNotOnOrAfter` | No | The date that {% data variables.product.product_name %} invalidates the associated session. After invalidation, the person must authenticate once again to access {% ifversion ghec or ghae %}your enterprise's resources{% elsif ghes %}{% data variables.location.product_location %}{% endif %}. For more information, see "[Session duration and timeout](#session-duration-and-timeout)." | {%- ifversion ghes or ghae %} | `administrator` | No | When the value is `true`, {% data variables.product.product_name %} will automatically promote the user to be a {% ifversion ghes %}site administrator{% elsif ghae %}enterprise owner{% endif %}. Setting this attribute to anything but `true` will result in demotion, as long as the value is not blank. Omitting this attribute or leaving the value blank will not change the role of the user. | -| `username` | No | The username for {% data variables.product.product_location %}. | +| `username` | No | The username for {% data variables.location.product_location %}. | {%- endif %} | `full_name` | No | {% ifversion ghec %}If you configure SAML SSO for an enterprise and you use {% data variables.product.prodname_emus %}, the{% else %}The{% endif %} full name of the user to display on the user's profile page. | | `emails` | No | The email addresses for the user.{% ifversion ghes or ghae %} You can specify more than one address.{% endif %}{% ifversion ghec or ghes %} If you sync license usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}, {% data variables.product.prodname_github_connect %} uses `emails` to identify unique users across products. For more information, see "[Syncing license usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)."{% endif %} | @@ -102,7 +102,7 @@ To specify more than one value for an attribute, use multiple `` element on the root response document and match the ACS URL only when the root response document is signed. If your IdP signs the assertion, {% data variables.product.product_name %} will ignore the assertion. -- Your IdP must always provide the `` element as part of the `` element. The value must match your `EntityId` for {% data variables.product.product_name %}.{% ifversion ghes or ghae %} This value is the URL where you access {% data variables.product.product_location %}, such as {% ifversion ghes %}`http(s)://HOSTNAME`{% elsif ghae %}`https://SUBDOMAIN.githubenterprise.com`, `https://SUBDOMAIN.github.us`, or `https://SUBDOMAIN.ghe.com`{% endif %}.{% endif %} +- Your IdP must always provide the `` element as part of the `` element. The value must match your `EntityId` for {% data variables.product.product_name %}.{% ifversion ghes or ghae %} This value is the URL where you access {% data variables.location.product_location %}, such as {% ifversion ghes %}`http(s)://HOSTNAME`{% elsif ghae %}`https://SUBDOMAIN.githubenterprise.com`, `https://SUBDOMAIN.github.us`, or `https://SUBDOMAIN.ghe.com`{% endif %}.{% endif %} {%- ifversion ghec %} - If you configure SAML for an organization, this value is `https://github.com/orgs/ORGANIZATION`. @@ -132,7 +132,7 @@ To specify more than one value for an attribute, use multiple `YOUR-INSTANCE-URL ``` -Ensure that you set the value for `Audience` on your IdP to the `EntityId` for {% data variables.product.product_location %}, which is the full URL to your instance. For example, `https://ghe.corp.example.com`. +Ensure that you set the value for `Audience` on your IdP to the `EntityId` for {% data variables.location.product_location %}, which is the full URL to your instance. For example, `https://ghe.corp.example.com`. {% endif %} {% data reusables.saml.current-time-earlier-than-notbefore-condition %} diff --git a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid.md b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid.md index 55d01d5b37..65bdad9b8c 100644 --- a/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid.md +++ b/content/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid.md @@ -1,7 +1,7 @@ --- title: Updating a user's SAML NameID shortTitle: Update SAML NameID -intro: 'When an account''s `NameID` changes on your identity provider (IdP) and the person can no longer {% ifversion ghes or ghae %}sign into {% data variables.product.product_location %}{% elsif ghec %}authenticate to access your enterprise''s resources{% endif %}, you must {% ifversion ghec %}either contact {% data variables.product.company_short %} Support or revoke the person''s linked identity{% elsif ghes %}update the `NameID` mapping on {% data variables.product.product_location %}{% elsif ghae %}contact {% data variables.product.company_short %} Support{% endif %}.' +intro: 'When an account''s `NameID` changes on your identity provider (IdP) and the person can no longer {% ifversion ghes or ghae %}sign into {% data variables.location.product_location %}{% elsif ghec %}authenticate to access your enterprise''s resources{% endif %}, you must {% ifversion ghec %}either contact {% data variables.product.company_short %} Support or revoke the person''s linked identity{% elsif ghes %}update the `NameID` mapping on {% data variables.location.product_location %}{% elsif ghae %}contact {% data variables.product.company_short %} Support{% endif %}.' versions: ghes: '*' type: how_to diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md index b241ff8178..e45d5484e8 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-aws.md @@ -19,7 +19,7 @@ shortTitle: Install on AWS - {% data reusables.enterprise_installation.software-license %} - You must have an AWS account capable of launching EC2 instances and creating EBS volumes. For more information, see the [Amazon Web Services website](https://aws.amazon.com/). -- Most actions needed to launch {% data variables.product.product_location %} may also be performed using the AWS management console. However, we recommend installing the AWS command line interface (CLI) for initial setup. Examples using the AWS CLI are included below. For more information, see Amazon's guides "[Working with the AWS Management Console](http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html)" and "[What is the AWS Command Line Interface](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)." +- Most actions needed to launch {% data variables.location.product_location %} may also be performed using the AWS management console. However, we recommend installing the AWS command line interface (CLI) for initial setup. Examples using the AWS CLI are included below. For more information, see Amazon's guides "[Working with the AWS Management Console](http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html)" and "[What is the AWS Command Line Interface](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)." {% note %} @@ -38,7 +38,7 @@ This guide assumes you are familiar with the following AWS concepts: For an architectural overview, see the "[AWS Architecture Diagram for Deploying GitHub Enterprise Server](/assets/images/installing-github-enterprise-server-on-aws.png)". -This guide recommends the principle of least privilege when setting up {% data variables.product.product_location %} on AWS. For more information, refer to the [AWS Identity and Access Management (IAM) documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). +This guide recommends the principle of least privilege when setting up {% data variables.location.product_location %} on AWS. For more information, refer to the [AWS Identity and Access Management (IAM) documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). ## Hardware considerations @@ -46,7 +46,7 @@ This guide recommends the principle of least privilege when setting up {% data v ## Determining the instance type -Before launching {% data variables.product.product_location %} on AWS, you'll need to determine the machine type that best fits the needs of your organization. To review the minimum requirements for {% data variables.product.product_name %}, see "[Minimum requirements](#minimum-requirements)." +Before launching {% data variables.location.product_location %} on AWS, you'll need to determine the machine type that best fits the needs of your organization. To review the minimum requirements for {% data variables.product.product_name %}, see "[Minimum requirements](#minimum-requirements)." {% data reusables.enterprise_installation.warning-on-scaling %} diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md index d852202880..a23d4e9069 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-azure.md @@ -29,7 +29,7 @@ You can deploy {% data variables.product.prodname_ghe_server %} on global Azure ## Determining the virtual machine type -Before launching {% data variables.product.product_location %} on Azure, you'll need to determine the machine type that best fits the needs of your organization. For more information about memory optimized machines, see "[Memory optimized virtual machine sizes](https://docs.microsoft.com/en-gb/azure/virtual-machines/sizes-memory)" in the Microsoft Azure documentation. To review the minimum resource requirements for {% data variables.product.product_name %}, see "[Minimum requirements](#minimum-requirements)." +Before launching {% data variables.location.product_location %} on Azure, you'll need to determine the machine type that best fits the needs of your organization. For more information about memory optimized machines, see "[Memory optimized virtual machine sizes](https://docs.microsoft.com/en-gb/azure/virtual-machines/sizes-memory)" in the Microsoft Azure documentation. To review the minimum resource requirements for {% data variables.product.product_name %}, see "[Minimum requirements](#minimum-requirements)." {% data reusables.enterprise_installation.warning-on-scaling %} @@ -65,7 +65,7 @@ Before launching {% data variables.product.product_location %} on Azure, you'll 4. Create and attach a new unencrypted data disk to the VM, and configure the size based on your user license count. For more information, see "[`az vm disk attach`](https://docs.microsoft.com/cli/azure/vm/disk?view=azure-cli-latest#az_vm_disk_attach)" in the Microsoft documentation. - Pass in options for the name of your VM (for example, `ghe-acme-corp`), the resource group, the premium storage SKU, the size of the disk (for example, `100`), and a name for the resulting VHD. + Pass in options for the name of your VM (for example, `ghe-acme-corp`), the resource group, the premium storage SKU, the size of the disk (for example, `200`), and a name for the resulting VHD. ```shell $ az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWrite @@ -73,7 +73,7 @@ Before launching {% data variables.product.product_location %} on Azure, you'll {% note %} - **Note:** For non-production instances to have sufficient I/O throughput, the recommended minimum disk size is 40 GiB with read/write cache enabled (`--caching ReadWrite`). + **Note:** For non-production instances to have sufficient I/O throughput, the recommended minimum disk size is 150 GiB with read/write cache enabled (`--caching ReadWrite`). {% endnote %} diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md index 421d13199a..b60a736ab4 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md @@ -27,7 +27,7 @@ shortTitle: Install on GCP ## Determining the machine type -Before launching {% data variables.product.product_location %} on Google Cloud Platform, you'll need to determine the machine type that best fits the needs of your organization. To review the minimum requirements for {% data variables.product.product_name %}, see "[Minimum requirements](#minimum-requirements)." +Before launching {% data variables.location.product_location %} on Google Cloud Platform, you'll need to determine the machine type that best fits the needs of your organization. To review the minimum requirements for {% data variables.product.product_name %}, see "[Minimum requirements](#minimum-requirements)." {% data reusables.enterprise_installation.warning-on-scaling %} diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-openstack-kvm.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-openstack-kvm.md index 26dc61025e..3381721392 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-openstack-kvm.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-openstack-kvm.md @@ -41,7 +41,7 @@ shortTitle: Install on OpenStack {% data reusables.enterprise_installation.necessary_ports %} 4. Optionally, associate a floating IP to the instance. Depending on your OpenStack setup, you may need to allocate a floating IP to the project and associate it to the instance. Contact your system administrator to determine if this is the case for you. For more information, see "[Allocate a floating IP address to an instance](https://docs.openstack.org/horizon/latest/user/configure-access-and-security-for-instances.html#allocate-a-floating-ip-address-to-an-instance)" in the OpenStack documentation. -5. Launch {% data variables.product.product_location %} using the image, data volume, and security group created in the previous steps. For instructions, see the OpenStack guide "[Launch and manage instances](https://docs.openstack.org/horizon/latest/user/launch-instances.html)." +5. Launch {% data variables.location.product_location %} using the image, data volume, and security group created in the previous steps. For instructions, see the OpenStack guide "[Launch and manage instances](https://docs.openstack.org/horizon/latest/user/launch-instances.html)." ## Configuring the {% data variables.product.prodname_ghe_server %} instance diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-vmware.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-vmware.md index 4ab6243b0d..5c82bae468 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-vmware.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-vmware.md @@ -21,7 +21,7 @@ shortTitle: Install on VMware ## Prerequisites - {% data reusables.enterprise_installation.software-license %} -- You must have a VMware vSphere ESXi Hypervisor, applied to a bare metal machine that will run {% data variables.product.product_location %}s. We support versions 5.5 through 6.7 for {% data variables.product.prodname_ghe_server %} 3.4 and earlier. ESX version 7.0 is supported for {% data variables.product.prodname_ghe_server %} 3.5 and later. The ESXi Hypervisor is free and does not include the (optional) vCenter Server. For more information, see [the VMware ESXi documentation](https://www.vmware.com/products/esxi-and-esx.html). +- You must have a VMware vSphere ESXi Hypervisor, applied to a bare metal machine that will run {% data variables.location.product_location %}s. We support versions 5.5 through 6.7 for {% data variables.product.prodname_ghe_server %} 3.4 and earlier. ESX version 7.0 is supported for {% data variables.product.prodname_ghe_server %} 3.5 and later. The ESXi Hypervisor is free and does not include the (optional) vCenter Server. For more information, see [the VMware ESXi documentation](https://www.vmware.com/products/esxi-and-esx.html). - You will need access to a vSphere Client. If you have vCenter Server you can use the vSphere Web Client. For more information, see the VMware guide "[Log in to vCenter Server by Using the vSphere Web Client](https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.install.doc/GUID-CE128B59-E236-45FF-9976-D134DADC8178.html)." ## Hardware considerations diff --git a/content/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance.md b/content/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance.md index 9445e64621..ecfcde73e0 100644 --- a/content/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance.md +++ b/content/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance.md @@ -17,7 +17,7 @@ miniTocMaxHeadingLevel: 3 ## About staging instances -{% data variables.product.company_short %} recommends that you set up a separate environment to test backups, updates, or changes to the configuration for {% data variables.product.product_location %}. This environment, which you should isolate from your production systems, is called a staging environment. +{% data variables.product.company_short %} recommends that you set up a separate environment to test backups, updates, or changes to the configuration for {% data variables.location.product_location %}. This environment, which you should isolate from your production systems, is called a staging environment. For example, to protect against loss of data, you can regularly validate the backup of your production instance. You can regularly restore the backup of your production data to a separate {% data variables.product.product_name %} instance in a staging environment. On this staging instance, you could also test the upgrade to the latest feature release of {% data variables.product.product_name %}. @@ -136,7 +136,7 @@ To access the staging instance using the same hostname, update your local hosts {% note %} -**Note**: Your staging instance must be accessible from the same hostname as your production instance. Changing the hostname for {% data variables.product.product_location %} is not supported. For more information, see "[Configuring a hostname](/admin/configuration/configuring-network-settings/configuring-a-hostname)." +**Note**: Your staging instance must be accessible from the same hostname as your production instance. Changing the hostname for {% data variables.location.product_location %} is not supported. For more information, see "[Configuring a hostname](/admin/configuration/configuring-network-settings/configuring-a-hostname)." {% endnote %} diff --git a/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics.md b/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics.md index 69e9be94c0..8dca96d496 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics.md +++ b/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics.md @@ -20,7 +20,7 @@ When you enable {% data variables.product.prodname_server_statistics %}, you're ## About data security -We respect your data. We will never transmit data from {% data variables.product.product_location %} unless you have first given us permission to do so. +We respect your data. We will never transmit data from {% data variables.location.product_location %} unless you have first given us permission to do so. We collect no personal data. We also don't collect any {% data variables.product.company_short %} content, such as code, issues, comments, or pull request content. @@ -48,7 +48,7 @@ You can disable the {% data variables.product.prodname_server_statistics %} feat ## {% data variables.product.prodname_server_statistics %} data collected -After you enable {% data variables.product.prodname_server_statistics %}, metrics are collected through a daily job that runs on {% data variables.product.product_location %}. The aggregate metrics are stored on your organization or enterprise account on {% data variables.product.prodname_ghe_cloud %} and are not stored on {% data variables.product.product_location %}. +After you enable {% data variables.product.prodname_server_statistics %}, metrics are collected through a daily job that runs on {% data variables.location.product_location %}. The aggregate metrics are stored on your organization or enterprise account on {% data variables.product.prodname_ghe_cloud %} and are not stored on {% data variables.location.product_location %}. The following aggregate metrics will be collected and transmitted on a daily basis and represent the total counts for the day: - `active_hooks` diff --git a/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/exporting-server-statistics.md b/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/exporting-server-statistics.md index ed7ee7003b..7c27d61f40 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/exporting-server-statistics.md +++ b/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/exporting-server-statistics.md @@ -15,8 +15,8 @@ Before you can download this data, you must enable {% data variables.product.pro To preview the metrics available to download, see "[About {% data variables.product.prodname_server_statistics %}](/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics)." To download these metrics, you must be an enterprise owner or organization owner on {% data variables.product.prodname_ghe_cloud %}. - - If {% data variables.product.product_location %} is connected to an enterprise account on {% data variables.product.prodname_ghe_cloud %}, see "[Downloading metrics from your enterprise account](#downloading-metrics-from-your-enterprise-account)." - - If {% data variables.product.product_location %} is connected to an organization on {% data variables.product.prodname_ghe_cloud %}, see "[Downloading metrics from your organization](#downloading-metrics-from-your-organization)." + - If {% data variables.location.product_location %} is connected to an enterprise account on {% data variables.product.prodname_ghe_cloud %}, see "[Downloading metrics from your enterprise account](#downloading-metrics-from-your-enterprise-account)." + - If {% data variables.location.product_location %} is connected to an organization on {% data variables.product.prodname_ghe_cloud %}, see "[Downloading metrics from your organization](#downloading-metrics-from-your-organization)." To learn more about {% data variables.product.prodname_github_connect %}, see "[About {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/about-github-connect)." @@ -38,7 +38,7 @@ To learn more about {% data variables.product.prodname_github_connect %}, see "[ 1. In the top-right corner of {% data variables.product.prodname_ghe_cloud %}, click your profile photo, then click **Your organizations**. ![Drop down menu with "Your organizations" option](/assets/images/help/enterprises/github-enterprise-cloud-organizations.png) -2. In the list of organizations, next to the organization that's connected to {% data variables.product.product_location %}, click **Settings**. +2. In the list of organizations, next to the organization that's connected to {% data variables.location.product_location %}, click **Settings**. ![Settings button next to {% data variables.product.prodname_ghe_cloud %} organization](/assets/images/help/enterprises/settings-for-ghec-org.png) 3. On the left, click **GitHub Connect**. diff --git a/content/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/managing-global-webhooks.md b/content/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/managing-global-webhooks.md index 750407afce..b52e938922 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/managing-global-webhooks.md +++ b/content/admin/monitoring-activity-in-your-enterprise/exploring-user-activity/managing-global-webhooks.md @@ -28,7 +28,7 @@ topics: You can use global webhooks to notify an external web server when events occur within your enterprise. You can configure the server to receive the webhook's payload, then run an application or code that monitors, responds to, or enforces rules for user and organization management for your enterprise. For more information, see "[Webhooks](/developers/webhooks-and-events/webhooks)." -For example, you can configure {% data variables.product.product_location %} to send a webhook when someone creates, deletes, or modifies a repository or organization within your enterprise. You can configure the server to automatically perform a task after receiving the webhook. +For example, you can configure {% data variables.location.product_location %} to send a webhook when someone creates, deletes, or modifies a repository or organization within your enterprise. You can configure the server to automatically perform a task after receiving the webhook. ![List of global webhooks](/assets/images/enterprise/site-admin-settings/list-of-global-webhooks.png) diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md index 2da60940c7..863a314cec 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md @@ -28,7 +28,7 @@ topics: The scope of the events that appear in your enterprise's audit log depend on whether your enterprise uses {% data variables.product.prodname_emus %}. For more information about {% data variables.product.prodname_emus %}, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users)." - If your enterprise does not use {% data variables.product.prodname_emus %}, the audit log only includes events related to the enterprise account and the organizations within the enterprise account, which are listed in this article. -- If your enterprise uses {% data variables.product.prodname_emus %}, the audit log also includes user events for {% data variables.product.prodname_managed_users %}, such as each time the user logs in to {% data variables.product.product_name %}. For a list of these events, see "[Reviewing your security log](/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log#security-log-actions)." +- If your enterprise uses {% data variables.product.prodname_emus %}, the audit log also includes user events for {% data variables.enterprise.prodname_managed_users %}, such as each time the user logs in to {% data variables.product.product_name %}. For a list of these events, see "[Reviewing your security log](/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log#security-log-actions)." {% endif %} {%- ifversion fpt or ghec %} @@ -159,6 +159,32 @@ The scope of the events that appear in your enterprise's audit log depend on whe | `business.update_saml_provider_settings` | The SAML single sign-on provider settings for an enterprise were updated. {%- endif %} +{% ifversion code-security-audit-log-events %} + +## `business_advanced_security` category actions + +| Action | Description +|--------|------------- +| `business_advanced_security.disabled` | {% data variables.product.prodname_GH_advanced_security %} was disabled for your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_advanced_security.enabled` | {% data variables.product.prodname_GH_advanced_security %} was enabled for your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_advanced_security.disabled_for_new_repos` | {% data variables.product.prodname_GH_advanced_security %} was disabled for new repositories in your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_advanced_security.enabled_for_new_repos` | {% data variables.product.prodname_GH_advanced_security %} was enabled for new repositories in your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." + +{% endif %} + +{% ifversion code-security-audit-log-events %} + +## `business_secret_scanning` category actions + +| Action | Description +|--------|------------- +| `business_secret_scanning.disable` | {% data variables.product.prodname_secret_scanning_caps %} was disabled for your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning.enable` | {% data variables.product.prodname_secret_scanning_caps %} was enabled for your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning.disabled_for_new_repos` | {% data variables.product.prodname_secret_scanning_caps %} was disabled for new repositories in your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning.enabled_for_new_repos` | {% data variables.product.prodname_secret_scanning_caps %} was enabled for new repositories in your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." + +{% endif %} + {%- ifversion secret-scanning-audit-log-custom-patterns %} ## `business_secret_scanning_custom_pattern` category actions @@ -169,6 +195,31 @@ Action | Description | `business_secret_scanning_custom_pattern.update` | Changes to an enterprise-level custom pattern are saved for secret scanning. {%- endif %} +{% ifversion code-security-audit-log-events %} + +## `business_secret_scanning_push_protection` category actions + +| Action | Description +|--------|------------- +| `business_secret_scanning_push_protection.disable` | Push protection for {% data variables.product.prodname_secret_scanning %} was disabled for your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning_push_protection.enable` | Push protection for {% data variables.product.prodname_secret_scanning %} was enabled for your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning_push_protection.disabled_for_new_repos` | Push protection for {% data variables.product.prodname_secret_scanning %} was disabled for new repositories in your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning_push_protection.enabled_for_new_repos` | Push protection for {% data variables.product.prodname_secret_scanning %} was enabled for new repositories in your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." + +{% endif %} + +{% ifversion code-security-audit-log-events %} + +## `business_secret_scanning_push_protection_custom_message` category actions + +| Action | Description +|--------|------------- +| `business_secret_scanning_push_protection_custom_message.disable` | The custom message triggered by an attempted push to a push-protected repository was disabled for your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning_push_protection_custom_message.enable` | The custom message triggered by an attempted push to a push-protected repository was enabled for your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning_push_protection_custom_message.update` | The custom message triggered by an attempted push to a push-protected repository was updated for your enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." + +{% endif %} + ## `checks` category actions | Action | Description @@ -436,7 +487,7 @@ Before you'll see `git` category actions, you must enable Git events in the audi | `integration.revoke_all_tokens` | All user tokens for an integration were requested to be revoked. | `integration.revoke_tokens` | Token(s) for an integration were revoked. -## `integration_installation`category actions +## `integration_installation` category actions | Action | Description |--------|------------- @@ -573,7 +624,7 @@ Before you'll see `git` category actions, you must enable Git events in the audi | Action | Description |--------|------------- -`oauth_access.create` | An [OAuth access token][] was generated for a user account. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." +`oauth_access.create` | An [OAuth access token][] was generated for a user account. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." `oauth_access.destroy` | An [OAuth access token][] was deleted from a user account. [OAuth access token]: /developers/apps/building-oauth-apps/authorizing-oauth-apps @@ -717,6 +768,11 @@ Before you'll see `git` category actions, you must enable Git events in the audi {%- ifversion fpt or ghec %} | `org.runner_group_visiblity_updated` | The visibility of a self-hosted runner group was updated via the REST API. For more information, see "[Update a self-hosted runner group for an organization](/rest/reference/actions#update-a-self-hosted-runner-group-for-an-organization)." {%- endif %} +{%- ifversion code-security-audit-log-events %} +| `org.secret_scanning_push_protection_custom_message_disabled` | The custom message triggered by an attempted push to a push-protected repository was disabled for your organization. For more information, see "[Protecting pushes with {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#enabling-secret-scanning-as-a-push-protection-for-an-organization)." +| `org.secret_scanning_push_protection_custom_message_enabled` | The custom message triggered by an attempted push to a push-protected repository was enabled for your organization. For more information, see "[Protecting pushes with {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#enabling-secret-scanning-as-a-push-protection-for-an-organization)." +| `org.secret_scanning_push_protection_custom_message_updated` | The custom message triggered by an attempted push to a push-protected repository was updated for your organization. For more information, see "[Protecting pushes with {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#enabling-secret-scanning-as-a-push-protection-for-an-organization)." +{%- endif %} {%- ifversion secret-scanning-audit-log-custom-patterns %} | `org.secret_scanning_push_protection_disable` | An organization owner or administrator disabled push protection for secret scanning. For more information, see "[Protecting pushes with secret scanning](/enterprise-cloud@latest/code-security/secret-scanning/protecting-pushes-with-secret-scanning)." | `org.secret_scanning_push_protection_enable` | An organization owner or administrator enabled push protection for secret scanning. diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/configuring-the-audit-log-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/configuring-the-audit-log-for-your-enterprise.md index 855e7c1a15..0bcdaf5744 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/configuring-the-audit-log-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/configuring-the-audit-log-for-your-enterprise.md @@ -22,7 +22,7 @@ After you configure a retention period, you can enable or disable Git-related ev ## Configuring a retention period for audit log data -You can configure a retention period for audit log data for {% data variables.product.product_location %}. Data that exceeds the period you configure will be permanently removed from disk. +You can configure a retention period for audit log data for {% data variables.location.product_location %}. Data that exceeds the period you configure will be permanently removed from disk. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise.md index 74917e1594..540bbcda05 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise.md @@ -22,17 +22,17 @@ You are responsible for meeting any legal obligations that accompany the viewing If you choose to display IP addresses, the IP addresses only appear in your enterprise's audit log. IP addresses will not appear for events in the audit logs for individual organizations owned by your enterprise. For more information about organization audit logs, see "[Reviewing the audit log for your organization](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization)." -You can display IP addresses in the audit log regardless of which authentication method you use for your enterprise on {% data variables.product.product_location %}. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)." +You can display IP addresses in the audit log regardless of which authentication method you use for your enterprise on {% data variables.location.product_location %}. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)." -When anyone creates an account on {% data variables.product.product_location %}, the person agrees to {% data variables.product.company_short %}'s collection of basic information about connections to {% data variables.product.company_short %}'s services, including source IP address. For more information, see "[GitHub Privacy Statement](/free-pro-team@latest/site-policy/privacy-policies/github-privacy-statement#usage-information)." +When anyone creates an account on {% data variables.location.product_location %}, the person agrees to {% data variables.product.company_short %}'s collection of basic information about connections to {% data variables.product.company_short %}'s services, including source IP address. For more information, see "[GitHub Privacy Statement](/free-pro-team@latest/site-policy/privacy-policies/github-privacy-statement#usage-information)." ## Events that display IP addresses in the audit log {% data variables.product.product_name %} displays an IP address in the audit log when a member of the enterprise interacts with a resource owned by your enterprise or an organization in your enterprise. For example, you will see an IP address for audited events involving an internal or private repository owned by an organization in your enterprise, or resources associated with those repositories, such as an issue, pull request, action, or project. -If members of your enterprise access {% data variables.product.product_location %} with personal accounts that they manage, because you do not use {% data variables.product.prodname_emus %}, {% data variables.product.product_name %} does not display an event or IP address in the audit log for the following actions. +If members of your enterprise access {% data variables.location.product_location %} with personal accounts that they manage, because you do not use {% data variables.product.prodname_emus %}, {% data variables.product.product_name %} does not display an event or IP address in the audit log for the following actions. -- Authentication to {% data variables.product.product_location %} +- Authentication to {% data variables.location.product_location %} - Interactions with a resource owned by the personal account, including a repository, gist, or project - Interactions with a public repository owned by an organization in your enterprise diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md index 643a2ff328..7ef4d78ae4 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md @@ -311,7 +311,7 @@ To stream audit logs to Splunk's HTTP Event Collector (HEC) endpoint you must ma {% ifversion pause-audit-log-stream %} ## Pausing audit log streaming -Pausing the stream allows you to perform maintenance on the receiving application without losing audit data. Audit logs are stored for up to seven days on {% data variables.product.product_location %} and are then exported when you unpause the stream. +Pausing the stream allows you to perform maintenance on the receiving application without losing audit data. Audit logs are stored for up to seven days on {% data variables.location.product_location %} and are then exported when you unpause the stream. {% ifversion streaming-datadog %} Datadog only accepts logs from up to 18 hours in the past. If you pause a stream to a Datadog endpoint for more than 18 hours, you risk losing logs that Datadog won't accept after you resume streaming. diff --git a/content/admin/overview/about-data-residency.md b/content/admin/overview/about-data-residency.md index 9e679331b0..1147142dd9 100644 --- a/content/admin/overview/about-data-residency.md +++ b/content/admin/overview/about-data-residency.md @@ -9,7 +9,7 @@ topics: - Fundamentals --- -{% data reusables.github-ae.github-ae-enables-you %} You can choose the geography where you store all the customer data for {% data variables.product.product_location %}, and members of your enterprise can access {% data variables.product.product_name %} from anywhere in the world. +{% data reusables.github-ae.github-ae-enables-you %} You can choose the geography where you store all the customer data for {% data variables.location.product_location %}, and members of your enterprise can access {% data variables.product.product_name %} from anywhere in the world. When creating your enterprise, you can tell {% data variables.contact.contact_enterprise_sales %} where to store your customer data. {% data variables.product.company_short %} will not store or move any of your enterprise's data outside of the geography you choose. diff --git a/content/admin/overview/about-enterprise-accounts.md b/content/admin/overview/about-enterprise-accounts.md index 60793424f8..feb02861bf 100644 --- a/content/admin/overview/about-enterprise-accounts.md +++ b/content/admin/overview/about-enterprise-accounts.md @@ -28,7 +28,7 @@ Your enterprise account on {% data variables.product.prodname_dotcom_the_website {% elsif ghes or ghae %} -The enterprise account on {% ifversion ghes %}{% data variables.product.product_location_enterprise %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} allows you to manage the organizations{% ifversion ghes %} on{% elsif ghae %} owned by{% endif %} your {% ifversion ghes %}{% data variables.product.prodname_ghe_server %} instance{% elsif ghae %}enterprise{% endif %}. +The enterprise account on {% ifversion ghes %}{% data variables.location.product_location_enterprise %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} allows you to manage the organizations{% ifversion ghes %} on{% elsif ghae %} owned by{% endif %} your {% ifversion ghes %}{% data variables.product.prodname_ghe_server %} instance{% elsif ghae %}enterprise{% endif %}. {% endif %} @@ -76,7 +76,7 @@ If you use both {% data variables.product.prodname_ghe_cloud %} and {% data vari - Billing and usage for {% data variables.product.prodname_ghe_server %} instances - Requests and support bundle sharing with {% data variables.contact.enterprise_support %} -You can also connect the enterprise account on {% data variables.product.product_location_enterprise %} to your enterprise account on {% data variables.product.prodname_dotcom_the_website %} to see license usage details for your {% data variables.product.prodname_enterprise %} subscription from {% data variables.product.prodname_dotcom_the_website %}. For more information, see {% ifversion ghec %}"[Syncing license usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}](/enterprise-server/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)" in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}"[Syncing license usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)."{% endif %} +You can also connect the enterprise account on {% data variables.location.product_location_enterprise %} to your enterprise account on {% data variables.product.prodname_dotcom_the_website %} to see license usage details for your {% data variables.product.prodname_enterprise %} subscription from {% data variables.product.prodname_dotcom_the_website %}. For more information, see {% ifversion ghec %}"[Syncing license usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}](/enterprise-server/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)" in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}"[Syncing license usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)."{% endif %} For more information about the differences between {% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_ghe_server %}, see "[{% data variables.product.prodname_dotcom %}'s products](/get-started/learning-about-github/githubs-products)." {% data reusables.enterprise-accounts.to-upgrade-or-get-started %} diff --git a/content/admin/overview/about-github-enterprise-server.md b/content/admin/overview/about-github-enterprise-server.md index 9a4e27c7d6..c3b54b8acf 100644 --- a/content/admin/overview/about-github-enterprise-server.md +++ b/content/admin/overview/about-github-enterprise-server.md @@ -45,7 +45,7 @@ For more information, see "[Setting up a {% data variables.product.prodname_ghe_ You can configure and monitor {% data variables.product.product_name %} via browser, administrative SSH access, and REST or GraphQL APIs. {% data variables.product.company_short %} has found that people with Linux administration experience are more successful with the deployment and maintainance of {% data variables.product.product_name %}. -You can give certain employees administrative access to {% data variables.product.product_name %}, so they can set up external authentication, configure the instance to meet developer needs, and monitor the instance's activity and performance. To ensure compliance with business rules or regulatory restrictions, administrators can configure policies that control how people use {% data variables.product.product_location %}. For more information, see the following articles. +You can give certain employees administrative access to {% data variables.product.product_name %}, so they can set up external authentication, configure the instance to meet developer needs, and monitor the instance's activity and performance. To ensure compliance with business rules or regulatory restrictions, administrators can configure policies that control how people use {% data variables.location.product_location %}. For more information, see the following articles. - "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)" - "[Configuring your enterprise](/admin/configuration/configuring-your-enterprise)" diff --git a/content/admin/overview/system-overview.md b/content/admin/overview/system-overview.md index fed53dc1e8..c1e59ff959 100644 --- a/content/admin/overview/system-overview.md +++ b/content/admin/overview/system-overview.md @@ -108,7 +108,7 @@ By default, the instance also offers Secure Shell (SSH) access for both reposito {% ifversion ghes > 3.3 %} -If you configure SAML authentication for {% data variables.product.product_location %}, you can enable encrypted assertions between the instance and your SAML IdP. For more information, see "[Using SAML](/admin/identity-and-access-management/authenticating-users-for-your-github-enterprise-server-instance/using-saml#enabling-encrypted-assertions)." +If you configure SAML authentication for {% data variables.location.product_location %}, you can enable encrypted assertions between the instance and your SAML IdP. For more information, see "[Using SAML](/admin/identity-and-access-management/authenticating-users-for-your-github-enterprise-server-instance/using-saml#enabling-encrypted-assertions)." {% endif %} @@ -129,7 +129,7 @@ For more information about {% data variables.product.product_name %}'s user perm - SSH public key authentication provides both repository access using Git and administrative shell access. For more information, see "[About SSH](/authentication/connecting-to-github-with-ssh/about-ssh)" and "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)." - Username and password authentication with HTTP cookies provides web application access and session management, with optional two-factor authentication (2FA). For more information, see "[Using built-in authentication](/admin/identity-and-access-management/authenticating-users-for-your-github-enterprise-server-instance/using-built-in-authentication)." - External LDAP, SAML, or CAS authentication using an LDAP service, SAML Identity Provider (IdP), or other compatible service provides access to the web application. For more information, see "[Managing IAM for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise)." -- OAuth and Personal Access Tokens provide access to Git repository data and APIs for both external clients and services. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +- OAuth and {% data variables.product.pat_generic %}s provide access to Git repository data and APIs for both external clients and services. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." ### Audit and access logging diff --git a/content/admin/packages/enabling-github-packages-with-aws.md b/content/admin/packages/enabling-github-packages-with-aws.md index d84c8734a2..a60407369d 100644 --- a/content/admin/packages/enabling-github-packages-with-aws.md +++ b/content/admin/packages/enabling-github-packages-with-aws.md @@ -23,7 +23,7 @@ shortTitle: Enable Packages with AWS ## Prerequisites -Before you can enable and configure {% data variables.product.prodname_registry %} on {% data variables.product.product_location_enterprise %}, you need to prepare your AWS storage bucket. To prepare your AWS storage bucket, we recommend consulting the official AWS docs at [AWS Documentation](https://docs.aws.amazon.com/index.html). +Before you can enable and configure {% data variables.product.prodname_registry %} on {% data variables.location.product_location_enterprise %}, you need to prepare your AWS storage bucket. To prepare your AWS storage bucket, we recommend consulting the official AWS docs at [AWS Documentation](https://docs.aws.amazon.com/index.html). Ensure your AWS access key ID and secret have the following permissions: - `s3:PutObject` diff --git a/content/admin/packages/enabling-github-packages-with-azure-blob-storage.md b/content/admin/packages/enabling-github-packages-with-azure-blob-storage.md index 020fb01dbb..a1a74dd1f4 100644 --- a/content/admin/packages/enabling-github-packages-with-azure-blob-storage.md +++ b/content/admin/packages/enabling-github-packages-with-azure-blob-storage.md @@ -22,7 +22,7 @@ shortTitle: Enable Packages with Azure ## Prerequisites -Before you can enable and configure {% data variables.product.prodname_registry %} on {% data variables.product.product_location_enterprise %}, you need to prepare your Azure Blob storage bucket. To prepare your Azure Blob storage bucket, we recommend consulting the official Azure Blob storage docs at the official [Azure Blob Storage documentation site](https://docs.microsoft.com/en-us/azure/storage/blobs/). +Before you can enable and configure {% data variables.product.prodname_registry %} on {% data variables.location.product_location_enterprise %}, you need to prepare your Azure Blob storage bucket. To prepare your Azure Blob storage bucket, we recommend consulting the official Azure Blob storage docs at the official [Azure Blob Storage documentation site](https://docs.microsoft.com/en-us/azure/storage/blobs/). ## Enabling {% data variables.product.prodname_registry %} with Azure Blob Storage diff --git a/content/admin/packages/enabling-github-packages-with-minio.md b/content/admin/packages/enabling-github-packages-with-minio.md index de67c4ae7c..0fa9b47390 100644 --- a/content/admin/packages/enabling-github-packages-with-minio.md +++ b/content/admin/packages/enabling-github-packages-with-minio.md @@ -22,7 +22,7 @@ shortTitle: Enable Packages with MinIO ## Prerequisites -Before you can enable and configure {% data variables.product.prodname_registry %} on {% data variables.product.product_location_enterprise %}, you need to prepare your MinIO storage bucket. To help you quickly set up a MinIO bucket and navigate MinIO's customization options, see the "[Quickstart for configuring your MinIO storage bucket for {% data variables.product.prodname_registry %}](/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages)." +Before you can enable and configure {% data variables.product.prodname_registry %} on {% data variables.location.product_location_enterprise %}, you need to prepare your MinIO storage bucket. To help you quickly set up a MinIO bucket and navigate MinIO's customization options, see the "[Quickstart for configuring your MinIO storage bucket for {% data variables.product.prodname_registry %}](/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages)." Ensure your MinIO external storage access key ID and secret have these permissions: - `s3:PutObject` diff --git a/content/admin/packages/getting-started-with-github-packages-for-your-enterprise.md b/content/admin/packages/getting-started-with-github-packages-for-your-enterprise.md index 86480eb524..43a79f9653 100644 --- a/content/admin/packages/getting-started-with-github-packages-for-your-enterprise.md +++ b/content/admin/packages/getting-started-with-github-packages-for-your-enterprise.md @@ -1,7 +1,7 @@ --- title: Getting started with GitHub Packages for your enterprise shortTitle: Getting started with GitHub Packages -intro: 'You can start using {% data variables.product.prodname_registry %} on {% data variables.product.product_location %} by enabling the feature, configuring third-party storage, configuring the ecosystems you want to support, and updating your TLS certificate.' +intro: 'You can start using {% data variables.product.prodname_registry %} on {% data variables.location.product_location %} by enabling the feature, configuring third-party storage, configuring the ecosystems you want to support, and updating your TLS certificate.' redirect_from: - /enterprise/admin/packages/enabling-github-packages-for-your-enterprise - /admin/packages/enabling-github-packages-for-your-enterprise @@ -23,7 +23,7 @@ topics: {% data variables.product.prodname_registry %} on {% data variables.product.prodname_ghe_server %} uses external blob storage to store your packages. -After enabling {% data variables.product.prodname_registry %} for {% data variables.product.product_location %}, you'll need to prepare your third-party storage bucket. The amount of storage required depends on your usage of {% data variables.product.prodname_registry %}, and the setup guidelines can vary by storage provider. +After enabling {% data variables.product.prodname_registry %} for {% data variables.location.product_location %}, you'll need to prepare your third-party storage bucket. The amount of storage required depends on your usage of {% data variables.product.prodname_registry %}, and the setup guidelines can vary by storage provider. Supported external storage providers - Amazon Web Services (AWS) S3 {% ifversion ghes %} @@ -37,16 +37,16 @@ To enable {% data variables.product.prodname_registry %} and configure third-par ## Step 3: Specify the package ecosystems to support on your instance -Choose which package ecosystems you'd like to enable, disable, or set to read-only on {% data variables.product.product_location %}. Available options are {% ifversion ghes > 3.4 %}{% data variables.product.prodname_container_registry %}, {% endif %}Docker, RubyGems, npm, Apache Maven, Gradle, or NuGet. For more information, see "[Configuring package ecosystem support for your enterprise](/enterprise/admin/packages/configuring-package-ecosystem-support-for-your-enterprise)." +Choose which package ecosystems you'd like to enable, disable, or set to read-only on {% data variables.location.product_location %}. Available options are {% ifversion ghes > 3.4 %}{% data variables.product.prodname_container_registry %}, {% endif %}Docker, RubyGems, npm, Apache Maven, Gradle, or NuGet. For more information, see "[Configuring package ecosystem support for your enterprise](/enterprise/admin/packages/configuring-package-ecosystem-support-for-your-enterprise)." ## Step 4: Ensure you have a TLS certificate for your package host URL, if needed -If subdomain isolation is enabled for {% data variables.product.product_location %}, you will need to create and upload a TLS certificate that allows the package host URL for each ecosystem you want to use, such as `{% data reusables.package_registry.container-registry-hostname %}`. Make sure each package host URL includes `https://`. +If subdomain isolation is enabled for {% data variables.location.product_location %}, you will need to create and upload a TLS certificate that allows the package host URL for each ecosystem you want to use, such as `{% data reusables.package_registry.container-registry-hostname %}`. Make sure each package host URL includes `https://`. You can create the certificate manually, or you can use _Let's Encrypt_. If you already use _Let's Encrypt_, you must request a new TLS certificate after enabling {% data variables.product.prodname_registry %}. For more information about package host URLs, see "[Enabling subdomain isolation](/enterprise/admin/configuration/enabling-subdomain-isolation)." For more information about uploading TLS certificates to {% data variables.product.product_name %}, see "[Configuring TLS](/enterprise/admin/configuration/configuring-tls)." ## Step 5: Check for and rename reserved names -If you want to use the Docker ecosystem with subdomain isolation disabled, you **must** first rename any user or organization named `v2` on {% data variables.product.product_location %}, prior to enabling Docker ecosystem support in the {% data variables.enterprise.management_console %}. Docker uses a `v2` account name to manage path conflicts with the Docker API, and once Docker registry support is enabled, you won't be able to use this name anymore. +If you want to use the Docker ecosystem with subdomain isolation disabled, you **must** first rename any user or organization named `v2` on {% data variables.location.product_location %}, prior to enabling Docker ecosystem support in the {% data variables.enterprise.management_console %}. Docker uses a `v2` account name to manage path conflicts with the Docker API, and once Docker registry support is enabled, you won't be able to use this name anymore. You can view a full list of logins reserved for internal use by navigating to the "Reserved logins" page in the Site admin dashboard. For more information, see "[Reserved logins](/admin/configuration/configuring-your-enterprise/site-admin-dashboard#reserved-logins)." diff --git a/content/admin/packages/migrating-your-enterprise-to-the-container-registry-from-the-docker-registry.md b/content/admin/packages/migrating-your-enterprise-to-the-container-registry-from-the-docker-registry.md index 3864f2cd78..9305406cc8 100644 --- a/content/admin/packages/migrating-your-enterprise-to-the-container-registry-from-the-docker-registry.md +++ b/content/admin/packages/migrating-your-enterprise-to-the-container-registry-from-the-docker-registry.md @@ -1,6 +1,6 @@ --- title: Migrating your enterprise to the Container registry from the Docker registry -intro: 'You can migrate Docker images previously stored in the Docker registry on {% data variables.product.product_location %} to the {% data variables.product.prodname_container_registry %}.' +intro: 'You can migrate Docker images previously stored in the Docker registry on {% data variables.location.product_location %} to the {% data variables.product.prodname_container_registry %}.' product: '{% data reusables.gated-features.packages %}' permissions: "Enterprise owners can migrate Docker images to the {% data variables.product.prodname_container_registry %}." versions: @@ -18,11 +18,11 @@ topics: {% data reusables.package_registry.container-registry-benefits %} For more information, see "[Working with the {% data variables.product.prodname_container_registry %}](/packages/working-with-a-github-packages-registry/working-with-the-container-registry)." -For more information about configuring {% data variables.product.prodname_registry %} for {% data variables.product.product_location %}, see "[Getting started with {% data variables.product.prodname_registry %} for your enterprise](/admin/packages/getting-started-with-github-packages-for-your-enterprise)." +For more information about configuring {% data variables.product.prodname_registry %} for {% data variables.location.product_location %}, see "[Getting started with {% data variables.product.prodname_registry %} for your enterprise](/admin/packages/getting-started-with-github-packages-for-your-enterprise)." ## About migration from the Docker registry -{% data reusables.package_registry.container-registry-replaces-docker-registry %} If the Docker registry on {% data variables.product.product_location %} contains images, you must manually migrate the images to the {% data variables.product.prodname_container_registry %}. +{% data reusables.package_registry.container-registry-replaces-docker-registry %} If the Docker registry on {% data variables.location.product_location %} contains images, you must manually migrate the images to the {% data variables.product.prodname_container_registry %}. {% ifversion ghes %} @@ -40,7 +40,7 @@ For more information about configuring {% data variables.product.prodname_regist You can start a migration of all your organizations' Docker images to the {% data variables.product.prodname_container_registry %}. The duration of the migration operation depends on the total number of images to migrate, and the overall load on {% ifversion ghes %}your instance{% elsif ghae %}{% data variables.product.product_name %}{% endif %}. After a successful migration, {% data variables.product.product_name %} will display a summary, and all future uploads of Docker images will use the {% data variables.product.prodname_container_registry %}. -If {% ifversion ghes %}a site administrator{% elsif ghae %}an enterprise owner{% endif %} has configured email notifications for {% data variables.product.product_location %}, you will receive an email after the migration is complete. For more information, see "[Configuring email for notifications](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications)." +If {% ifversion ghes %}a site administrator{% elsif ghae %}an enterprise owner{% endif %} has configured email notifications for {% data variables.location.product_location %}, you will receive an email after the migration is complete. For more information, see "[Configuring email for notifications](/admin/configuration/configuring-your-enterprise/configuring-email-for-notifications)." {% note %} @@ -53,7 +53,7 @@ If {% ifversion ghes %}a site administrator{% elsif ghae %}an enterprise owner{% {%- ifversion ghes %} - After the migration, storage pressure on your instance will increase due to the duplication of image files in the Docker registry and the {% data variables.product.prodname_container_registry %}. A future release of {% data variables.product.product_name %} will remove the duplicated files when all migrations are complete. -For more information about monitoring the performance and storage of {% data variables.product.product_location %}, see "[Accessing the monitor dashboard](/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard)." +For more information about monitoring the performance and storage of {% data variables.location.product_location %}, see "[Accessing the monitor dashboard](/admin/enterprise-management/monitoring-your-appliance/accessing-the-monitor-dashboard)." {% endif %} {% endnote %} diff --git a/content/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages.md b/content/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages.md index 562a02d159..443b6038e1 100644 --- a/content/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages.md +++ b/content/admin/packages/quickstart-for-configuring-your-minio-storage-bucket-for-github-packages.md @@ -13,7 +13,7 @@ shortTitle: Quickstart for MinIO {% data reusables.package_registry.packages-ghes-release-stage %} -Before you can enable and configure {% data variables.product.prodname_registry %} on {% data variables.product.product_location_enterprise %}, you need to prepare your third-party storage solution. +Before you can enable and configure {% data variables.product.prodname_registry %} on {% data variables.location.product_location_enterprise %}, you need to prepare your third-party storage solution. MinIO offers object storage with support for the S3 API and {% data variables.product.prodname_registry %} on your enterprise. diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/about-enterprise-policies.md b/content/admin/policies/enforcing-policies-for-your-enterprise/about-enterprise-policies.md index 09ada78c84..15cdbd6559 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/about-enterprise-policies.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/about-enterprise-policies.md @@ -22,7 +22,7 @@ By default, no enterprise policies are enforced. To identify policies that shoul While you're configuring enterprise policies, to help you understand the impact of changing each policy, you can view the current configurations for the organizations owned by your enterprise. {% ifversion ghes %} -Another way to enforce standards within your enterprise is to use pre-receive hooks, which are scripts that run on {% data variables.product.product_location %} to implement quality checks. For more information, see "[Enforcing policy with pre-receive hooks](/admin/policies/enforcing-policy-with-pre-receive-hooks)." +Another way to enforce standards within your enterprise is to use pre-receive hooks, which are scripts that run on {% data variables.location.product_location %} to implement quality checks. For more information, see "[Enforcing policy with pre-receive hooks](/admin/policies/enforcing-policy-with-pre-receive-hooks)." {% endif %} ## Further reading diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise.md index 4d65ca238b..65a8093c14 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise.md @@ -32,7 +32,7 @@ You can enforce policies to manage the use of code security and analysis feature {% data reusables.advanced-security.ghas-helps-developers %} For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security)." -{% ifversion ghes or ghec %}If you purchase a license for {% data variables.product.prodname_GH_advanced_security %}, any{% else %}Any{% endif %} organization{% ifversion ghec %} owned by your enterprise{% endif %} on {% data variables.product.product_location %} can use {% data variables.product.prodname_advanced_security %} features. You can enforce policies to control how members of your enterprise on {% data variables.product.product_name %} use {% data variables.product.prodname_advanced_security %}. +{% ifversion ghes or ghec %}If you purchase a license for {% data variables.product.prodname_GH_advanced_security %}, any{% else %}Any{% endif %} organization{% ifversion ghec %} owned by your enterprise{% endif %} on {% data variables.location.product_location %} can use {% data variables.product.prodname_advanced_security %} features. You can enforce policies to control how members of your enterprise on {% data variables.product.product_name %} use {% data variables.product.prodname_advanced_security %}. {% ifversion security-feature-enablement-policies %} ## Enforcing a policy to manage the use of {% data variables.product.prodname_dependabot_alerts %} in your enterprise diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise.md index 573f4583b1..82c8463b34 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise.md @@ -32,7 +32,7 @@ shortTitle: GitHub Actions policies {% data variables.product.prodname_actions %} helps members of your enterprise automate software development workflows on {% data variables.product.product_name %}. For more information, see "[Understanding {% data variables.product.prodname_actions %}](/actions/learn-github-actions/understanding-github-actions)." -{% ifversion ghes %}If you enable {% data variables.product.prodname_actions %}, any{% else %}Any{% endif %} organization on {% data variables.product.product_location %} can use {% data variables.product.prodname_actions %}. You can enforce policies to control how members of your enterprise on {% data variables.product.product_name %} use {% data variables.product.prodname_actions %}. By default, organization owners can manage how members use {% data variables.product.prodname_actions %}. For more information, see "[Disabling or limiting {% data variables.product.prodname_actions %} for your organization](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)." +{% ifversion ghes %}If you enable {% data variables.product.prodname_actions %}, any{% else %}Any{% endif %} organization on {% data variables.location.product_location %} can use {% data variables.product.prodname_actions %}. You can enforce policies to control how members of your enterprise on {% data variables.product.product_name %} use {% data variables.product.prodname_actions %}. By default, organization owners can manage how members use {% data variables.product.prodname_actions %}. For more information, see "[Disabling or limiting {% data variables.product.prodname_actions %} for your organization](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)." ## Enforcing a policy to restrict the use of {% data variables.product.prodname_actions %} in your enterprise @@ -48,7 +48,7 @@ You can choose to disable {% data variables.product.prodname_actions %} for all {%- ifversion ghes or ghae %} {% note %} - **Note:** To enable access to public actions{% ifversion actions-workflow-policy %} and reusable workflows{% endif %}, you must first configure {% data variables.product.product_location %} to connect to {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Enabling automatic access to GitHub.com actions using GitHub Connect](/admin/github-actions/enabling-automatic-access-to-githubcom-actions-using-github-connect)." + **Note:** To enable access to public actions{% ifversion actions-workflow-policy %} and reusable workflows{% endif %}, you must first configure {% data variables.location.product_location %} to connect to {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Enabling automatic access to GitHub.com actions using GitHub Connect](/admin/github-actions/enabling-automatic-access-to-githubcom-actions-using-github-connect)." {% endnote %} {%- endif %} @@ -86,7 +86,7 @@ You can choose to disable {% data variables.product.prodname_actions %} for all ## Enforcing a policy for fork pull requests in your enterprise -You can enforce policies to control how {% data variables.product.prodname_actions %} behaves for {% data variables.product.product_location %} when members of your enterprise{% ifversion ghec %} or outside collaborators{% endif %} run workflows from forks. +You can enforce policies to control how {% data variables.product.prodname_actions %} behaves for {% data variables.location.product_location %} when members of your enterprise{% ifversion ghec %} or outside collaborators{% endif %} run workflows from forks. {% ifversion ghec %} diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-personal-access-tokens-in-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-personal-access-tokens-in-your-enterprise.md new file mode 100644 index 0000000000..4296ca3497 --- /dev/null +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-personal-access-tokens-in-your-enterprise.md @@ -0,0 +1,62 @@ +--- +title: Enforcing policies for personal access tokens in your enterprise +intro: Enterprise owners can control whether to allow {% data variables.product.pat_v2 %}s and {% data variables.product.pat_v1_plural %}, and can require approval for {% data variables.product.pat_v2 %}s. +versions: + feature: pat-v2-enterprise +shortTitle: "{% data variables.product.pat_generic_caps %} policies" +--- + +{% note %} + +**Note**: {% data reusables.user-settings.pat-v2-beta %} + +During the beta, enterprises must opt in to {% data variables.product.pat_v2 %}s. If your enterprise has not already opted-in, then you will be prompted to opt-in and set policies when you follow the steps below. + +Even if an enterprise has not opted in to {% data variables.product.pat_v2 %}s, organizations owned by the enterprise can still opt in. All users, including {% data variables.product.prodname_emus %}, can create {% data variables.product.pat_v2 %}s that can access resources owned by the user (such as repositories created under their account) even if the enterprise has not opted in to {% data variables.product.pat_v2 %}s. + +{% endnote %} + +## Restricting access by {% data variables.product.pat_v2 %}s + +Enterprise owners can prevent {% data variables.product.pat_v2 %}s from accessing private and internal resources owned by the enterprise. {% data variables.product.pat_v2_caps %}s will still be able to access public resources within the organizations. This setting only controls access by {% data variables.product.pat_v2 %}s, not {% data variables.product.pat_v1_plural %}. For more information about restricting access by {% data variables.product.pat_v1_plural %}, see "[Restricting access by {% data variables.product.pat_v1_plural %}](#restricting-access-by-personal-access-tokens-classic)" on this page. + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.policies-tab %} +1. Under {% octicon "law" aria-label="The law icon" %} **Policies**, click **Organizations**. +1. Under **Restrict access via {% data variables.product.pat_v2 %}s**, select the option that meets your needs: + - **Allow organizations to configure access requirements**: Each organization owned by the enterprise can decide whether to restrict access by {% data variables.product.pat_v2 %}s. + - **Restrict access via {% data variables.product.pat_v2 %}s**: {% data variables.product.pat_v2_caps %}s cannot access organizations owned by the enterprise. SSH keys created by {% data variables.product.pat_v2 %}s will continue to work. Organizations cannot override this setting. + - **Allow access via {% data variables.product.pat_v2 %}s**: {% data variables.product.pat_v2_caps %}s can access organizations owned by the enterprise. Organizations cannot override this setting. +1. Click **Save**. + +## Enforcing an approval policy for {% data variables.product.pat_v2 %}s + +Enterprise owners can require that all organizations owned by the enterprise must approve each {% data variables.product.pat_v2 %} that can access the organization. {% data variables.product.pat_v2_caps %}s will still be able to read public resources within the organization without approval. Conversely, enterprise owners can allow {% data variables.product.pat_v2 %}s to access organizations in the enterprise without prior approval. Enterprise owners can also let each organization in the enterprise choose their own approval settings. + +{% note %} + +**Note**: Only {% data variables.product.pat_v2 %}s, not {% data variables.product.pat_v1_plural %}, are subject to approval. Unless the organization or enterprise has restricted access by {% data variables.product.pat_v1_plural %}, any {% data variables.product.pat_v1 %} can access organization resources without prior approval. For more information about restricting {% data variables.product.pat_v1_plural %}, see "[Restricting access by {% data variables.product.pat_v1_plural %}](#restricting-access-by-personal-access-tokens-classic)" on this page and "[Setting a {% data variables.product.pat_generic %} policy for your organization](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)." + +{% endnote %} + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.policies-tab %} +1. Under {% octicon "law" aria-label="The law icon" %} **Policies**, click **Organizations**. +1. Under **Require approval of {% data variables.product.pat_v2 %}s**, select the option that meets your needs: + - **Allow organizations to configure approval requirements**: Each organization owned by the enterprise can decide whether to require approval of {% data variables.product.pat_v2 %} that can access the organization. + - **Require organizations to use the approval flow**: All organizations owned by the enterprise must approve each {% data variables.product.pat_v2 %} that can access the organization. {% data variables.product.pat_v2_caps %}s created by organization owners will not need approval. Organizations cannot override this setting. + - **Disable the approval flow in all organizations**: {% data variables.product.pat_v2_caps %}s created by organization members can access organizations owned by the enterprise without prior approval. Organizations cannot override this setting. +1. Click **Save**. + +## Restricting access by {% data variables.product.pat_v1_plural %} + +Enterprise owners can prevent {% data variables.product.pat_v1_plural %} from accessing the enterprise and organizations owned by the enterprise. {% data variables.product.pat_v1_caps_plural %} will still be able to access public resources within the organization. This setting only controls access by {% data variables.product.pat_v1_plural %}, not {% data variables.product.pat_v2 %}s. For more information about restricting access by {% data variables.product.pat_v2 %}s, see "[Restricting access by {% data variables.product.pat_v2 %}s](#restricting-access-by-fine-grained-personal-access-tokens)" on this page. + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.policies-tab %} +1. Under {% octicon "law" aria-label="The law icon" %} **Policies**, click **Organizations**. +1. Under **Restrict {% data variables.product.pat_v1_plural %} from accessing your organizations**, select the option that meets your needs: + - **Allow organizations to configure {% data variables.product.pat_v1_plural %} access requirements**: Each organization owned by the enterprise can decide whether to restrict access by {% data variables.product.pat_v1_plural %}. + - **Restrict access via {% data variables.product.pat_v1_plural %}**: {% data variables.product.pat_v1_caps_plural %} cannot access the enterprise or organizations owned by the enterprise. SSH keys created by {% data variables.product.pat_v1_plural %} will continue to work. Organizations cannot override this setting. + - **Allow access via {% data variables.product.pat_v1_plural %}**: {% data variables.product.pat_v1_caps_plural %} can access the enterprise and organizations owned by the enterprise. Organizations cannot override this setting. +1. Click **Save**. diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md index 8a3ff71aa6..bedf7001c2 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md @@ -183,7 +183,7 @@ To prevent confusion from your developers, you can change this behavior so that {% note %} -**Note:** If a user is signed in to their personal account when they attempt to access any of your enterprise's resources, they'll be automatically signed out and redirected to SSO to sign in to their {% data variables.product.prodname_managed_user %}. For more information, see "[Managing multiple accounts](/enterprise-cloud@latest/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts)." +**Note:** If a user is signed in to their personal account when they attempt to access any of your enterprise's resources, they'll be automatically signed out and redirected to SSO to sign in to their {% data variables.enterprise.prodname_managed_user %}. For more information, see "[Managing multiple accounts](/enterprise-cloud@latest/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts)." {% endnote %} diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md index 5ec3ef3506..991873cdca 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md @@ -304,7 +304,7 @@ You can override the default inherited settings by configuring the settings for {% data reusables.enterprise_user_management.disclaimer-for-git-read-access %} -If you have [enabled private mode](/enterprise/admin/configuration/enabling-private-mode) for {% data variables.product.product_location %}, you can allow repository administrators to enable anonymous Git read access to public repositories. +If you have [enabled private mode](/enterprise/admin/configuration/enabling-private-mode) for {% data variables.location.product_location %}, you can allow repository administrators to enable anonymous Git read access to public repositories. Enabling anonymous Git read access allows users to bypass authentication for custom tools on your enterprise. When you or a repository administrator enable this access setting for a repository, unauthenticated Git operations (and anyone with network access to {% data variables.product.product_name %}) will have read access to the repository without authentication. diff --git a/content/admin/policies/enforcing-policies-for-your-enterprise/index.md b/content/admin/policies/enforcing-policies-for-your-enterprise/index.md index c4a1c45f68..31cdb13bf9 100644 --- a/content/admin/policies/enforcing-policies-for-your-enterprise/index.md +++ b/content/admin/policies/enforcing-policies-for-your-enterprise/index.md @@ -22,6 +22,7 @@ children: - /enforcing-policies-for-dependency-insights-in-your-enterprise - /enforcing-policies-for-github-actions-in-your-enterprise - /enforcing-policies-for-code-security-and-analysis-for-your-enterprise + - /enforcing-policies-for-personal-access-tokens-in-your-enterprise shortTitle: Enforce policies --- diff --git a/content/admin/policies/enforcing-policy-with-pre-receive-hooks/about-pre-receive-hooks.md b/content/admin/policies/enforcing-policy-with-pre-receive-hooks/about-pre-receive-hooks.md index 7fe36cce01..d72c609a0d 100644 --- a/content/admin/policies/enforcing-policy-with-pre-receive-hooks/about-pre-receive-hooks.md +++ b/content/admin/policies/enforcing-policy-with-pre-receive-hooks/about-pre-receive-hooks.md @@ -28,4 +28,4 @@ Examples of how you can use pre-receive hooks: ## Impact on performance and workflows Impact to developers and their workflows can be significant and must be considered carefully. Pre-receive hooks that are based on business needs and implemented thoughtfully will provide the most benefit to the organization as a whole. -Pre-receive hooks can have unintended effects on the performance of {% data variables.product.product_location %} and should be carefully implemented and reviewed. +Pre-receive hooks can have unintended effects on the performance of {% data variables.location.product_location %} and should be carefully implemented and reviewed. diff --git a/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md b/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md index ff1340ce66..90a4866503 100644 --- a/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md +++ b/content/admin/policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-script.md @@ -18,10 +18,10 @@ shortTitle: Pre-receive hook scripts You can see examples of pre-receive hooks for {% data variables.product.prodname_ghe_server %} in the [`github/platform-samples` repository](https://github.com/github/platform-samples/tree/master/pre-receive-hooks). ## Writing a pre-receive hook script -A pre-receive hook script executes in a pre-receive hook environment on {% data variables.product.product_location %}. When you create a pre-receive hook script, consider the available input, output, exit status, and environment variables. +A pre-receive hook script executes in a pre-receive hook environment on {% data variables.location.product_location %}. When you create a pre-receive hook script, consider the available input, output, exit status, and environment variables. ### Input (`stdin`) -After a push occurs and before any refs are updated for the remote repository, the `git-receive-pack` process on {% data variables.product.product_location %} invokes the pre-receive hook script. Standard input for the script, `stdin`, is a string containing a line for each ref to update. Each line contains the old object name for the ref, the new object name for the ref, and the full name of the ref. +After a push occurs and before any refs are updated for the remote repository, the `git-receive-pack` process on {% data variables.location.product_location %} invokes the pre-receive hook script. Standard input for the script, `stdin`, is a string containing a line for each ref to update. Each line contains the old object name for the ref, the new object name for the ref, and the full name of the ref. ``` SP SP LF @@ -123,7 +123,7 @@ The following variables are available in the pre-receive hook environment when t ## Setting permissions and pushing a pre-receive hook to {% data variables.product.prodname_ghe_server %} -A pre-receive hook script is contained in a repository on {% data variables.product.product_location %}. A site administrator must take into consideration the repository permissions and ensure that only the appropriate users have access. +A pre-receive hook script is contained in a repository on {% data variables.location.product_location %}. A site administrator must take into consideration the repository permissions and ensure that only the appropriate users have access. We recommend consolidating hooks to a single repository. If the consolidated hook repository is public, the `README.md` can be used to explain policy enforcements. Also, contributions can be accepted via pull requests. However, pre-receive hooks can only be added from the default branch. For a testing workflow, forks of the repository with configuration should be used. @@ -138,7 +138,7 @@ We recommend consolidating hooks to a single repository. If the consolidated hoo git update-index --chmod=+x SCRIPT_FILE.sh ``` -2. Commit and push to the designated repository for pre-receive hooks on {% data variables.product.product_location %}. +2. Commit and push to the designated repository for pre-receive hooks on {% data variables.location.product_location %}. ```shell $ git commit -m "YOUR COMMIT MESSAGE" @@ -148,7 +148,7 @@ We recommend consolidating hooks to a single repository. If the consolidated hoo 3. [Create the pre-receive hook](/enterprise/admin/guides/developer-workflow/managing-pre-receive-hooks-on-the-github-enterprise-server-appliance/#creating-pre-receive-hooks) on the {% data variables.product.prodname_ghe_server %} instance. ## Testing pre-receive scripts locally -You can test a pre-receive hook script locally before you create or update it on {% data variables.product.product_location %}. One method is to create a local Docker environment to act as a remote repository that can execute the pre-receive hook. +You can test a pre-receive hook script locally before you create or update it on {% data variables.location.product_location %}. One method is to create a local Docker environment to act as a remote repository that can execute the pre-receive hook. {% data reusables.linux.ensure-docker %} diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md b/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md index 13c829fbdd..96b0308009 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md @@ -21,7 +21,7 @@ permissions: Enterprise owners can add organizations to an enterprise. Your enterprise account can own organizations. Members of your enterprise can collaborate across related projects within an organization. For more information, see "[About organizations](/organizations/collaborating-with-groups-in-organizations/about-organizations)." -You can add new organizations to your enterprise account. If you do not use {% data variables.product.prodname_emus %}, you can add existing organizations on {% data variables.product.product_location %} to your enterprise. You cannot add an existing organization from an {% data variables.product.prodname_emu_enterprise %} to a different enterprise. +You can add new organizations to your enterprise account. If you do not use {% data variables.product.prodname_emus %}, you can add existing organizations on {% data variables.location.product_location %} to your enterprise. You cannot add an existing organization from an {% data variables.enterprise.prodname_emu_enterprise %} to a different enterprise. {% data reusables.enterprise.create-an-enterprise-account %} For more information, see "[Creating an enterprise account](/admin/overview/creating-an-enterprise-account)." @@ -31,7 +31,7 @@ After you add an existing organization to your enterprise, the organization's re - Enterprise owners can manage their role within the organization. For more information, see "[Managing your role in an organization owned by your enterprise](/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise)." - Any policies applied to the enterprise will apply to the organization. For more information, see "[About enterprise policies](/admin/policies/enforcing-policies-for-your-enterprise/about-enterprise-policies)." - If SAML SSO is configured for the enterprise account, the enterprise's SAML configuration will apply to the organization. If the organization used SAML SSO, the enterprise account's configuration will replace the organization's configuration. SCIM is not available for enterprise accounts, so SCIM will be disabled for the organization. For more information, see "[Configuring SAML single sign-on for your enterprise](/admin/identity-and-access-management/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise)" and "[Switching your SAML configuration from an organization to an enterprise account](/admin/identity-and-access-management/using-saml-for-enterprise-iam/switching-your-saml-configuration-from-an-organization-to-an-enterprise-account)." -- If SAML SSO was configured for the organization, members' existing personal access tokens (PATs) or SSH keys that were authorized to access the organization's resources will be authorized to access the same resources. To access additional organizations owned by the enterprise, members must authorize the PAT or key. For more information, see "[Authorizing a personal access token for use with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)" and "[Authorizing an SSH key for use with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/authorizing-an-ssh-key-for-use-with-saml-single-sign-on)." +- If SAML SSO was configured for the organization, members' existing {% data variables.product.pat_generic %} or SSH keys that were authorized to access the organization's resources will be authorized to access the same resources. To access additional organizations owned by the enterprise, members must authorize the {% data variables.product.pat_generic %} or key. For more information, see "[Authorizing a {% data variables.product.pat_generic %} for use with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)" and "[Authorizing an SSH key for use with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/authorizing-an-ssh-key-for-use-with-saml-single-sign-on)." - If the organization was connected to {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_ghe_managed %} using {% data variables.product.prodname_github_connect %}, adding the organization to an enterprise will not update the connection. {% data variables.product.prodname_github_connect %} features will no longer function for the organization. To continue using {% data variables.product.prodname_github_connect %}, you must disable and re-enable the feature. For more information, see the following articles. - "[Managing {% data variables.product.prodname_github_connect %}](/enterprise-server@latest/admin/configuration/configuring-github-connect/managing-github-connect)" in the {% data variables.product.prodname_ghe_server %} documentation diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/adding-people-to-teams.md b/content/admin/user-management/managing-organizations-in-your-enterprise/adding-people-to-teams.md index dea32826a8..d4be251522 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/adding-people-to-teams.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/adding-people-to-teams.md @@ -6,7 +6,7 @@ redirect_from: - /enterprise/admin/guides/user-management/adding-or-inviting-people-to-teams - /enterprise/admin/user-management/adding-people-to-teams - /admin/user-management/adding-people-to-teams -intro: 'Once a team has been created, organization admins can add users from {% data variables.product.product_location %} to the team and determine which repositories they have access to.' +intro: 'Once a team has been created, organization admins can add users from {% data variables.location.product_location %} to the team and determine which repositories they have access to.' versions: ghes: '*' ghae: '*' diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/continuous-integration-using-jenkins.md b/content/admin/user-management/managing-organizations-in-your-enterprise/continuous-integration-using-jenkins.md index bb9bf6053c..859fe38bc4 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/continuous-integration-using-jenkins.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/continuous-integration-using-jenkins.md @@ -1,6 +1,6 @@ --- title: Continuous integration using Jenkins -intro: 'You can automatically trigger build jobs on a Jenkins server when pushes are made to a repository in {% data variables.product.product_location %}.' +intro: 'You can automatically trigger build jobs on a Jenkins server when pushes are made to a repository in {% data variables.location.product_location %}.' redirect_from: - /enterprise/admin/developer-workflow/continuous-integration-using-jenkins - /enterprise/admin/user-management/continuous-integration-using-jenkins @@ -16,4 +16,4 @@ shortTitle: CI using Jenkins --- ## Requirements -- Follow our white paper "[Practical guide to CI with Jenkins and GitHub](https://resources.github.com/whitepapers/practical-guide-to-CI-with-Jenkins-and-GitHub/)" to get step by step instructions on how you can automatically trigger build jobs on a Jenkins server when pushes are made to a repository in {% data variables.product.product_location %}. +- Follow our white paper "[Practical guide to CI with Jenkins and GitHub](https://resources.github.com/whitepapers/practical-guide-to-CI-with-Jenkins-and-GitHub/)" to get step by step instructions on how you can automatically trigger build jobs on a Jenkins server when pushes are made to a repository in {% data variables.location.product_location %}. diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md b/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md index 0e51eb9d2d..d87b91370c 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/creating-teams.md @@ -16,7 +16,7 @@ topics: --- Teams are central to many of {% data variables.product.prodname_dotcom %}'s collaborative features, such as team @mentions to notify appropriate parties that you'd like to request their input or attention. For more information, see "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)." -A team can represent a group within your company or include people with certain interests or expertise. For example, a team of accessibility experts on {% data variables.product.product_location %} could comprise of people from several different departments. Teams can represent functional concerns that complement a company's existing divisional hierarchy. +A team can represent a group within your company or include people with certain interests or expertise. For example, a team of accessibility experts on {% data variables.location.product_location %} could comprise of people from several different departments. Teams can represent functional concerns that complement a company's existing divisional hierarchy. Organizations can create multiple levels of nested teams to reflect a company or group's hierarchy structure. For more information, see "[About teams](/enterprise/user/articles/about-teams/#nested-teams)." @@ -37,7 +37,7 @@ A prudent combination of teams is a powerful way to control repository access. F ## Creating teams with LDAP Sync enabled -Instances using LDAP for user authentication can use LDAP Sync to manage a team's members. Setting the group's **Distinguished Name** (DN) in the **LDAP group** field will map a team to an LDAP group on your LDAP server. If you use LDAP Sync to manage a team's members, you won't be able to manage your team within {% data variables.product.product_location %}. The mapped team will sync its members in the background and periodically at the interval configured when LDAP Sync is enabled. For more information, see "[Enabling LDAP Sync](/enterprise/admin/authentication/using-ldap#enabling-ldap-sync)." +Instances using LDAP for user authentication can use LDAP Sync to manage a team's members. Setting the group's **Distinguished Name** (DN) in the **LDAP group** field will map a team to an LDAP group on your LDAP server. If you use LDAP Sync to manage a team's members, you won't be able to manage your team within {% data variables.location.product_location %}. The mapped team will sync its members in the background and periodically at the interval configured when LDAP Sync is enabled. For more information, see "[Enabling LDAP Sync](/enterprise/admin/authentication/using-ldap#enabling-ldap-sync)." You must be a site admin and an organization owner to create a team with LDAP sync enabled. diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md b/content/admin/user-management/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md index c98de35177..103d51e4a9 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md @@ -15,7 +15,7 @@ topics: - Security shortTitle: Require 2FA --- -When using LDAP or built-in authentication, two-factor authentication is supported on {% data variables.product.product_location %}. Organization administrators can require members to have two-factor authentication enabled. +When using LDAP or built-in authentication, two-factor authentication is supported on {% data variables.location.product_location %}. Organization administrators can require members to have two-factor authentication enabled. {% data reusables.enterprise_user_management.external_auth_disables_2fa %} diff --git a/content/admin/user-management/managing-organizations-in-your-enterprise/restoring-a-deleted-organization.md b/content/admin/user-management/managing-organizations-in-your-enterprise/restoring-a-deleted-organization.md index a2ff806636..d30c176041 100644 --- a/content/admin/user-management/managing-organizations-in-your-enterprise/restoring-a-deleted-organization.md +++ b/content/admin/user-management/managing-organizations-in-your-enterprise/restoring-a-deleted-organization.md @@ -1,6 +1,6 @@ --- title: Restoring a deleted organization -intro: 'You can partially restore an organization that was previously deleted on {% data variables.product.product_location %}.' +intro: 'You can partially restore an organization that was previously deleted on {% data variables.location.product_location %}.' versions: ghes: '*' type: how_to @@ -14,7 +14,7 @@ permissions: 'Site administers can restore an organization on {% data variables. ## About organization restoration -You can use the site admin dashboard to restore an organization that was previously deleted on {% data variables.product.product_location %}, as long as the audit log Elasticsearch indices contain the data for the `org.delete` event. +You can use the site admin dashboard to restore an organization that was previously deleted on {% data variables.location.product_location %}, as long as the audit log Elasticsearch indices contain the data for the `org.delete` event. Immediately after you restore an organization, the organization will not be exactly the same as it was prior to the deletion. You'll have to manually restore any repositories that were owned by the organization. For more information, see "[Restoring a deleted repository](/admin/user-management/managing-repositories-in-your-enterprise/restoring-a-deleted-repository)." diff --git a/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md b/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md index 8bb124b1e6..c8f5a68291 100644 --- a/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md +++ b/content/admin/user-management/managing-repositories-in-your-enterprise/configuring-git-large-file-storage-for-your-enterprise.md @@ -73,7 +73,7 @@ For more information, see "[About {% data variables.large_files.product_name_lon {% data reusables.large_files.storage_assets_location %} {% data reusables.large_files.rejected_pushes %} -1. Disable {% data variables.large_files.product_name_short %} on {% data variables.product.product_location %}. For more information, see "[Configuring {% data variables.large_files.product_name_long %} for your enterprise](#configuring-git-large-file-storage-for-your-enterprise)." +1. Disable {% data variables.large_files.product_name_short %} on {% data variables.location.product_location %}. For more information, see "[Configuring {% data variables.large_files.product_name_long %} for your enterprise](#configuring-git-large-file-storage-for-your-enterprise)." 2. Create a {% data variables.large_files.product_name_short %} configuration file that points to the third party server. ```shell diff --git a/content/admin/user-management/managing-users-in-your-enterprise/customizing-user-messages-for-your-enterprise.md b/content/admin/user-management/managing-users-in-your-enterprise/customizing-user-messages-for-your-enterprise.md index 3b694afea8..08a8461a70 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/customizing-user-messages-for-your-enterprise.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/customizing-user-messages-for-your-enterprise.md @@ -6,7 +6,7 @@ redirect_from: - /enterprise/admin/user-management/customizing-user-messages-on-your-instance - /admin/user-management/customizing-user-messages-on-your-instance - /admin/user-management/customizing-user-messages-for-your-enterprise -intro: 'You can create custom messages that users will see on {% data variables.product.product_location %}.' +intro: 'You can create custom messages that users will see on {% data variables.location.product_location %}.' versions: ghes: '*' ghae: '*' @@ -67,13 +67,13 @@ You can use Markdown to format your message. For more information, see "[About w {% ifversion ghes or ghae %} ## Creating a mandatory message -You can create a mandatory message that {% data variables.product.product_name %} will show to all users the first time they sign in after you save the message. The message appears in a pop-up window that the user must dismiss before the user can use {% data variables.product.product_location %}. +You can create a mandatory message that {% data variables.product.product_name %} will show to all users the first time they sign in after you save the message. The message appears in a pop-up window that the user must dismiss before the user can use {% data variables.location.product_location %}. Mandatory messages have a variety of uses. - Providing onboarding information for new employees -- Telling users how to get help with {% data variables.product.product_location %} -- Ensuring that all users read your terms of service for using {% data variables.product.product_location %} +- Telling users how to get help with {% data variables.location.product_location %} +- Ensuring that all users read your terms of service for using {% data variables.location.product_location %} If you include Markdown checkboxes in the message, all checkboxes must be selected before the user can dismiss the message. For example, if you include your terms of service in the mandatory message, you can require that each user selects a checkbox to confirm the user has read the terms. @@ -81,7 +81,7 @@ Each time a user sees a mandatory message, an audit log event is created. The ev {% note %} -**Note:** If you change the mandatory message for {% data variables.product.product_location %}, users who have already acknowledged the message will not see the new message. +**Note:** If you change the mandatory message for {% data variables.location.product_location %}, users who have already acknowledged the message will not see the new message. {% endnote %} diff --git a/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md b/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md index d40afec9e0..46f9801fb1 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/suspending-and-unsuspending-users.md @@ -8,7 +8,7 @@ redirect_from: - /enterprise/admin/articles/suspending-and-unsuspending-users - /enterprise/admin/user-management/suspending-and-unsuspending-users - /admin/user-management/suspending-and-unsuspending-users -intro: 'If a user leaves or moves to a different part of the company, you should remove or modify their ability to access {% data variables.product.product_location %}.' +intro: 'If a user leaves or moves to a different part of the company, you should remove or modify their ability to access {% data variables.location.product_location %}.' versions: ghes: '*' type: how_to @@ -34,7 +34,7 @@ Before suspending site administrators, you must demote them to regular users. Fo {% tip %} -**Note:** If [LDAP Sync is enabled](/enterprise/admin/authentication/using-ldap#enabling-ldap-sync) for {% data variables.product.product_location %}, users are automatically suspended when they're removed from the LDAP directory server. When LDAP Sync is enabled for your instance, normal user suspension methods are disabled. +**Note:** If [LDAP Sync is enabled](/enterprise/admin/authentication/using-ldap#enabling-ldap-sync) for {% data variables.location.product_location %}, users are automatically suspended when they're removed from the LDAP directory server. When LDAP Sync is enabled for your instance, normal user suspension methods are disabled. {% endtip %} diff --git a/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md b/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md index 5df6306c2e..39a210fec7 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise.md @@ -15,15 +15,15 @@ shortTitle: View & manage SAML access --- ## About SAML access to your enterprise account -When you enable SAML single sign-on for your enterprise account, each enterprise member can link their external identity on your identity provider (IdP) to their existing account on {% data variables.product.product_location %}. {% data reusables.saml.about-saml-access-enterprise-account %} +When you enable SAML single sign-on for your enterprise account, each enterprise member can link their external identity on your identity provider (IdP) to their existing account on {% data variables.location.product_location %}. {% data reusables.saml.about-saml-access-enterprise-account %} -If your enterprise is uses {% data variables.product.prodname_emus %}, your members will use accounts provisioned through your IdP. {% data variables.product.prodname_managed_users_caps %} will not use their existing user account on {% data variables.product.product_name %}. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." +If your enterprise is uses {% data variables.product.prodname_emus %}, your members will use accounts provisioned through your IdP. {% data variables.enterprise.prodname_managed_users_caps %} will not use their existing user account on {% data variables.product.product_name %}. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." ## Viewing and revoking a linked identity {% data reusables.saml.about-linked-identities %} -If your enterprise uses {% data variables.product.prodname_emus %}, you will not be able to deprovision or remove user accounts from the enterprise on {% data variables.product.product_name %}. Any changes you need to make to your enterprise's {% data variables.product.prodname_managed_users %} should be made through your IdP. +If your enterprise uses {% data variables.product.prodname_emus %}, you will not be able to deprovision or remove user accounts from the enterprise on {% data variables.product.product_name %}. Any changes you need to make to your enterprise's {% data variables.enterprise.prodname_managed_users %} should be made through your IdP. {% data reusables.identity-and-permissions.revoking-identity-team-sync %} diff --git a/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md b/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md index 0514107389..0596124afa 100644 --- a/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md +++ b/content/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md @@ -114,7 +114,7 @@ If you use {% data variables.product.prodname_vss_ghe %}, the list of pending in ![Screenshot of the "Members", "Administrators", and "Outside collaborators" tabs](/assets/images/help/enterprises/pending-invitations-type-tabs.png) -## Viewing suspended members in an {% data variables.product.prodname_emu_enterprise %} +## Viewing suspended members in an {% data variables.enterprise.prodname_emu_enterprise %} If your enterprise uses {% data variables.product.prodname_emus %}, you can also view suspended users. Suspended users are members who have been deprovisioned after being unassigned from the {% data variables.product.prodname_emu_idp_application %} application or deleted from the identity provider. For more information, see "[About Enterprise Managed Users](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/about-enterprise-managed-users)." diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/about-migrations.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/about-migrations.md index e5ba3ebd96..f0f6adac03 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/about-migrations.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/about-migrations.md @@ -18,7 +18,7 @@ There are three types of migrations you can perform: - A migration from a {% data variables.product.prodname_ghe_server %} instance to another {% data variables.product.prodname_ghe_server %} instance. You can migrate any number of repositories owned by any user or organization on the instance. Before performing a migration, you must have site administrator access to both instances. - A migration from a {% data variables.product.prodname_dotcom_the_website %} organization to a {% data variables.product.prodname_ghe_server %} instance. You can migrate any number of repositories owned by the organization. Before performing a migration, you must have [administrative access](/enterprise/user/articles/permission-levels-for-an-organization/) to the {% data variables.product.prodname_dotcom_the_website %} organization as well as site administrator access to the target instance. -- *Trial runs* are migrations that import data to a [staging instance](/enterprise/admin/guides/installation/setting-up-a-staging-instance/). These can be useful to see what *would* happen if a migration were applied to {% data variables.product.product_location %}. **We strongly recommend that you perform a trial run on a staging instance before importing data to your production instance.** +- *Trial runs* are migrations that import data to a [staging instance](/enterprise/admin/guides/installation/setting-up-a-staging-instance/). These can be useful to see what *would* happen if a migration were applied to {% data variables.location.product_location %}. **We strongly recommend that you perform a trial run on a staging instance before importing data to your production instance.** ## Migrated data diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md index bb0d2cde06..857f19fd91 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/exporting-migration-data-from-your-enterprise.md @@ -47,9 +47,9 @@ shortTitle: Export from your enterprise ```shell Enter username authorized for migration: admin ``` -4. When prompted for a personal access token, enter the access token you created in "[Preparing the {% data variables.product.prodname_ghe_server %} source instance](#preparing-the-github-enterprise-server-source-instance)": +4. When prompted for a {% data variables.product.pat_generic %}, enter the access token you created in "[Preparing the {% data variables.product.prodname_ghe_server %} source instance](#preparing-the-github-enterprise-server-source-instance)": ```shell - Enter personal access token: ************** + Enter {% data variables.product.pat_generic %}: ************** ``` 5. When `ghe-migrator add` has finished it will print the unique "Migration GUID" that it generated to identify this export as well as a list of the resources that were added to the export. You will use the Migration GUID that it generated in subsequent `ghe-migrator add` and `ghe-migrator export` steps to tell `ghe-migrator` to continue operating on the same export. ```shell @@ -92,7 +92,7 @@ shortTitle: Export from your enterprise ``` * {% data reusables.enterprise_migrations.specify-staging-path %} -8. Close the connection to {% data variables.product.product_location %}: +8. Close the connection to {% data variables.location.product_location %}: ```shell $ exit > logout diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/index.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/index.md index 2b27547b72..ac34326e09 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/index.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/index.md @@ -1,6 +1,6 @@ --- title: Migrating data to and from your enterprise -intro: 'You can export user, organization, and repository data from {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_dotcom_the_website %}, then import that data into {% data variables.product.product_location %}.' +intro: 'You can export user, organization, and repository data from {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_dotcom_the_website %}, then import that data into {% data variables.location.product_location %}.' redirect_from: - /enterprise/admin/articles/moving-a-repository-from-github-com-to-github-enterprise - /enterprise/admin/categories/migrations-and-upgrades diff --git a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md index 753a7fae66..b19fb060b4 100644 --- a/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md +++ b/content/admin/user-management/migrating-data-to-and-from-your-enterprise/migrating-data-to-your-enterprise.md @@ -30,7 +30,7 @@ After you prepare the data and resolve conflicts, you can apply the imported dat 2. Using the `ghe-migrator import` command, start the import process. You'll need: * Your Migration GUID. For more information, see "[Preparing to migrate data to your enterprise](/admin/user-management/preparing-to-migrate-data-to-your-enterprise)." - * Your personal access token for authentication. The personal access token that you use is only for authentication as a site administrator, and does not require any specific scope. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." + * Your {% data variables.product.pat_generic %} for authentication. The {% data variables.product.pat_generic %} that you use is only for authentication as a site administrator, and does not require any specific scope{% ifversion pat-v2 %} or permissions{% endif %}. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." ```shell $ ghe-migrator import /home/admin/MIGRATION-GUID.tar.gz -g MIGRATION-GUID -u USERNAME -p TOKEN diff --git a/content/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on.md b/content/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on.md index e46be4ae55..c0787f5ae1 100644 --- a/content/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on.md +++ b/content/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on.md @@ -1,6 +1,6 @@ --- title: About authentication with SAML single sign-on -intro: 'You can access {% ifversion ghae %}{% data variables.product.product_location %}{% elsif ghec %}an organization that uses SAML single sign-on (SSO){% endif %} by authenticating {% ifversion ghae %}with SAML single sign-on (SSO) {% endif %}through an identity provider (IdP).' +intro: 'You can access {% ifversion ghae %}{% data variables.location.product_location %}{% elsif ghec %}an organization that uses SAML single sign-on (SSO){% endif %} by authenticating {% ifversion ghae %}with SAML single sign-on (SSO) {% endif %}through an identity provider (IdP).' redirect_from: - /articles/about-authentication-with-saml-single-sign-on - /github/authenticating-to-github/about-authentication-with-saml-single-sign-on @@ -16,7 +16,7 @@ shortTitle: SAML single sign-on {% ifversion ghae %} -SAML SSO allows an enterprise owner to centrally control and secure access to {% data variables.product.product_name %} from a SAML IdP. When you visit {% data variables.product.product_location %} in a browser, {% data variables.product.product_name %} will redirect you to your IdP to authenticate. After you successfully authenticate with an account on the IdP, the IdP redirects you back to {% data variables.product.product_location %}. {% data variables.product.product_name %} validates the response from your IdP, then grants access. +SAML SSO allows an enterprise owner to centrally control and secure access to {% data variables.product.product_name %} from a SAML IdP. When you visit {% data variables.location.product_location %} in a browser, {% data variables.product.product_name %} will redirect you to your IdP to authenticate. After you successfully authenticate with an account on the IdP, the IdP redirects you back to {% data variables.location.product_location %}. {% data variables.product.product_name %} validates the response from your IdP, then grants access. {% data reusables.saml.you-must-periodically-authenticate %} @@ -28,7 +28,7 @@ If you can't access {% data variables.product.product_name %}, contact your loca {% data reusables.saml.dotcom-saml-explanation %} Organization owners can invite your personal account on {% data variables.product.prodname_dotcom %} to join their organization that uses SAML SSO, which allows you to contribute to the organization and retain your existing identity and contributions on {% data variables.product.prodname_dotcom %}. -If you're a member of an {% data variables.product.prodname_emu_enterprise %}, you will instead use a new account that is provisioned for you and controlled by your enterprise. {% data reusables.enterprise-accounts.emu-more-info-account %} +If you're a member of an {% data variables.enterprise.prodname_emu_enterprise %}, you will instead use a new account that is provisioned for you and controlled by your enterprise. {% data reusables.enterprise-accounts.emu-more-info-account %} When you access private resources within an organization that uses SAML SSO, {% data variables.product.prodname_dotcom %} will redirect you to the organization's SAML IdP to authenticate. After you successfully authenticate with your account on the IdP, the IdP redirects you back to {% data variables.product.prodname_dotcom %}, where you can access the organization's resources. @@ -46,13 +46,13 @@ If you sign in with a SAML identity that is already linked to another {% data va If the SAML identity you sign in with does not match the SAML identity that is currently linked to your {% data variables.product.prodname_dotcom %} account, you'll receive a warning that you are about to relink your account. Because your SAML identity is used to govern access and team membership, continuing with the new SAML identity can cause you to lose access to teams and organizations inside of {% data variables.product.prodname_dotcom %}. Only continue if you know that you're supposed to use that new SAML identity for authentication in the future. -## Authorizing PATs and SSH keys with SAML SSO +## Authorizing {% data variables.product.pat_generic %}s and SSH keys with SAML SSO -To use the API or Git on the command line to access protected content in an organization that uses SAML SSO, you will need to use an authorized personal access token over HTTPS or an authorized SSH key. +To use the API or Git on the command line to access protected content in an organization that uses SAML SSO, you will need to use an authorized {% data variables.product.pat_generic %} over HTTPS or an authorized SSH key. -If you don't have a personal access token or an SSH key, you can create a personal access token for the command line or generate a new SSH key. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)" or "[Generating a new SSH key and adding it to the ssh-agent](/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)." +If you don't have a {% data variables.product.pat_generic %} or an SSH key, you can create a {% data variables.product.pat_generic %} for the command line or generate a new SSH key. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)" or "[Generating a new SSH key and adding it to the ssh-agent](/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)." -To use a new or existing personal access token or SSH key with an organization that uses or enforces SAML SSO, you will need to authorize the token or authorize the SSH key for use with a SAML SSO organization. For more information, see "[Authorizing a personal access token for use with SAML single sign-on](/articles/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)" or "[Authorizing an SSH key for use with SAML single sign-on](/articles/authorizing-an-ssh-key-for-use-with-saml-single-sign-on)." +To use a new or existing {% data variables.product.pat_generic %} or SSH key with an organization that uses or enforces SAML SSO, you will need to authorize the token or authorize the SSH key for use with a SAML SSO organization. For more information, see "[Authorizing a {% data variables.product.pat_generic %} for use with SAML single sign-on](/articles/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)" or "[Authorizing an SSH key for use with SAML single sign-on](/articles/authorizing-an-ssh-key-for-use-with-saml-single-sign-on)." ## About {% data variables.product.prodname_oauth_apps %}, {% data variables.product.prodname_github_apps %}, and SAML SSO diff --git a/content/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on.md b/content/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on.md index 5dc56f5acf..cc1537e412 100644 --- a/content/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on.md +++ b/content/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on.md @@ -1,6 +1,6 @@ --- title: Authorizing a personal access token for use with SAML single sign-on -intro: 'To use a personal access token with an organization that uses SAML single sign-on (SSO), you must first authorize the token.' +intro: 'To use a {% data variables.product.pat_v1 %} with an organization that uses SAML single sign-on (SSO), you must first authorize the token.' redirect_from: - /articles/authorizing-a-personal-access-token-for-use-with-a-saml-single-sign-on-organization - /articles/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on @@ -10,9 +10,9 @@ versions: ghec: '*' topics: - SSO -shortTitle: PAT with SAML +shortTitle: '{% data variables.product.pat_generic_caps %} with SAML' --- -You can authorize an existing personal access token, or [create a new personal access token](/github/authenticating-to-github/creating-a-personal-access-token) and then authorize it. +You must authorize your {% data variables.product.pat_v1 %} after creation before the token can access an organization that uses SAML single sign-on (SSO). For more information about creating a new {% data variables.product.pat_v1 %}, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)."{% ifversion pat-v2 %} {% data variables.product.pat_v2_caps %}s are authorized during token creation, before access to the organization is granted.{% endif %} {% data reusables.saml.must-authorize-linked-identity %} @@ -23,11 +23,11 @@ You can authorize an existing personal access token, or [create a new personal a {% data reusables.user-settings.personal_access_tokens %} 3. Next to the token you'd like to authorize, click **Configure SSO**. {% data reusables.saml.authenticate-with-saml-at-least-once %} - ![Screenshot of the dropdown menu to configure SSO for a personal access token](/assets/images/help/settings/sso-allowlist-button.png) + ![Screenshot of the dropdown menu to configure SSO for a {% data variables.product.pat_v1 %}](/assets/images/help/settings/sso-allowlist-button.png) 4. To the right of the organization you'd like to authorize the token for, click **Authorize**. ![Token authorize button](/assets/images/help/settings/token-authorize-button.png) ## Further reading -- "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)" +- "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)" - "[About authentication with SAML single sign-on](/articles/about-authentication-with-saml-single-sign-on)" diff --git a/content/authentication/connecting-to-github-with-ssh/about-ssh.md b/content/authentication/connecting-to-github-with-ssh/about-ssh.md index 53b7c7225e..547784b6ad 100644 --- a/content/authentication/connecting-to-github-with-ssh/about-ssh.md +++ b/content/authentication/connecting-to-github-with-ssh/about-ssh.md @@ -1,6 +1,6 @@ --- title: About SSH -intro: 'Using the SSH protocol, you can connect and authenticate to remote servers and services. With SSH keys, you can connect to {% data variables.product.product_name %} without supplying your username and personal access token at each visit.{% ifversion ssh-commit-verification %} You can also use an SSH key to sign commits.{% endif %}' +intro: 'Using the SSH protocol, you can connect and authenticate to remote servers and services. With SSH keys, you can connect to {% data variables.product.product_name %} without supplying your username and {% data variables.product.pat_generic %} at each visit.{% ifversion ssh-commit-verification %} You can also use an SSH key to sign commits.{% endif %}' redirect_from: - /articles/about-ssh - /github/authenticating-to-github/about-ssh diff --git a/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md b/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md index eabcedfe38..1e7cde5e8d 100644 --- a/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md +++ b/content/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account.md @@ -1,6 +1,6 @@ --- title: Adding a new SSH key to your GitHub account -intro: 'To configure your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} to use your new (or existing) SSH key, you''ll also need to add the key to your account.' +intro: 'To configure your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} to use your new (or existing) SSH key, you''ll also need to add the key to your account.' redirect_from: - /articles/adding-a-new-ssh-key-to-your-github-account - /github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account @@ -21,18 +21,18 @@ shortTitle: Add a new SSH key {% ifversion ssh-commit-verification %}You can also use SSH to sign commits and tags. For more information about commit signing, see "[About commit signature verification](/articles/about-commit-signature-verification)."{% endif %} -After you generate an SSH key pair, you must add the public key to {% ifversion fpt or ghec or ghes %}{% data variables.product.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} to enable SSH access for your account. +After you generate an SSH key pair, you must add the public key to {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} to enable SSH access for your account. ## Prerequisites -Before adding a new SSH key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, complete the following steps. +Before adding a new SSH key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, complete the following steps. 1. Check for existing SSH keys. For more information, see "[Checking for existing SSH keys](/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys)." 1. Generate a new SSH key and add it to your machine's SSH agent. For more information, see "[Generating a new SSH key and adding it to the ssh-agent](/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)." ## Adding a new SSH key to your account -After adding a new SSH authentication key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, you can reconfigure any local repositories to use SSH. For more information, see "[Switching remote URLs from HTTPS to SSH](/github/getting-started-with-github/managing-remote-repositories/#switching-remote-urls-from-https-to-ssh)." +After adding a new SSH authentication key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, you can reconfigure any local repositories to use SSH. For more information, see "[Switching remote URLs from HTTPS to SSH](/github/getting-started-with-github/managing-remote-repositories/#switching-remote-urls-from-https-to-ssh)." {% data reusables.ssh.key-type-support %} diff --git a/content/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys.md b/content/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys.md index 4550c3e576..e840701467 100644 --- a/content/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys.md +++ b/content/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys.md @@ -17,7 +17,7 @@ shortTitle: Check for existing SSH key ## About SSH keys -You can use SSH to perform Git operations in repositories on {% ifversion fpt or ghec or ghes %}{% data variables.product.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}. For more information, see "[About SSH](/authentication/connecting-to-github-with-ssh/about-ssh)." +You can use SSH to perform Git operations in repositories on {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}. For more information, see "[About SSH](/authentication/connecting-to-github-with-ssh/about-ssh)." If you have an existing SSH key, you can use the key to authenticate Git operations over SSH. diff --git a/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 870e5fd520..e95ef98441 100644 --- a/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -29,11 +29,11 @@ If you want to use a hardware security key to authenticate to {% data variables. ## Generating a new SSH key -You can generate a new SSH key on your local machine. After you generate the key, you can add the key to your account on {% ifversion fpt or ghec or ghes %}{% data variables.product.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} to enable authentication for Git operations over SSH. +You can generate a new SSH key on your local machine. After you generate the key, you can add the key to your account on {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} to enable authentication for Git operations over SSH. {% ifversion ghes %} -If you are a site administrator for {% data variables.product.product_location %}, you can use the same key to grant yourself administrative SSH access to the instance. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)." +If you are a site administrator for {% data variables.location.product_location %}, you can use the same key to grant yourself administrative SSH access to the instance. For more information, see "[Accessing the administrative shell (SSH)](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)." {% endif %} @@ -125,7 +125,7 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav * Open your `~/.ssh/config` file, then modify the file to contain the following lines. If your SSH key file has a different name or path than the example code, modify the filename or path to match your current setup. ``` - Host * + Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %} AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %} @@ -137,10 +137,10 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav - If you chose not to add a passphrase to your key, you should omit the `UseKeychain` line. - - If you see a `Bad configuration option: usekeychain` error, add an additional line to the configuration's' `Host *` section. + - If you see a `Bad configuration option: usekeychain` error, add an additional line to the configuration's' `Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %}` section. ``` - Host * + Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %} IgnoreUnknown UseKeychain ``` {% endnote %} diff --git a/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md b/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md index b5cfcc8a3f..a97d7da6c6 100644 --- a/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md +++ b/content/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection.md @@ -1,6 +1,6 @@ --- title: Testing your SSH connection -intro: 'After you''ve set up your SSH key and added it to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, you can test your connection.' +intro: 'After you''ve set up your SSH key and added it to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, you can test your connection.' redirect_from: - /articles/testing-your-ssh-connection - /github/authenticating-to-github/testing-your-ssh-connection diff --git a/content/authentication/keeping-your-account-and-data-secure/about-authentication-to-github.md b/content/authentication/keeping-your-account-and-data-secure/about-authentication-to-github.md index 8ee4d68722..0eefcc7612 100644 --- a/content/authentication/keeping-your-account-and-data-secure/about-authentication-to-github.md +++ b/content/authentication/keeping-your-account-and-data-secure/about-authentication-to-github.md @@ -22,7 +22,7 @@ You can access your resources in {% data variables.product.product_name %} in a {%- ifversion not fpt %} - Your identity provider (IdP){% endif %}{% ifversion not ghae %} - Username and password with two-factor authentication{% endif %} -- Personal access token +- {% data variables.product.pat_generic_caps %} - SSH key ## Authenticating in your browser @@ -35,9 +35,9 @@ You can authenticate to {% data variables.product.product_name %} in your browse {% ifversion fpt or ghec %} -If you're a member of an {% data variables.product.prodname_emu_enterprise %}, you will authenticate to {% data variables.product.product_name %} in your browser using your IdP. For more information, see "[Authenticating as a managed user](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users#authenticating-as-a-managed-user){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} +If you're a member of an {% data variables.enterprise.prodname_emu_enterprise %}, you will authenticate to {% data variables.product.product_name %} in your browser using your IdP. For more information, see "[Authenticating as a managed user](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users#authenticating-as-a-managed-user){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} -If you're not a member of an {% data variables.product.prodname_emu_enterprise %}, you will authenticate using your {% data variables.product.prodname_dotcom_the_website %} username and password. You may also use two-factor authentication and SAML single sign-on, which can be required by organization and enterprise owners. +If you're not a member of an {% data variables.enterprise.prodname_emu_enterprise %}, you will authenticate using your {% data variables.product.prodname_dotcom_the_website %} username and password. You may also use two-factor authentication and SAML single sign-on, which can be required by organization and enterprise owners. {% else %} @@ -54,7 +54,7 @@ You can authenticate to {% data variables.product.product_name %} in your browse - If you enable 2FA, after you successfully enter your username and password, we'll also prompt you to provide a code that's generated by a time-based one time password (TOTP) application on your mobile device{% ifversion fpt or ghec %} or sent as a text message (SMS){% endif %}. For more information, see "[Accessing {% data variables.product.prodname_dotcom %} using two-factor authentication](/github/authenticating-to-github/accessing-github-using-two-factor-authentication#providing-a-2fa-code-when-signing-in-to-the-website)." - In addition to authentication with a TOTP application{% ifversion fpt or ghec %} or a text message{% endif %}, you can optionally add an alternative method of authentication with {% ifversion fpt or ghec %}{% data variables.product.prodname_mobile %} or{% endif %} a security key using WebAuthn. For more information, see {% ifversion fpt or ghec %}"[Configuring two-factor authentication with {% data variables.product.prodname_mobile %}](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication#configuring-two-factor-authentication-using-github-mobile)" and {% endif %}"[Configuring two-factor authentication using a security key](/github/authenticating-to-github/configuring-two-factor-authentication#configuring-two-factor-authentication-using-a-security-key)."{% ifversion ghes %} - **External authentication** - - Your site administrator may configure {% data variables.product.product_location %} to use external authentication instead of a username and password. For more information, see "[External authentication methods](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#external-authentication)."{% endif %}{% ifversion fpt or ghec %} + - Your site administrator may configure {% data variables.location.product_location %} to use external authentication instead of a username and password. For more information, see "[External authentication methods](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#external-authentication)."{% endif %}{% ifversion fpt or ghec %} - **SAML single sign-on** - Before you can access resources owned by an organization or enterprise account that uses SAML single sign-on, you may need to also authenticate through an IdP. For more information, see "[About authentication with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %} @@ -67,8 +67,8 @@ You can authenticate with {% data variables.product.prodname_desktop %} using yo You can authenticate with the API in different ways. -- **Personal access tokens** - - In limited situations, such as testing, you can use a personal access token to access the API. Using a personal access token enables you to revoke access at any time. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +- **{% data variables.product.pat_generic_caps %}s** + - In limited situations, such as testing, you can use a {% data variables.product.pat_generic %} to access the API. Using a {% data variables.product.pat_generic %} enables you to revoke access at any time. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." - **Web application flow** - For OAuth Apps in production, you should authenticate using the web application flow. For more information, see "[Authorizing OAuth Apps](/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow)." - **GitHub Apps** @@ -82,22 +82,22 @@ You can access repositories on {% data variables.product.product_name %} from th You can work with all repositories on {% data variables.product.product_name %} over HTTPS, even if you are behind a firewall or proxy. -If you authenticate with {% data variables.product.prodname_cli %}, you can either authenticate with a personal access token or via the web browser. For more information about authenticating with {% data variables.product.prodname_cli %}, see [`gh auth login`](https://cli.github.com/manual/gh_auth_login). +If you authenticate with {% data variables.product.prodname_cli %}, you can either authenticate with a {% data variables.product.pat_generic %} or via the web browser. For more information about authenticating with {% data variables.product.prodname_cli %}, see [`gh auth login`](https://cli.github.com/manual/gh_auth_login). -If you authenticate without {% data variables.product.prodname_cli %}, you must authenticate with a personal access token. {% data reusables.user-settings.password-authentication-deprecation %} Every time you use Git to authenticate with {% data variables.product.product_name %}, you'll be prompted to enter your credentials to authenticate with {% data variables.product.product_name %}, unless you cache them with a [credential helper](/github/getting-started-with-github/caching-your-github-credentials-in-git). +If you authenticate without {% data variables.product.prodname_cli %}, you must authenticate with a {% data variables.product.pat_generic %}. {% data reusables.user-settings.password-authentication-deprecation %} Every time you use Git to authenticate with {% data variables.product.product_name %}, you'll be prompted to enter your credentials to authenticate with {% data variables.product.product_name %}, unless you cache them with a [credential helper](/github/getting-started-with-github/caching-your-github-credentials-in-git). ### SSH You can work with all repositories on {% data variables.product.product_name %} over SSH, although firewalls and proxies might refuse to allow SSH connections. -If you authenticate with {% data variables.product.prodname_cli %}, the CLI will find SSH public keys on your machine and will prompt you to select one for upload. If {% data variables.product.prodname_cli %} does not find a SSH public key for upload, it can generate a new SSH public/private keypair and upload the public key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. Then, you can either authenticate with a personal access token or via the web browser. For more information about authenticating with {% data variables.product.prodname_cli %}, see [`gh auth login`](https://cli.github.com/manual/gh_auth_login). +If you authenticate with {% data variables.product.prodname_cli %}, the CLI will find SSH public keys on your machine and will prompt you to select one for upload. If {% data variables.product.prodname_cli %} does not find a SSH public key for upload, it can generate a new SSH public/private keypair and upload the public key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. Then, you can either authenticate with a {% data variables.product.pat_generic %} or via the web browser. For more information about authenticating with {% data variables.product.prodname_cli %}, see [`gh auth login`](https://cli.github.com/manual/gh_auth_login). -If you authenticate without {% data variables.product.prodname_cli %}, you will need to generate an SSH public/private keypair on your local machine and add the public key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. For more information, see "[Generating a new SSH key and adding it to the ssh-agent](/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)." Every time you use Git to authenticate with {% data variables.product.product_name %}, you'll be prompted to enter your SSH key passphrase, unless you've [stored the key](/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent). +If you authenticate without {% data variables.product.prodname_cli %}, you will need to generate an SSH public/private keypair on your local machine and add the public key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. For more information, see "[Generating a new SSH key and adding it to the ssh-agent](/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)." Every time you use Git to authenticate with {% data variables.product.product_name %}, you'll be prompted to enter your SSH key passphrase, unless you've [stored the key](/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent). {% ifversion fpt or ghec %} ### Authorizing for SAML single sign-on -To use a personal access token or SSH key to access resources owned by an organization that uses SAML single sign-on, you must also authorize the personal token or SSH key. For more information, see "[Authorizing a personal access token for use with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)" or "[Authorizing an SSH key for use with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-an-ssh-key-for-use-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %} +To use a {% data variables.product.pat_generic %} or SSH key to access resources owned by an organization that uses SAML single sign-on, you must also authorize the personal token or SSH key. For more information, see "[Authorizing a {% data variables.product.pat_generic %} for use with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)" or "[Authorizing an SSH key for use with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-an-ssh-key-for-use-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %} ## {% data variables.product.company_short %}'s token formats @@ -105,7 +105,7 @@ To use a personal access token or SSH key to access resources owned by an organi | Token type | Prefix | More information | | :- | :- | :- | -| Personal access token | `ghp_` | "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)" | +| {% data variables.product.pat_generic_caps %} | `ghp_` | "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)" | | OAuth access token | `gho_` | "[Authorizing {% data variables.product.prodname_oauth_apps %}](/developers/apps/authorizing-oauth-apps)" | | User-to-server token for a {% data variables.product.prodname_github_app %} | `ghu_` | "[Identifying and authorizing users for {% data variables.product.prodname_github_apps %}](/developers/apps/identifying-and-authorizing-users-for-github-apps)" | | Server-to-server token for a {% data variables.product.prodname_github_app %} | `ghs_` | "[Authenticating with {% data variables.product.prodname_github_apps %}](/developers/apps/authenticating-with-github-apps#authenticating-as-an-installation)" | diff --git a/content/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps.md b/content/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps.md index 6c4d45b193..9eaad2d5c4 100644 --- a/content/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps.md +++ b/content/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps.md @@ -14,7 +14,7 @@ topics: - Identity - Access management --- -When an {% data variables.product.prodname_oauth_app %} wants to identify you by your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, you'll see a page with the app's developer contact information and a list of the specific data that's being requested. +When an {% data variables.product.prodname_oauth_app %} wants to identify you by your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, you'll see a page with the app's developer contact information and a list of the specific data that's being requested. {% ifversion fpt or ghec %} diff --git a/content/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token.md b/content/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token.md index a69b49b978..88febb34fe 100644 --- a/content/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token.md +++ b/content/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token.md @@ -1,6 +1,6 @@ --- title: Creating a personal access token -intro: You can create a personal access token to use in place of a password with the command line or with the API. +intro: You can create a {% data variables.product.pat_generic %} to use in place of a password with the command line or with the API. redirect_from: - /articles/creating-an-oauth-token-for-command-line-use - /articles/creating-an-access-token-for-command-line-use @@ -17,37 +17,105 @@ versions: topics: - Identity - Access management -shortTitle: Create a PAT +shortTitle: Create a {% data variables.product.pat_generic %} --- -{% note %} -**Notes:** +{% warning %} -- If you use {% data variables.product.prodname_cli %} to authenticate to {% data variables.product.product_name %} on the command line, you can skip generating a personal access token and authenticate via the web browser instead. For more information about authenticating with {% data variables.product.prodname_cli %}, see [`gh auth login`](https://cli.github.com/manual/gh_auth_login). -- [Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager/blob/main/README.md) is a secure, cross-platform alternative to using personal access tokens (PATs) and eliminates the need to manage PAT scope and expiration. For installation instructions, see [Download and install](https://github.com/GitCredentialManager/git-credential-manager/blob/main/README.md#download-and-install) in the GitCredentialManager/git-credential-manager repository. +**Warning**: Treat your access tokens like passwords. -{% endnote %} +To access {% data variables.product.company_short %} from the command line, consider using {% data variables.product.prodname_cli %} or [Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager/blob/main/README.md) instead of creating a {% data variables.product.pat_generic %}. -Personal access tokens (PATs) are an alternative to using passwords for authentication to {% data variables.product.product_name %} when using the [GitHub API](/rest/overview/other-authentication-methods#via-oauth-and-personal-access-tokens) or the [command line](#using-a-token-on-the-command-line). +When using a {% data variables.product.pat_generic %} in a script, consider storing your token as a secret and running your script through {% data variables.product.prodname_actions %}. For more information, see "[Encrypted secrets](/actions/security-guides/encrypted-secrets)."{%- ifversion ghec or fpt %} You can also store your token as a {% data variables.product.prodname_codespaces %} secret and run your script in {% data variables.product.prodname_codespaces %}. For more information, see "[Managing encrypted secrets for your codespaces](/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces)."{% endif %} -{% ifversion fpt or ghec %}If you want to use a PAT to access resources owned by an organization that uses SAML SSO, you must authorize the PAT. For more information, see "[About authentication with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on)" and "[Authorizing a personal access token for use with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %} +If these options are not possible, consider using another service such as [the 1Password CLI](https://developer.1password.com/docs/cli/secret-references/) to store your token securely. + +{% endwarning %} + +## About {% data variables.product.pat_generic %}s + +{% data variables.product.pat_generic_caps %} are an alternative to using passwords for authentication to {% data variables.product.product_name %} when using the [GitHub API](/rest/overview/other-authentication-methods#via-oauth-and-personal-access-tokens) or the [command line](#using-a-token-on-the-command-line). {% data variables.product.pat_generic_caps %}s are intended to access {% data variables.product.company_short %} resources on behalf of yourself. To access resources on behalf of an organization, or for long-lived integrations, you should use a {% data variables.product.prodname_github_app %}. For more information, see "[About apps](/developers/apps/getting-started-with-apps/about-apps)." + +{% ifversion pat-v2 %} + +{% data variables.product.company_short %} currently supports two types of {% data variables.product.pat_generic %}s: {% data variables.product.pat_v2 %}s and {% data variables.product.pat_v1_plural %}. {% data variables.product.company_short %} recommends that you use {% data variables.product.pat_v2 %}s instead of {% data variables.product.pat_v1_plural %} whenever possible. {% data variables.product.pat_v2_caps %}s have several security advantages over {% data variables.product.pat_v1_plural %}: + +- Each token can only access resources owned by a single user or organization. +- Each token can only access specific repositories. +- Each token is granted specific permissions, which offer more control than the scopes granted to {% data variables.product.pat_v1_plural %}. +- Each token must have an expiration date. +- Organization owners can require approval for any {% data variables.product.pat_v2 %}s that can access resources in the organization.{% ifversion ghec or ghes or ghae %} +- Enterprise owners can require approval for any {% data variables.product.pat_v2 %}s that can access resources in organizations owned by the enterprise.{% endif %} + +Additionally, organization owners can restrict the access of {% data variables.product.pat_v1 %} to their organization{% ifversion ghec or ghes or ghae %}, and enterprise owners can restrict the access of {% data variables.product.pat_v1 %} to the enterprise or organizations owned by the enterprise{% endif %}. + +{% data reusables.user-settings.patv2-limitations %} + +{% endif %} {% ifversion fpt or ghec %}{% data reusables.user-settings.removes-personal-access-tokens %}{% endif %} -A token with no assigned scopes can only access public information. To use your token to access repositories from the command line, select `repo`. For more information, see "[Available scopes](/apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes)". +{% ifversion pat-v2 %} -## Creating a token +## Creating a {% data variables.product.pat_v2 %} + +{% note %} + +**Note**: {% data reusables.user-settings.pat-v2-beta %} + +{% endnote %} {% ifversion fpt or ghec %}1. [Verify your email address](/github/getting-started-with-github/verifying-your-email-address), if it hasn't been verified yet.{% endif %} {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.developer_settings %} -{% data reusables.user-settings.personal_access_tokens %} -{% data reusables.user-settings.generate_new_token %} +1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Fine-grained tokens**. +1. Click **Generate new token**. +1. Optionally, under **Token name**, enter a name for the token. +1. Under **Expiration**, select an expiration for the token. +1. Optionally, under **Description**, add a note to describe the purpose of the token. +1. Under **Resource owner**, select a resource owner. The token will only be able to access resources owned by the selected resource owner. Organizations that you are a member of will not appear unless the organization opted in to {% data variables.product.pat_v2 %}s. For more information, see "[Setting a {% data variables.product.pat_generic %} policy for your organization](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)."{% ifversion ghec or ghae %} You may be required to perform SAML single sign-on (SSO) if the selected organization requires it and you do not already have an active SAML session.{% endif %} +1. Optionally, if the resource owner is an organization that requires approval for {% data variables.product.pat_v2 %}s, below the resource owner, in the box, enter a justification for the request. +1. Under **Repository access**, select which repositories you want the token to access. You should choose the minimal repository access that meets your needs. Tokens always include read-only access to all public repositories on GitHub. +1. If you selected **Only select repositories** in the previous step, under the **Selected repositories** dropdown, select the repositories that you want the token to access. +1. Under **Permissions**, select which permissions to grant the token. Depending on which resource owner and which repository access you specified, there are repository, organization, and account permissions. You should choose the minimal permissions necessary for your needs. For more information about what permissions are required for each REST API operation, see "[Permissions required for {% data variables.product.pat_v2 %}s](/rest/overview/permissions-required-for-fine-grained-personal-access-tokens)." +1. Click **Generate token**. + +If you selected an organization as the resource owner and the organization requires approval for {% data variables.product.pat_v2 %}s, then your token will be marked as `pending` until it is reviewed by an organization administrator. Your token will only be able to read public resources until it is approved. If you are an owner of the organization, your request is automatically approved. For more information, see "[Reviewing and revoking {% data variables.product.pat_generic %}s in your organization](/organizations/managing-programmatic-access-to-your-organization/reviewing-and-revoking-personal-access-tokens-in-your-organization)". + +{% endif %} + +## Creating a {% data variables.product.pat_v1 %} + +{% ifversion pat-v2 %} + +{% note %} + +**Note**: Organization owners can restrict the access of {% data variables.product.pat_v1 %} to their organization. If you try to use a {% data variables.product.pat_v1 %} to access resources in an organization that has disabled {% data variables.product.pat_v1 %} access, your request will fail with a 403 response. Instead, you must use a {% data variables.product.prodname_github_app %}, {% data variables.product.prodname_oauth_app %}, or {% data variables.product.pat_v2 %}. + +{% endnote %} + +{% endif %} + +{% ifversion pat-v2 %} + +{% warning %} + +**Note**: Your {% data variables.product.pat_v1 %} can access every repository that you can access. {% data variables.product.company_short %} recommends that you use {% data variables.product.pat_v2 %}s instead, which you can restrict to specific repositories. {% data variables.product.pat_v2_caps %}s also enable you to specify fine-grained permissions instead of broad scopes. + +{% endwarning %} + +{% endif %} + +{% ifversion fpt or ghec %}1. [Verify your email address](/github/getting-started-with-github/verifying-your-email-address), if it hasn't been verified yet.{% endif %} +{% data reusables.user-settings.access_settings %} +{% data reusables.user-settings.developer_settings %} +{% ifversion pat-v2 %}1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Tokens (classic)**.{% else %}{% data reusables.user-settings.personal_access_tokens %}{% endif %} +{% ifversion pat-v2%}1. Select **Generate new token**, then click **Generate new token (classic)**.{% else %}{% data reusables.user-settings.generate_new_token %}{% endif %} 5. Give your token a descriptive name. ![Token description field](/assets/images/help/settings/token_description.png){% ifversion fpt or ghes > 3.2 or ghae or ghec %} 6. To give your token an expiration, select the **Expiration** drop-down menu, then click a default or use the calendar picker. ![Token expiration field](/assets/images/help/settings/token_expiration.png){% endif %} -7. Select the scopes, or permissions, you'd like to grant this token. To use your token to access repositories from the command line, select **repo**. +7. Select the scopes you'd like to grant this token. To use your token to access repositories from the command line, select **repo**. A token with no assigned scopes can only access public information. For more information, see "[Available scopes](/apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes)". {% ifversion fpt or ghes or ghec %} ![Selecting token scopes](/assets/images/help/settings/token_scopes.gif) {% elsif ghae %} @@ -60,25 +128,18 @@ A token with no assigned scopes can only access public information. To use your {% elsif ghes or ghae %} ![Newly created token](/assets/images/help/settings/personal_access_tokens_ghe.png) {% else %} - ![Newly created token](/assets/images/help/settings/personal_access_tokens_ghe_legacy.png) - {% endif %} - {% warning %} - - **Warning:** Treat your tokens like passwords and keep them secret. When working with the API, use tokens as environment variables instead of hardcoding them into your programs. - - {% endwarning %} - -{% ifversion fpt or ghec %}9. To use your token to authenticate to an organization that uses SAML single sign-on, authorize the token. For more information, see "[Authorizing a personal access token for use with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %} + ![Newly created token](/assets/images/help/settings/personal_access_tokens_ghe_legacy.png){% endif %}{% ifversion fpt or ghec %} +1. To use your token to access resources owned by an organization that uses SAML single sign-on, authorize the token. For more information, see "[Authorizing a {% data variables.product.pat_generic %} for use with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %} ## Using a token on the command line {% data reusables.command_line.providing-token-as-password %} -Personal access tokens can only be used for HTTPS Git operations. If your repository uses an SSH remote URL, you will need to [switch the remote from SSH to HTTPS](/github/getting-started-with-github/managing-remote-repositories/#switching-remote-urls-from-ssh-to-https). +{% data variables.product.pat_generic_caps %}s can only be used for HTTPS Git operations. If your repository uses an SSH remote URL, you will need to [switch the remote from SSH to HTTPS](/github/getting-started-with-github/managing-remote-repositories/#switching-remote-urls-from-ssh-to-https). If you are not prompted for your username and password, your credentials may be cached on your computer. You can [update your credentials in the Keychain](/github/getting-started-with-github/updating-credentials-from-the-macos-keychain) to replace your old password with the token. -Instead of manually entering your PAT for every HTTPS Git operation, you can cache your PAT with a Git client. Git will temporarily store your credentials in memory until an expiry interval has passed. You can also store the token in a plain text file that Git can read before every request. For more information, see "[Caching your {% data variables.product.prodname_dotcom %} credentials in Git](/github/getting-started-with-github/caching-your-github-credentials-in-git)." +Instead of manually entering your {% data variables.product.pat_generic %} for every HTTPS Git operation, you can cache your {% data variables.product.pat_generic %} with a Git client. Git will temporarily store your credentials in memory until an expiry interval has passed. You can also store the token in a plain text file that Git can read before every request. For more information, see "[Caching your {% data variables.product.prodname_dotcom %} credentials in Git](/github/getting-started-with-github/caching-your-github-credentials-in-git)." ## Further reading diff --git a/content/authentication/keeping-your-account-and-data-secure/creating-a-strong-password.md b/content/authentication/keeping-your-account-and-data-secure/creating-a-strong-password.md index 93db3e426b..758beda311 100644 --- a/content/authentication/keeping-your-account-and-data-secure/creating-a-strong-password.md +++ b/content/authentication/keeping-your-account-and-data-secure/creating-a-strong-password.md @@ -1,6 +1,6 @@ --- title: Creating a strong password -intro: 'Secure your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} with a strong and unique password using a password manager.' +intro: 'Secure your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} with a strong and unique password using a password manager.' redirect_from: - /articles/what-is-a-strong-password - /articles/creating-a-strong-password @@ -15,13 +15,13 @@ topics: - Access management shortTitle: Create a strong password --- -You must choose or generate a password for your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} that is at least: +You must choose or generate a password for your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} that is at least: - {% ifversion ghes %}Seven{% else %}Eight{% endif %} characters long, if it includes a number and a lowercase letter, or - 15 characters long with any combination of characters To keep your account secure, we recommend you follow these best practices: - Use a password manager, such as [LastPass](https://lastpass.com/) or [1Password](https://1password.com/), to generate a password of at least 15 characters. -- Generate a unique password for {% data variables.product.product_name %}. If you use your {% data variables.product.product_name %} password elsewhere and that service is compromised, then attackers or other malicious actors could use that information to access your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. +- Generate a unique password for {% data variables.product.product_name %}. If you use your {% data variables.product.product_name %} password elsewhere and that service is compromised, then attackers or other malicious actors could use that information to access your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. - Configure two-factor authentication for your personal account. For more information, see "[About two-factor authentication](/articles/about-two-factor-authentication)." - Never share your password, even with a potential collaborator. Each person should use their own personal account on {% data variables.product.product_name %}. For more information on ways to collaborate, see: "[Inviting collaborators to a personal repository](/articles/inviting-collaborators-to-a-personal-repository)," "[About collaborative development models](/articles/about-collaborative-development-models/)," or "[Collaborating with groups in organizations](/organizations/collaborating-with-groups-in-organizations/)." diff --git a/content/authentication/keeping-your-account-and-data-secure/index.md b/content/authentication/keeping-your-account-and-data-secure/index.md index 9d1b48210b..3e202cd327 100644 --- a/content/authentication/keeping-your-account-and-data-secure/index.md +++ b/content/authentication/keeping-your-account-and-data-secure/index.md @@ -1,6 +1,6 @@ --- title: Keeping your account and data secure -intro: 'To protect your personal information, you should keep both your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} and any associated data secure.' +intro: 'To protect your personal information, you should keep both your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} and any associated data secure.' redirect_from: - /articles/keeping-your-account-and-data-secure - /github/authenticating-to-github/keeping-your-account-and-data-secure diff --git a/content/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access.md b/content/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access.md index 90f5e263dc..a0bcd546ee 100644 --- a/content/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access.md +++ b/content/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access.md @@ -1,6 +1,6 @@ --- title: Preventing unauthorized access -intro: 'You may be alerted to a security incident in the media, such as the discovery of the [Heartbleed bug](http://heartbleed.com/), or your computer could be stolen while you''re signed in to {% data variables.product.product_location %}. In such cases, changing your password prevents any unintended future access to your account and projects.' +intro: 'You may be alerted to a security incident in the media, such as the discovery of the [Heartbleed bug](http://heartbleed.com/), or your computer could be stolen while you''re signed in to {% data variables.location.product_location %}. In such cases, changing your password prevents any unintended future access to your account and projects.' redirect_from: - /articles/preventing-unauthorized-access - /github/authenticating-to-github/preventing-unauthorized-access diff --git a/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md b/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md index 4fcc7c1c63..1f4dc55b3f 100644 --- a/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md +++ b/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md @@ -24,7 +24,7 @@ You can remove the file from the latest commit with `git rm`. For information on {% warning %} -**Warning**: This article tells you how to make commits with sensitive data unreachable from any branches or tags in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. However, those commits may still be accessible in any clones or forks of your repository, directly via their SHA-1 hashes in cached views on {% data variables.product.product_name %}, and through any pull requests that reference them. You cannot remove sensitive data from other users' clones of your repository, but you can permanently remove cached views and references to the sensitive data in pull requests on {% data variables.product.product_name %} by contacting {% data variables.contact.contact_support %}. +**Warning**: This article tells you how to make commits with sensitive data unreachable from any branches or tags in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. However, those commits may still be accessible in any clones or forks of your repository, directly via their SHA-1 hashes in cached views on {% data variables.product.product_name %}, and through any pull requests that reference them. You cannot remove sensitive data from other users' clones of your repository, but you can permanently remove cached views and references to the sensitive data in pull requests on {% data variables.product.product_name %} by contacting {% data variables.contact.contact_support %}. If the commit that introduced the sensitive data exists in any forks of your repository, it will continue to be accessible, unless the fork owner removes the sensitive data from their fork or deletes the fork entirely. @@ -128,7 +128,7 @@ To illustrate how `git filter-repo` works, we'll show you how to remove your fil > 1 files changed, 1 insertions(+), 0 deletions(-) ``` 6. Double-check that you've removed everything you wanted to from your repository's history, and that all of your branches are checked out. -7. Once you're happy with the state of your repository, force-push your local changes to overwrite your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, as well as all the branches you've pushed up. A force push is required to remove sensitive data from your commit history. +7. Once you're happy with the state of your repository, force-push your local changes to overwrite your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, as well as all the branches you've pushed up. A force push is required to remove sensitive data from your commit history. ```shell $ git push origin --force --all > Counting objects: 1074, done. diff --git a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md index a0f830267b..dfbb52b360 100644 --- a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md +++ b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log.md @@ -144,8 +144,8 @@ An overview of some of the most common actions that are recorded as events in th | Action | Description |------------------|------------------- -| `create` | Triggered when you [add a new public SSH key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}](/articles/adding-a-new-ssh-key-to-your-github-account). -| `delete` | Triggered when you [remove a public SSH key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}](/articles/reviewing-your-ssh-keys). +| `create` | Triggered when you [add a new public SSH key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}](/articles/adding-a-new-ssh-key-to-your-github-account). +| `delete` | Triggered when you [remove a public SSH key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}](/articles/reviewing-your-ssh-keys). ### `repo` category actions @@ -242,7 +242,7 @@ An overview of some of the most common actions that are recorded as events in th | `change_password` | Triggered when you change your password. | `forgot_password` | Triggered when you ask for [a password reset](/articles/how-can-i-reset-my-password).{% endif %} | `hide_private_contributions_count` | Triggered when you [hide private contributions on your profile](/articles/publicizing-or-hiding-your-private-contributions-on-your-profile). -| `login` | Triggered when you log in to {% data variables.product.product_location %}.{% ifversion ghes or ghae %} +| `login` | Triggered when you log in to {% data variables.location.product_location %}.{% ifversion ghes or ghae %} `mandatory_message_viewed` | Triggered when you view a mandatory message (see "[Customizing user messages](/admin/user-management/customizing-user-messages-for-your-enterprise)" for details) | {% endif %} | `failed_login` | Triggered when you failed to log in successfully. | `remove_email` | Triggered when you remove an email address. diff --git a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md index 52ee56a2d1..65491b5760 100644 --- a/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md +++ b/content/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys.md @@ -1,6 +1,6 @@ --- title: Reviewing your SSH keys -intro: 'To keep your credentials secure, you should regularly audit your SSH keys, deploy keys, and review authorized applications that access your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}.' +intro: 'To keep your credentials secure, you should regularly audit your SSH keys, deploy keys, and review authorized applications that access your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}.' redirect_from: - /articles/keeping-your-application-access-tokens-safe - /articles/keeping-your-ssh-keys-and-application-access-tokens-safe diff --git a/content/authentication/keeping-your-account-and-data-secure/sudo-mode.md b/content/authentication/keeping-your-account-and-data-secure/sudo-mode.md index 2ff593d9f8..25cebe2a85 100644 --- a/content/authentication/keeping-your-account-and-data-secure/sudo-mode.md +++ b/content/authentication/keeping-your-account-and-data-secure/sudo-mode.md @@ -1,6 +1,6 @@ --- title: Sudo mode -intro: 'To confirm access to your account before you perform a potentially sensitive action, {% data variables.product.product_location %} prompts for authentication.' +intro: 'To confirm access to your account before you perform a potentially sensitive action, {% data variables.location.product_location %} prompts for authentication.' redirect_from: - /articles/sudo-mode - /github/authenticating-to-github/sudo-mode @@ -17,7 +17,7 @@ topics: ## About sudo mode -To maintain the security of your account when you perform a potentially sensitive action on {% data variables.product.product_location %}, you must authenticate even though you're already signed in. For example, {% data variables.product.company_short %} considers the following actions sensitive because each action could allow a new person or system to access your account. +To maintain the security of your account when you perform a potentially sensitive action on {% data variables.location.product_location %}, you must authenticate even though you're already signed in. For example, {% data variables.product.company_short %} considers the following actions sensitive because each action could allow a new person or system to access your account. - Modification of an associated email address - Authorization of a third-party application @@ -29,7 +29,7 @@ After you authenticate to perform a sensitive action, your session is temporaril {% note %} -**Note**: If {% data variables.product.product_location %} uses an external authentication method like CAS or SAML SSO, you will not receive prompts to enter sudo mode. For more information, contact your site administrator. +**Note**: If {% data variables.location.product_location %} uses an external authentication method like CAS or SAML SSO, you will not receive prompts to enter sudo mode. For more information, contact your site administrator. {% endnote %} @@ -69,7 +69,7 @@ You must install and sign into {% data variables.product.prodname_mobile %} to c 1. When prompted to authenticate for sudo mode, click **Use GitHub Mobile**. ![Screenshot of {% data variables.product.prodname_mobile %} option for sudo mode](/assets/images/help/settings/sudo_mode_prompt_github_mobile_prompt.png) -1. Open {% data variables.product.prodname_mobile %}. {% data variables.product.prodname_mobile %} will display numbers that you must enter on {% data variables.product.product_location %} to approve the request. +1. Open {% data variables.product.prodname_mobile %}. {% data variables.product.prodname_mobile %} will display numbers that you must enter on {% data variables.location.product_location %} to approve the request. ![Screenshot of numbers from {% data variables.product.prodname_mobile %} to enter on {% data variables.product.product_name %} to approve sudo mode access](/assets/images/help/settings/sudo_mode_prompt_github_mobile.png) 1. On {% data variables.product.product_name %}, type the numbers displayed in {% data variables.product.prodname_mobile %}. diff --git a/content/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation.md b/content/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation.md index b184bab5ab..877fedd33b 100644 --- a/content/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation.md +++ b/content/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation.md @@ -20,35 +20,34 @@ This article explains the possible reasons your {% data variables.product.produc {% note %} -**Note:** When a personal access token or OAuth token expires or is revoked, you may see an `oauth_authorization.destroy` action in your security log. For more information, see "[Reviewing your security log](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-security-log)." +**Note:** When a {% data variables.product.pat_generic %} or OAuth token expires or is revoked, you may see an `oauth_authorization.destroy` action in your security log. For more information, see "[Reviewing your security log](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-security-log)." {% endnote %} {% ifversion fpt or ghae or ghes > 3.2 or ghec %} ## Token revoked after reaching its expiration date -When you create a personal access token, we recommend that you set an expiration for your token. Upon reaching your token's expiration date, the token is automatically revoked. For more information, see "[Creating a personal access token](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)." +When you create a {% data variables.product.pat_generic %}, we recommend that you set an expiration for your token. Upon reaching your token's expiration date, the token is automatically revoked. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)." {% endif %} {% ifversion fpt or ghec %} ## Token revoked when pushed to a public repository or public gist -If a valid OAuth token, {% data variables.product.prodname_github_app %} token, or personal access token is pushed to a public repository or public gist, the token will be automatically revoked. +If a valid OAuth token, {% data variables.product.prodname_github_app %} token, or {% data variables.product.pat_generic %} is pushed to a public repository or public gist, the token will be automatically revoked. -OAuth tokens and personal access tokens pushed to public repositories and public gists will only be revoked if the token has scopes. {% endif %} {% ifversion fpt or ghec %} ## Token expired due to lack of use -{% data variables.product.product_name %} will automatically revoke an OAuth token or personal access token when the token hasn't been used in one year. +{% data variables.product.product_name %} will automatically revoke an OAuth token or {% data variables.product.pat_generic %} when the token hasn't been used in one year. {% endif %} ## Token revoked by the user You can revoke your authorization of a {% data variables.product.prodname_github_app %} or {% data variables.product.prodname_oauth_app %} from your account settings which will revoke any tokens associated with the app. For more information, see "[Reviewing your authorized integrations](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-authorized-integrations)" and "[Reviewing your authorized applications (OAuth)](/github/authenticating-to-github/keeping-your-account-and-data-secure/reviewing-your-authorized-applications-oauth)." -Once an authorization is revoked, any tokens associated with the authorization will be revoked as well. To re-authorize an application, follow the instructions from the third-party application or website to connect your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} again. +Once an authorization is revoked, any tokens associated with the authorization will be revoked as well. To re-authorize an application, follow the instructions from the third-party application or website to connect your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} again. ## Token revoked by the {% data variables.product.prodname_oauth_app %} diff --git a/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md b/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md index 4e61ee5158..12e35114b2 100644 --- a/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md +++ b/content/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials.md @@ -21,7 +21,7 @@ shortTitle: Update access credentials ## Requesting a new password 1. To request a new password, visit {% ifversion fpt or ghec %}https://{% data variables.product.product_url %}/password_reset{% else %}`https://{% data variables.product.product_url %}/password_reset`{% endif %}. -2. Enter the email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, then click **Send password reset email.** The email will be sent to the backup email address if you have one configured. +2. Enter the email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, then click **Send password reset email.** The email will be sent to the backup email address if you have one configured. ![Password reset email request dialog](/assets/images/help/settings/password-recovery-email-request.png) 3. We'll email you a link that will allow you to reset your password. You must click on this link within 3 hours of receiving the email. If you didn't receive an email from us, make sure to check your spam folder. 4. If you have enabled two-factor authentication, you will be prompted for your 2FA credentials: @@ -65,7 +65,7 @@ For greater security, enable two-factor authentication in addition to changing y {% endif %} ## Updating your access tokens -See "[Reviewing your authorized integrations](/articles/reviewing-your-authorized-integrations)" for instructions on reviewing and deleting access tokens. To generate new access tokens, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +See "[Reviewing your authorized integrations](/articles/reviewing-your-authorized-integrations)" for instructions on reviewing and deleting access tokens. To generate new access tokens, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." {% ifversion not ghae %} diff --git a/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md b/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md index b2287d3a5e..4f526c28c2 100644 --- a/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md +++ b/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md @@ -73,7 +73,7 @@ You can optionally choose to have {% data variables.product.prodname_dotcom %} G You can use GPG to sign commits with a GPG key that you generate yourself. -{% data variables.product.product_name %} uses OpenPGP libraries to confirm that your locally signed commits and tags are cryptographically verifiable against a public key you have added to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. +{% data variables.product.product_name %} uses OpenPGP libraries to confirm that your locally signed commits and tags are cryptographically verifiable against a public key you have added to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. To sign commits using GPG and have those commits verified on {% data variables.product.product_name %}, follow these steps: @@ -90,7 +90,7 @@ To sign commits using GPG and have those commits verified on {% data variables.p You can use SSH to sign commits with an SSH public key that you generate yourself. If you already use an SSH key to authenticate with {% data variables.product.product_name %}, you can also upload that same key again for use as a signing key. There's no limit on the number of signing keys you can add to your account. -{% data variables.product.product_name %} uses [ssh_data](https://github.com/github/ssh_data), an open source Ruby library, to confirm that your locally signed commits and tags are cryptographically verifiable against a public key you have added to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. +{% data variables.product.product_name %} uses [ssh_data](https://github.com/github/ssh_data), an open source Ruby library, to confirm that your locally signed commits and tags are cryptographically verifiable against a public key you have added to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. {% data reusables.gpg.ssh-git-version %} diff --git a/content/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account.md b/content/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account.md index 68656fa689..febbc304fa 100644 --- a/content/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account.md +++ b/content/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account.md @@ -1,6 +1,6 @@ --- title: Adding a GPG key to your GitHub account -intro: 'To configure your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} to use your new (or existing) GPG key, you''ll also need the key to your account.' +intro: 'To configure your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} to use your new (or existing) GPG key, you''ll also need the key to your account.' redirect_from: - /articles/adding-a-gpg-key-to-your-github-account - /github/authenticating-to-github/adding-a-new-gpg-key-to-your-github-account diff --git a/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md b/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md index b8394eca60..3c92549eb7 100644 --- a/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md +++ b/content/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key.md @@ -17,7 +17,7 @@ shortTitle: Associate email with GPG key --- {% note %} -If you're using a GPG key that matches your committer identity and your verified email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, then you can begin signing commits and signing tags. +If you're using a GPG key that matches your committer identity and your verified email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, then you can begin signing commits and signing tags. {% endnote %} diff --git a/content/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key.md b/content/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key.md index 6e9972c33c..504536da90 100644 --- a/content/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key.md +++ b/content/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key.md @@ -20,7 +20,7 @@ shortTitle: Tell Git your signing key ## Telling Git about your GPG key -If you're using a GPG key that matches your committer identity and your verified email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, then you can begin signing commits and signing tags. +If you're using a GPG key that matches your committer identity and your verified email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, then you can begin signing commits and signing tags. {% note %} @@ -58,7 +58,7 @@ If you have multiple GPG keys, you need to tell Git which one to use. ## Telling Git about your GPG key -If you're using a GPG key that matches your committer identity and your verified email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, then you can begin signing commits and signing tags. +If you're using a GPG key that matches your committer identity and your verified email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, then you can begin signing commits and signing tags. {% note %} @@ -80,7 +80,7 @@ If you have multiple GPG keys, you need to tell Git which one to use. ## Telling Git about your GPG key -If you're using a GPG key that matches your committer identity and your verified email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, then you can begin signing commits and signing tags. +If you're using a GPG key that matches your committer identity and your verified email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, then you can begin signing commits and signing tags. {% note %} diff --git a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication.md b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication.md index 785de74773..66084e4142 100644 --- a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication.md +++ b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication.md @@ -13,7 +13,7 @@ topics: - 2FA shortTitle: About 2FA --- -For {% data variables.product.product_name %}, the second form of authentication is a code that's generated by an application on your mobile device{% ifversion fpt or ghec %} or sent as a text message (SMS){% endif %}. After you enable 2FA, {% data variables.product.product_name %} generates an authentication code any time someone attempts to sign into your account on {% data variables.product.product_location %}. The only way someone can sign into your account is if they know both your password and have access to the authentication code on your phone. +For {% data variables.product.product_name %}, the second form of authentication is a code that's generated by an application on your mobile device{% ifversion fpt or ghec %} or sent as a text message (SMS){% endif %}. After you enable 2FA, {% data variables.product.product_name %} generates an authentication code any time someone attempts to sign into your account on {% data variables.location.product_location %}. The only way someone can sign into your account is if they know both your password and have access to the authentication code on your phone. {% data reusables.two_fa.after-2fa-add-security-key %} diff --git a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication.md b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication.md index b43d13298a..a79e1f0801 100644 --- a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication.md +++ b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication.md @@ -59,7 +59,7 @@ If you have installed and signed in to {% data variables.product.prodname_mobile ## Using two-factor authentication with the command line -After you've enabled 2FA, you will no longer use your password to access {% data variables.product.product_name %} on the command line. Instead, use Git Credential Manager, a personal access token, or an SSH key. +After you've enabled 2FA, you will no longer use your password to access {% data variables.product.product_name %} on the command line. Instead, use Git Credential Manager, a {% data variables.product.pat_generic %}, or an SSH key. ### Authenticating on the command line using Git Credential Manager @@ -69,11 +69,11 @@ Setup instructions vary based on your computer's operating system. For more info ### Authenticating on the command line using HTTPS -After you've enabled 2FA, you must create a personal access token to use as a password when authenticating to {% data variables.product.product_name %} on the command line using HTTPS URLs. +After you've enabled 2FA, you must create a {% data variables.product.pat_generic %} to use as a password when authenticating to {% data variables.product.product_name %} on the command line using HTTPS URLs. -When prompted for a username and password on the command line, use your {% data variables.product.product_name %} username and personal access token. The command line prompt won't specify that you should enter your personal access token when it asks for your password. +When prompted for a username and password on the command line, use your {% data variables.product.product_name %} username and {% data variables.product.pat_generic %}. The command line prompt won't specify that you should enter your {% data variables.product.pat_generic %} when it asks for your password. -For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." ### Authenticating on the command line using SSH @@ -81,7 +81,7 @@ Enabling 2FA doesn't change how you authenticate to {% data variables.product.pr ## Using two-factor authentication to access a repository using Subversion -When you access a repository via Subversion, you must provide a personal access token instead of entering your password. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +When you access a repository via Subversion, you must provide a {% data variables.product.pat_generic %} instead of entering your password. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." ## Troubleshooting diff --git a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md index f067641c39..ec06abf702 100644 --- a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md +++ b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md @@ -23,14 +23,14 @@ We strongly recommend using a time-based one-time password (TOTP) application to {% warning %} **Warning:** -- If you're a member{% ifversion fpt or ghec %}, billing manager,{% endif %} or outside collaborator to a private repository of an organization that requires two-factor authentication, you must leave the organization before you can disable 2FA on {% data variables.product.product_location %}. +- If you're a member{% ifversion fpt or ghec %}, billing manager,{% endif %} or outside collaborator to a private repository of an organization that requires two-factor authentication, you must leave the organization before you can disable 2FA on {% data variables.location.product_location %}. - If you disable 2FA, you will automatically lose access to the organization and any private forks you have of the organization's private repositories. To regain access to the organization and your forks, re-enable two-factor authentication and contact an organization owner. {% endwarning %} {% ifversion fpt or ghec %} -If you're a member of an {% data variables.product.prodname_emu_enterprise %}, you cannot configure 2FA for your {% data variables.product.prodname_managed_user %} account unless you're signed in as the setup user. For users other than the setup user, an administrator must configure 2FA on your identity provider (IdP). +If you're a member of an {% data variables.enterprise.prodname_emu_enterprise %}, you cannot configure 2FA for your {% data variables.enterprise.prodname_managed_user %} account unless you're signed in as the setup user. For users other than the setup user, an administrator must configure 2FA on your identity provider (IdP). {% endif %} @@ -58,7 +58,7 @@ A time-based one-time password (TOTP) application automatically generates an aut - Scan the QR code with your mobile device's app. After scanning, the app displays a six-digit code that you can enter on {% data variables.product.product_name %}. - If you can't scan the QR code, click **enter this text code** to see a code that you can manually enter in your TOTP app instead. ![Click enter this code](/assets/images/help/2fa/2fa_wizard_app_click_code.png) -7. The TOTP mobile application saves your account on {% data variables.product.product_location %} and generates a new authentication code every few seconds. On {% data variables.product.product_name %}, type the code into the field under "Enter the six-digit code from the application". If your recovery codes are not automatically displayed, click **Continue**. +7. The TOTP mobile application saves your account on {% data variables.location.product_location %} and generates a new authentication code every few seconds. On {% data variables.product.product_name %}, type the code into the field under "Enter the six-digit code from the application". If your recovery codes are not automatically displayed, click **Continue**. ![TOTP enter code field](/assets/images/help/2fa/2fa_wizard_app_enter_code.png) {% data reusables.two_fa.save_your_recovery_codes_during_2fa_setup %} {%- else %} @@ -73,7 +73,7 @@ A time-based one-time password (TOTP) application automatically generates an aut - Scan the QR code with your mobile device's app. After scanning, the app displays a six-digit code that you can enter on {% data variables.product.product_name %}. - If you can't scan the QR code, click **enter this text code** to see a code you can copy and manually enter on {% data variables.product.product_name %} instead. ![Click enter this code](/assets/images/help/2fa/totp-click-enter-code.png) -9. The TOTP mobile application saves your account on {% data variables.product.product_location %} and generates a new authentication code every few seconds. On {% data variables.product.product_name %}, on the 2FA page, type the code and click **Enable**. +9. The TOTP mobile application saves your account on {% data variables.location.product_location %} and generates a new authentication code every few seconds. On {% data variables.product.product_name %}, on the 2FA page, type the code and click **Enable**. ![TOTP Enable field](/assets/images/help/2fa/totp-enter-code.png) {%- endif %} {% data reusables.two_fa.test_2fa_immediately %} @@ -152,4 +152,4 @@ After signing in, you can now use your device for 2FA. - "[Configuring two-factor authentication recovery methods](/articles/configuring-two-factor-authentication-recovery-methods)" - "[Accessing {% data variables.product.prodname_dotcom %} using two-factor authentication](/articles/accessing-github-using-two-factor-authentication)" - "[Recovering your account if you lose your 2FA credentials](/articles/recovering-your-account-if-you-lose-your-2fa-credentials)" -- "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)" +- "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)" diff --git a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/index.md b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/index.md index 84d2bd82bf..ee314edd92 100644 --- a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/index.md +++ b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/index.md @@ -1,6 +1,6 @@ --- title: Securing your account with two-factor authentication (2FA) -intro: 'You can set up your account on {% data variables.product.product_location %} to require an authentication code in addition to your password when you sign in.' +intro: 'You can set up your account on {% data variables.location.product_location %} to require an authentication code in addition to your password when you sign in.' redirect_from: - /categories/84/articles - /categories/two-factor-authentication-2fa diff --git a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials.md b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials.md index 8c265e5235..6c4ac89dc0 100644 --- a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials.md +++ b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials.md @@ -62,9 +62,9 @@ If you lose access to your primary TOTP app or phone number, you can provide a t If you configured two-factor authentication using a security key, you can use your security key as a secondary authentication method to automatically regain access to your account. For more information, see "[Configuring two-factor authentication](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication#configuring-two-factor-authentication-using-a-security-key)." {% ifversion fpt or ghec %} -## Authenticating with a verified device, SSH token, or personal access token +## Authenticating with a verified device, SSH token, or {% data variables.product.pat_generic %} -If you know your password for {% data variables.product.product_location %} but don't have the two-factor authentication credentials or your two-factor authentication recovery codes, you can have a one-time password sent to your verified email address to begin the verification process and regain access to your account. +If you know your password for {% data variables.location.product_location %} but don't have the two-factor authentication credentials or your two-factor authentication recovery codes, you can have a one-time password sent to your verified email address to begin the verification process and regain access to your account. {% note %} @@ -102,7 +102,7 @@ You can use your two-factor authentication credentials or two-factor authenticat 1. Choose an alternative verification factor. - If you've used your current device to log into this account before and would like to use the device for verification, click **Verify with this device**. - If you've previously set up an SSH key on this account and would like to use the SSH key for verification, click **SSH key**. - - If you've previously set up a personal access token and would like to use the personal access token for verification, click **Personal access token**. + - If you've previously set up a {% data variables.product.pat_generic %} and would like to use the {% data variables.product.pat_generic %} for verification, click **{% data variables.product.pat_generic_caps %}**. ![Screenshot of buttons for alternative verification](/assets/images/help/2fa/alt-verifications.png) 1. A member of {% data variables.contact.github_support %} will review your request and email you within three business days. If your request is approved, you'll receive a link to complete your account recovery process. If your request is denied, the email will include a way to contact support with any additional questions. diff --git a/content/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign.md b/content/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign.md index 2f300729e3..d134f687e9 100644 --- a/content/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign.md +++ b/content/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign.md @@ -15,7 +15,7 @@ topics: - SSH shortTitle: Agent failure to sign --- -When trying to SSH into {% data variables.product.product_location %} on a Linux computer, you may see the following message in your terminal: +When trying to SSH into {% data variables.location.product_location %} on a Linux computer, you may see the following message in your terminal: ```shell $ ssh -vT git@{% data variables.command_line.codeblock %} diff --git a/content/authentication/troubleshooting-ssh/error-key-already-in-use.md b/content/authentication/troubleshooting-ssh/error-key-already-in-use.md index cc1ace2c70..315f4701b6 100644 --- a/content/authentication/troubleshooting-ssh/error-key-already-in-use.md +++ b/content/authentication/troubleshooting-ssh/error-key-already-in-use.md @@ -19,12 +19,12 @@ To determine where the key has already been used, open a terminal and type the ` ```shell $ ssh -T -ai ~/.ssh/id_rsa git@{% data variables.command_line.codeblock %} -# Connect to {% data variables.product.product_location %} using a specific ssh key +# Connect to {% data variables.location.product_location %} using a specific ssh key > Hi USERNAME! You've successfully authenticated, but GitHub does not > provide shell access. ``` -The *username* in the response is the account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} that the key is currently attached to. If the response looks something like "username/repo", the key has been attached to a repository as a [*deploy key*](/guides/managing-deploy-keys#deploy-keys). +The *username* in the response is the account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} that the key is currently attached to. If the response looks something like "username/repo", the key has been attached to a repository as a [*deploy key*](/guides/managing-deploy-keys#deploy-keys). To force SSH to use only the key provided on the command line, use `-o` to add the `IdentitiesOnly=yes` option: diff --git a/content/authentication/troubleshooting-ssh/using-ssh-over-the-https-port.md b/content/authentication/troubleshooting-ssh/using-ssh-over-the-https-port.md index aac4adfcdd..9f094aa659 100644 --- a/content/authentication/troubleshooting-ssh/using-ssh-over-the-https-port.md +++ b/content/authentication/troubleshooting-ssh/using-ssh-over-the-https-port.md @@ -30,7 +30,7 @@ If that worked, great! If not, you may need to [follow our troubleshooting guide ## Enabling SSH connections over HTTPS -If you are able to SSH into `git@ssh.{% data variables.command_line.backticks %}` over port 443, you can override your SSH settings to force any connection to {% data variables.product.product_location %} to run through that server and port. +If you are able to SSH into `git@ssh.{% data variables.command_line.backticks %}` over port 443, you can override your SSH settings to force any connection to {% data variables.location.product_location %} to run through that server and port. To set this in your SSH configuration file, edit the file at `~/.ssh/config`, and add this section: @@ -41,7 +41,7 @@ Port 443 User git ``` -You can test that this works by connecting once more to {% data variables.product.product_location %}: +You can test that this works by connecting once more to {% data variables.location.product_location %}: ```shell $ ssh -T git@{% data variables.command_line.codeblock %} diff --git a/content/billing/managing-billing-for-github-packages/about-billing-for-github-packages.md b/content/billing/managing-billing-for-github-packages/about-billing-for-github-packages.md index 81683b18f8..dcdfa5e6df 100644 --- a/content/billing/managing-billing-for-github-packages/about-billing-for-github-packages.md +++ b/content/billing/managing-billing-for-github-packages/about-billing-for-github-packages.md @@ -45,7 +45,7 @@ All data transferred out, when triggered by {% data variables.product.prodname_a ||Hosted|Self-Hosted| |-|-|-| |Access using a `GITHUB_TOKEN`|Free|Free| -|Access using a personal access token|Free|$| +|Access using a {% data variables.product.pat_generic %}|Free|$| Storage usage is shared with build artifacts produced by {% data variables.product.prodname_actions %} for repositories owned by your account. For more information, see "[About billing for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)." diff --git a/content/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise.md b/content/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise.md index 60e391323d..8193a24ee4 100644 --- a/content/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise.md +++ b/content/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise.md @@ -45,7 +45,7 @@ You can see your current usage in your [Azure account portal](https://portal.azu {% ifversion ghec %} -When you use an enterprise account on {% data variables.product.product_location %}, the enterprise account is the central point for all billing within your enterprise, including the organizations that your enterprise owns. +When you use an enterprise account on {% data variables.location.product_location %}, the enterprise account is the central point for all billing within your enterprise, including the organizations that your enterprise owns. If you use {% data variables.product.product_name %} with an individual organization and do not yet have an enterprise account, you create an enterprise account and add your organization. For more information, see "[Creating an enterprise account](/admin/overview/creating-an-enterprise-account)." @@ -53,7 +53,7 @@ If you use {% data variables.product.product_name %} with an individual organiza {% elsif ghes %} -Each user on {% data variables.product.product_location %} consumes a seat on your license. {% data variables.product.company_short %} bills monthly for the total number of seats consumed on your license. +Each user on {% data variables.location.product_location %} consumes a seat on your license. {% data variables.product.company_short %} bills monthly for the total number of seats consumed on your license. {% endif %} diff --git a/content/billing/managing-billing-for-your-github-account/about-per-user-pricing.md b/content/billing/managing-billing-for-your-github-account/about-per-user-pricing.md index 0253200ccb..5f06513eaa 100644 --- a/content/billing/managing-billing-for-your-github-account/about-per-user-pricing.md +++ b/content/billing/managing-billing-for-your-github-account/about-per-user-pricing.md @@ -86,7 +86,7 @@ In addition to licensed seats, your bill may include other charges, such as {% d {% data variables.product.company_short %} does not bill for any of the following accounts: -- {% data variables.product.prodname_managed_users_caps %} that are suspended +- {% data variables.enterprise.prodname_managed_users_caps %} that are suspended - Enterprise owners who are not a member or owner of at least one organization in the enterprise - Enterprise billing managers - Billing managers for individual organizations diff --git a/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md b/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md index d73faf0e4b..a78c974347 100644 --- a/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md +++ b/content/billing/managing-billing-for-your-github-account/downgrading-your-github-subscription.md @@ -1,6 +1,6 @@ --- title: Downgrading your GitHub subscription -intro: 'You can downgrade the subscription for any type of account on {% data variables.product.product_location %} at any time.' +intro: 'You can downgrade the subscription for any type of account on {% data variables.location.product_location %} at any time.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/downgrading-your-github-subscription - /articles/downgrading-your-personal-account-s-billing-plan diff --git a/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md b/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md index 2d5df42d4c..9d40ff9312 100644 --- a/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md +++ b/content/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription.md @@ -1,6 +1,6 @@ --- title: Upgrading your GitHub subscription -intro: 'You can upgrade the subscription for any type of account on {% data variables.product.product_location %} at any time.' +intro: 'You can upgrade the subscription for any type of account on {% data variables.location.product_location %} at any time.' miniTocMaxHeadingLevel: 3 redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/upgrading-your-github-subscription diff --git a/content/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md b/content/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md index e9eea5a2f7..aba1e9288f 100644 --- a/content/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md +++ b/content/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md @@ -1,6 +1,6 @@ --- title: Viewing the subscription and usage for your enterprise account -intro: 'You can view the current {% ifversion ghec %}subscription, {% endif %}license usage{% ifversion ghec %}, invoices, payment history, and other billing information{% endif %} for {% ifversion ghec %}your enterprise account{% elsif ghes %}{% data variables.product.product_location_enterprise %}{% endif %}.' +intro: 'You can view the current {% ifversion ghec %}subscription, {% endif %}license usage{% ifversion ghec %}, invoices, payment history, and other billing information{% endif %} for {% ifversion ghec %}your enterprise account{% elsif ghes %}{% data variables.location.product_location_enterprise %}{% endif %}.' permissions: 'Enterprise owners {% ifversion ghec %}and billing managers {% endif %}can access and manage all billing settings for enterprise accounts.' redirect_from: - /github/setting-up-and-managing-your-enterprise/managing-your-enterprise-account/viewing-the-subscription-and-usage-for-your-enterprise-account @@ -17,7 +17,7 @@ shortTitle: View subscription & usage ## About billing for enterprise accounts -You can view an overview of {% ifversion ghec %}your subscription and paid{% elsif ghes %}the license{% endif %} usage for {% ifversion ghec %}your{% elsif ghes %}the{% endif %} enterprise account on {% ifversion ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.product.product_location %}{% endif %}.{% ifversion ghec %} {% data reusables.enterprise.create-an-enterprise-account %} For more information, see "[Creating an enterprise account](/enterprise-cloud@latest/admin/overview/creating-an-enterprise-account)."{% endif %} +You can view an overview of {% ifversion ghec %}your subscription and paid{% elsif ghes %}the license{% endif %} usage for {% ifversion ghec %}your{% elsif ghes %}the{% endif %} enterprise account on {% ifversion ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.location.product_location %}{% endif %}.{% ifversion ghec %} {% data reusables.enterprise.create-an-enterprise-account %} For more information, see "[Creating an enterprise account](/enterprise-cloud@latest/admin/overview/creating-an-enterprise-account)."{% endif %} For invoiced {% data variables.product.prodname_enterprise %} customers{% ifversion ghes %} who use both {% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_ghe_server %}{% endif %}, each invoice includes details about billed services for all products. For example, in addition to your usage for {% ifversion ghec %}{% data variables.product.prodname_ghe_cloud %}{% elsif ghes %}{% data variables.product.product_name %}{% endif %}, you may have usage for {% data variables.product.prodname_GH_advanced_security %}{% ifversion ghec %}, {% elsif ghes %}. You may also have usage on {% data variables.product.prodname_dotcom_the_website %}, like {% endif %}paid licenses in organizations outside of your enterprise account, data packs for {% data variables.large_files.product_name_long %}, or subscriptions to apps in {% data variables.product.prodname_marketplace %}. For more information about invoices, see "[Managing invoices for your enterprise]({% ifversion ghes %}/enterprise-cloud@latest{% endif %}/billing/managing-billing-for-your-github-account/managing-invoices-for-your-enterprise){% ifversion ghec %}."{% elsif ghes %}" in the {% data variables.product.prodname_dotcom_the_website %} documentation.{% endif %} diff --git a/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md b/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md index 93f6a74960..af80bbb3a1 100644 --- a/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md +++ b/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md @@ -35,7 +35,7 @@ The total quantity of your licenses for your enterprise on {% data variables.pro For more information about {% data variables.product.prodname_enterprise %}, see "[{% data variables.product.company_short %}'s products](/github/getting-started-with-github/githubs-products#github-enterprise)." For more information about accounts on {% data variables.product.prodname_dotcom_the_website %}, see "[Types of {% data variables.product.prodname_dotcom %} accounts](/github/getting-started-with-github/types-of-github-accounts)." -You can view the number of {% data variables.product.prodname_enterprise %} licenses available to your enterprise on {% data variables.product.product_location %}. The list of pending invitations includes subscribers who are not yet members of at least one organization in your enterprise. For more information, see "[Viewing the subscription and usage for your enterprise account](/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account)" and "[Viewing people in your enterprise](/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise#viewing-members-and-outside-collaborators)." +You can view the number of {% data variables.product.prodname_enterprise %} licenses available to your enterprise on {% data variables.location.product_location %}. The list of pending invitations includes subscribers who are not yet members of at least one organization in your enterprise. For more information, see "[Viewing the subscription and usage for your enterprise account](/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account)" and "[Viewing people in your enterprise](/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise#viewing-members-and-outside-collaborators)." {% tip %} diff --git a/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/setting-up-visual-studio-subscriptions-with-github-enterprise.md b/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/setting-up-visual-studio-subscriptions-with-github-enterprise.md index 942b2eb1c9..41af3a41ef 100644 --- a/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/setting-up-visual-studio-subscriptions-with-github-enterprise.md +++ b/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/setting-up-visual-studio-subscriptions-with-github-enterprise.md @@ -27,16 +27,16 @@ Before setting up {% data variables.product.prodname_vss_ghe %}, it's important | :- | :- | :- | :- | | **Subscriptions admin** | {% data variables.product.prodname_vs %} subscription | Person who assigns licenses for {% data variables.product.prodname_vs %} subscription | [Overview of admin responsibilities](https://docs.microsoft.com/en-us/visualstudio/subscriptions/admin-responsibilities) in Microsoft Docs | | **Subscriber** | {% data variables.product.prodname_vs %} subscription | Person who uses a license for {% data variables.product.prodname_vs %} subscription | [Visual Studio Subscriptions documentation](https://docs.microsoft.com/en-us/visualstudio/subscriptions/) in Microsoft Docs | -| **Enterprise owner** | {% data variables.product.prodname_dotcom %} | Person who has a personal account that's an administrator of an enterprise on {% data variables.product.product_location %} | "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owner)" | -| **Organization owner** | {% data variables.product.prodname_dotcom %} | Person who has a personal account that's an owner of an organization in your team's enterprise on {% data variables.product.product_location %} | "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#organization-owners)" | -| **Enterprise member** | {% data variables.product.prodname_dotcom %} | Person who has a personal account that's a member of an enterprise on {% data variables.product.product_location %} | "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-members)" | +| **Enterprise owner** | {% data variables.product.prodname_dotcom %} | Person who has a personal account that's an administrator of an enterprise on {% data variables.location.product_location %} | "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owner)" | +| **Organization owner** | {% data variables.product.prodname_dotcom %} | Person who has a personal account that's an owner of an organization in your team's enterprise on {% data variables.location.product_location %} | "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#organization-owners)" | +| **Enterprise member** | {% data variables.product.prodname_dotcom %} | Person who has a personal account that's a member of an enterprise on {% data variables.location.product_location %} | "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-members)" | ## Prerequisites - Your team's {% data variables.product.prodname_vs %} subscription must include {% data variables.product.prodname_enterprise %}. For more information, see [{% data variables.product.prodname_vs %} Subscriptions and Benefits](https://visualstudio.microsoft.com/subscriptions/) on the {% data variables.product.prodname_vs %} website and [Overview of admin responsibilities](https://docs.microsoft.com/en-us/visualstudio/subscriptions/admin-responsibilities) in Microsoft Docs. - - Your team must have an enterprise on {% data variables.product.product_location %}. If you're not sure whether your team has an enterprise, contact your {% data variables.product.prodname_dotcom %} administrator. If you're not sure who on your team is responsible for {% data variables.product.prodname_dotcom %}, contact {% data variables.contact.contact_enterprise_sales %}. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." + - Your team must have an enterprise on {% data variables.location.product_location %}. If you're not sure whether your team has an enterprise, contact your {% data variables.product.prodname_dotcom %} administrator. If you're not sure who on your team is responsible for {% data variables.product.prodname_dotcom %}, contact {% data variables.contact.contact_enterprise_sales %}. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." ## Setting up {% data variables.product.prodname_vss_ghe %} @@ -44,7 +44,7 @@ To set up {% data variables.product.prodname_vss_ghe %}, members of your team mu One person may be able to complete the tasks because the person has all of the roles, but you may need to coordinate the tasks with multiple people. For more information, see "[Roles for {% data variables.product.prodname_vss_ghe %}](#roles-for-visual-studio-subscriptions-with-github-enterprise)." -1. An enterprise owner must create at least one organization in your enterprise on {% data variables.product.product_location %}. For more information, see "[Adding organizations to your enterprise](/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise)." +1. An enterprise owner must create at least one organization in your enterprise on {% data variables.location.product_location %}. For more information, see "[Adding organizations to your enterprise](/admin/user-management/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise)." 1. The subscription admin must assign a license for {% data variables.product.prodname_vs %} to a subscriber in {% data variables.product.prodname_vss_admin_portal_with_url %}. For more information, see [Overview of the {% data variables.product.prodname_vs %} Subscriptions Administrator Portal](https://docs.microsoft.com/en-us/visualstudio/subscriptions/using-admin-portal) and [Assign {% data variables.product.prodname_vs %} Licenses in the {% data variables.product.prodname_vs %} Subscriptions Administration Portal](https://docs.microsoft.com/en-us/visualstudio/subscriptions/assign-license) in Microsoft Docs. @@ -52,19 +52,19 @@ One person may be able to complete the tasks because the person has all of the r 1. If the subscription admin has not disabled email notifications, the subscriber will receive two confirmation emails. For more information, see [{% data variables.product.prodname_vs %} subscriptions with {% data variables.product.prodname_enterprise %}](https://docs.microsoft.com/en-us/visualstudio/subscriptions/access-github#what-is-the-visual-studio-subscription-with-github-enterprise-setup-process) in Microsoft Docs. -1. An organization owner must invite the subscriber to the organization on {% data variables.product.product_location %} from step 1. The subscriber can accept the invitation with an existing personal account on {% data variables.product.prodname_dotcom_the_website %} or create a new account. After the subscriber joins the organization, the subscriber becomes an enterprise member. For more information, see "[Inviting users to join your organization](/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization)." +1. An organization owner must invite the subscriber to the organization on {% data variables.location.product_location %} from step 1. The subscriber can accept the invitation with an existing personal account on {% data variables.product.prodname_dotcom_the_website %} or create a new account. After the subscriber joins the organization, the subscriber becomes an enterprise member. For more information, see "[Inviting users to join your organization](/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization)." {% tip %} **Tips**: - - While not required, we recommend that the organization owner sends an invitation to the same email address used for the subscriber's User Primary Name (UPN). When the email address on {% data variables.product.product_location %} matches the subscriber's UPN, you can ensure that another enterprise does not claim the subscriber's license. - - If the subscriber accepts the invitation to the organization with an existing personal account on {% data variables.product.product_location %}, we recommend that the subscriber add the email address they use for {% data variables.product.prodname_vs %} to their personal account on {% data variables.product.product_location %}. For more information, see "[Adding an email address to your {% data variables.product.prodname_dotcom %} account](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/adding-an-email-address-to-your-github-account)." + - While not required, we recommend that the organization owner sends an invitation to the same email address used for the subscriber's User Primary Name (UPN). When the email address on {% data variables.location.product_location %} matches the subscriber's UPN, you can ensure that another enterprise does not claim the subscriber's license. + - If the subscriber accepts the invitation to the organization with an existing personal account on {% data variables.location.product_location %}, we recommend that the subscriber add the email address they use for {% data variables.product.prodname_vs %} to their personal account on {% data variables.location.product_location %}. For more information, see "[Adding an email address to your {% data variables.product.prodname_dotcom %} account](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/adding-an-email-address-to-your-github-account)." - If the organization owner must invite a large number of subscribers, a script may make the process faster. For more information, see [the sample PowerShell script](https://github.com/github/platform-samples/blob/master/api/powershell/invite_members_to_org.ps1) in the `github/platform-samples` repository. {% endtip %} -After {% data variables.product.prodname_vss_ghe %} is set up for subscribers on your team, enterprise owners can review licensing information on {% data variables.product.product_location %}. For more information, see "[Viewing the subscription and usage for your enterprise account](/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account)." +After {% data variables.product.prodname_vss_ghe %} is set up for subscribers on your team, enterprise owners can review licensing information on {% data variables.location.product_location %}. For more information, see "[Viewing the subscription and usage for your enterprise account](/billing/managing-billing-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account)." ## Further reading diff --git a/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md b/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md index 58abfeddf7..2a8b764350 100644 --- a/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md +++ b/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md @@ -27,7 +27,7 @@ In order to use a {% data variables.product.prodname_ghe_server %} instance, you ## About license files for {% data variables.product.prodname_enterprise %} -When you purchase or renew {% data variables.product.prodname_enterprise %}, {% data variables.product.company_short %} provides a license file {% ifversion ghec %}for your deployments of {% data variables.product.prodname_ghe_server %}{% elsif ghes %}for {% data variables.product.product_location_enterprise %}{% endif %}. A license file has an expiration date and controls the number of people who can use {% data variables.product.product_location_enterprise %}. After you download and install {% data variables.product.prodname_ghe_server %}, you must upload the license file to unlock the application for you to use. +When you purchase or renew {% data variables.product.prodname_enterprise %}, {% data variables.product.company_short %} provides a license file {% ifversion ghec %}for your deployments of {% data variables.product.prodname_ghe_server %}{% elsif ghes %}for {% data variables.location.product_location_enterprise %}{% endif %}. A license file has an expiration date and controls the number of people who can use {% data variables.location.product_location_enterprise %}. After you download and install {% data variables.product.prodname_ghe_server %}, you must upload the license file to unlock the application for you to use. For more information about downloading your license file, see "[Downloading your license for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise)." diff --git a/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md b/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md index 1f40813d65..9e67e9dfa4 100644 --- a/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md +++ b/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md @@ -29,7 +29,7 @@ You must have an enterprise account on {% data variables.product.prodname_dotcom 1. Under "Enterprise Server Instances", click {% octicon "download" aria-label="The download icon" %} to download your license file. ![Download GitHub Enterprise Server license](/assets/images/help/business-accounts/download-ghes-license.png) -After you download your license file, you can upload the file to {% data variables.product.product_location_enterprise %} to validate your application. For more information, see {% ifversion ghec %}"[Uploading a new license to {% data variables.product.prodname_ghe_server %}](/enterprise-server/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server)" in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}"[Uploading a new license to {% data variables.product.prodname_ghe_server %}](/enterprise-server/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server)."{% endif %} +After you download your license file, you can upload the file to {% data variables.location.product_location_enterprise %} to validate your application. For more information, see {% ifversion ghec %}"[Uploading a new license to {% data variables.product.prodname_ghe_server %}](/enterprise-server/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server)" in the {% data variables.product.prodname_ghe_server %} documentation.{% elsif ghes %}"[Uploading a new license to {% data variables.product.prodname_ghe_server %}](/enterprise-server/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server)."{% endif %} ## Downloading your license if you don't have an enterprise account on {% data variables.product.prodname_dotcom_the_website %} diff --git a/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md b/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md index 4edf184f57..e66cfc6dd6 100644 --- a/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md +++ b/content/billing/managing-your-license-for-github-enterprise/uploading-a-new-license-to-github-enterprise-server.md @@ -1,6 +1,6 @@ --- title: Uploading a new license to GitHub Enterprise Server -intro: 'You can upload your license file for {% data variables.product.prodname_enterprise %} to {% data variables.product.product_location_enterprise %} to validate your application.' +intro: 'You can upload your license file for {% data variables.product.prodname_enterprise %} to {% data variables.location.product_location_enterprise %} to validate your application.' versions: ghes: '*' type: how_to @@ -12,19 +12,19 @@ shortTitle: Upload a new license ## About license files for {% data variables.product.prodname_enterprise %} -After you purchase or upgrade a license for {% data variables.product.prodname_enterprise %} from {% data variables.contact.contact_enterprise_sales %}, you must upload the new license file to {% data variables.product.product_location_enterprise %} to unlock your new user licenses. For more information about licenses for {% data variables.product.product_name %}, see "[About licenses for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise)" and "[Downloading your license for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise)." +After you purchase or upgrade a license for {% data variables.product.prodname_enterprise %} from {% data variables.contact.contact_enterprise_sales %}, you must upload the new license file to {% data variables.location.product_location_enterprise %} to unlock your new user licenses. For more information about licenses for {% data variables.product.product_name %}, see "[About licenses for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise)" and "[Downloading your license for {% data variables.product.prodname_enterprise %}](/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise)." {% data reusables.enterprise-licensing.contact-sales-for-renewals-or-seats %} -## Uploading your license to {% data variables.product.product_location_enterprise %} +## Uploading your license to {% data variables.location.product_location_enterprise %} {% warning %} -**Warning:** Updating your license causes a small amount of downtime for {% data variables.product.product_location %}. +**Warning:** Updating your license causes a small amount of downtime for {% data variables.location.product_location %}. {% endwarning %} -1. Sign into {% data variables.product.product_location_enterprise %} as a site administrator. +1. Sign into {% data variables.location.product_location_enterprise %} as a site administrator. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} diff --git a/content/billing/managing-your-license-for-github-enterprise/viewing-license-usage-for-github-enterprise.md b/content/billing/managing-your-license-for-github-enterprise/viewing-license-usage-for-github-enterprise.md index 6b2e1ca706..452c276d23 100644 --- a/content/billing/managing-your-license-for-github-enterprise/viewing-license-usage-for-github-enterprise.md +++ b/content/billing/managing-your-license-for-github-enterprise/viewing-license-usage-for-github-enterprise.md @@ -1,6 +1,6 @@ --- title: Viewing license usage for GitHub Enterprise -intro: 'You can view license usage for your enterprise on {% ifversion ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.product.product_location %}{% endif %}.' +intro: 'You can view license usage for your enterprise on {% ifversion ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.location.product_location %}{% endif %}.' permissions: 'Enterprise owners can view license usage for {% data variables.product.prodname_enterprise %}.' versions: ghec: '*' @@ -14,7 +14,7 @@ shortTitle: View license usage ## About license usage for {% data variables.product.prodname_enterprise %} -You can view license usage for {% data variables.product.product_name %} on {% data variables.product.product_location %}. +You can view license usage for {% data variables.product.product_name %} on {% data variables.location.product_location %}. If you use both {% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_ghe_server %} and sync license usage between the products, you can view license usage for both on {% data variables.product.prodname_dotcom_the_website %}. For more information about license sync, see "[Syncing license usage between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)." @@ -29,7 +29,7 @@ You can also use the REST API to return consumed licenses data and the status of To learn more about the license data associated with your enterprise account and how the number of consumed user seats are calculated, see "[Troubleshooting license usage for GitHub Enterprise](/billing/managing-your-license-for-github-enterprise/troubleshooting-license-usage-for-github-enterprise)." -## Viewing license usage on {% ifversion ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.product.product_location %}{% endif %} +## Viewing license usage on {% ifversion ghec %}{% data variables.product.prodname_dotcom_the_website %}{% elsif ghes %}{% data variables.location.product_location %}{% endif %} You can view the license usage for your enterprise and download a file with license details. If you're not seeing expected license counts in this report, it's possible that the subscriber’s assigned {% data variables.product.prodname_vs %} subscription email address and {% data variables.product.prodname_dotcom_the_website %} email address aren't exactly the same. For further information, see "[Troubleshooting license usage for GitHub Enterprise](/billing/managing-your-license-for-github-enterprise/troubleshooting-license-usage-for-github-enterprise)." diff --git a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md index 4dca5936e8..e7a4e2b032 100644 --- a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md +++ b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md @@ -351,7 +351,7 @@ If your workflow uses packs that are published on a {% data variables.product.pr {% endraw %} ``` -The package patterns in the registries list are examined in order, so you should generally place the most specific package patterns first. The values for `token` must be a personal access token generated by the GitHub instance you are downloading from with the `read:packages` permission. +The package patterns in the registries list are examined in order, so you should generally place the most specific package patterns first. The values for `token` must be a {% data variables.product.pat_v1 %} generated by the GitHub instance you are downloading from with the `read:packages` permission. Notice the `|` after the `registries` property name. This is important since {% data variables.product.prodname_actions %} inputs can only accept strings. Using the `|` converts the subsequent text to a string, which is parsed later by the {% data reusables.actions.action-codeql-action-init %} action. diff --git a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/viewing-code-scanning-logs.md b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/viewing-code-scanning-logs.md index f2b4b61cb3..2066a0a5cc 100644 --- a/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/viewing-code-scanning-logs.md +++ b/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/viewing-code-scanning-logs.md @@ -1,6 +1,6 @@ --- title: Viewing code scanning logs -intro: 'You can view the output generated during {% data variables.product.prodname_code_scanning %} analysis in {% data variables.product.product_location %}.' +intro: 'You can view the output generated during {% data variables.product.prodname_code_scanning %} analysis in {% data variables.location.product_location %}.' product: '{% data reusables.gated-features.code-scanning %}' permissions: 'If you have write permissions to a repository, you can view the {% data variables.product.prodname_code_scanning %} logs for that repository.' miniTocMaxHeadingLevel: 4 diff --git a/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md b/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md index 19be329625..12b421a65d 100644 --- a/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md +++ b/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md @@ -130,7 +130,7 @@ Any valid SARIF 2.1.0 output file can be uploaded, however, {% data variables.pr |----|----| | `tool.driver` | **Required.** A `toolComponent` object that describes the analysis tool. For more information, see the [`toolComponent` object](#toolcomponent-object). | | `tool.extensions[]` | **Optional.** An array of `toolComponent` objects that represent any plugins or extensions used by the tool during analysis. For more information, see the [`toolComponent` object](#toolcomponent-object). | -| `invocation.workingDirectory.uri` | **Optional.** This field is used only when `checkout_uri` (SARIF upload API only) or `checkout_path` (% data variables.product.prodname_actions %} only) are not provided. The value is used to convert absolute URIs used in [`physicalLocation` objects](#physicallocation-object) to relative URIs. For more information, see "[Specifying the root for source files](#specifying-the-root-for-source-files)."| +| `invocation.workingDirectory.uri` | **Optional.** This field is used only when `checkout_uri` (SARIF upload API only) or `checkout_path` ({% data variables.product.prodname_actions %} only) are not provided. The value is used to convert absolute URIs used in [`physicalLocation` objects](#physicallocation-object) to relative URIs. For more information, see "[Specifying the root for source files](#specifying-the-root-for-source-files)."| | `results[]` | **Required.** The results of the analysis tool. {% data variables.product.prodname_code_scanning_capc %} displays the results on {% data variables.product.prodname_dotcom %}. For more information, see the [`result` object](#result-object). ### `toolComponent` object diff --git a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/about-codeql-code-scanning-in-your-ci-system.md b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/about-codeql-code-scanning-in-your-ci-system.md index 2f4203d676..370ce281d8 100644 --- a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/about-codeql-code-scanning-in-your-ci-system.md +++ b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/about-codeql-code-scanning-in-your-ci-system.md @@ -1,7 +1,7 @@ --- title: About CodeQL code scanning in your CI system shortTitle: Code scanning in your CI -intro: 'You can analyze your code with {% data variables.product.prodname_codeql %} in a third-party continuous integration system and upload the results to {% data variables.product.product_location %}. The resulting {% data variables.product.prodname_code_scanning %} alerts are shown alongside any alerts generated within {% data variables.product.product_name %}.' +intro: 'You can analyze your code with {% data variables.product.prodname_codeql %} in a third-party continuous integration system and upload the results to {% data variables.location.product_location %}. The resulting {% data variables.product.prodname_code_scanning %} alerts are shown alongside any alerts generated within {% data variables.product.product_name %}.' product: '{% data reusables.gated-features.code-scanning %}' versions: fpt: '*' diff --git a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system.md b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system.md index 36eea83bc0..1a0e74ad50 100644 --- a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system.md +++ b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-cli-in-your-ci-system.md @@ -187,7 +187,7 @@ $ codeql database analyze /codeql-dbs/example-repo \ {% data reusables.code-scanning.upload-sarif-alert-limit %} -Before you can upload results to {% data variables.product.product_name %}, you must determine the best way to pass the {% data variables.product.prodname_github_app %} or personal access token you created earlier to the {% data variables.product.prodname_codeql_cli %} (see [Installing {% data variables.product.prodname_codeql_cli %} in your CI system](/code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system#generating-a-token-for-authentication-with-github)). We recommend that you review your CI system's guidance on the secure use of a secret store. The {% data variables.product.prodname_codeql_cli %} supports: +Before you can upload results to {% data variables.product.product_name %}, you must determine the best way to pass the {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} you created earlier to the {% data variables.product.prodname_codeql_cli %} (see [Installing {% data variables.product.prodname_codeql_cli %} in your CI system](/code-security/secure-coding/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system#generating-a-token-for-authentication-with-github)). We recommend that you review your CI system's guidance on the secure use of a secret store. The {% data variables.product.prodname_codeql_cli %} supports: - Passing the token to the CLI via standard input using the `--github-auth-stdin` option (recommended). - Saving the secret in the environment variable `GITHUB_TOKEN` and running the CLI without including the `--github-auth-stdin` option. @@ -207,7 +207,7 @@ When you have decided on the most secure and reliable method for your CI server, | `--commit` | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the full SHA of the commit you analyzed. | `--sarif` | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the SARIF file to load.{% ifversion ghes or ghae %} | `--github-url` | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the URL for {% data variables.product.product_name %}.{% endif %} -| `--github-auth-stdin` | | Optional. Use to pass the CLI the {% data variables.product.prodname_github_app %} or personal access token created for authentication with {% data variables.product.company_short %}'s REST API via standard input. This is not needed if the command has access to a `GITHUB_TOKEN` environment variable set with this token. +| `--github-auth-stdin` | | Optional. Use to pass the CLI the {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} created for authentication with {% data variables.product.company_short %}'s REST API via standard input. This is not needed if the command has access to a `GITHUB_TOKEN` environment variable set with this token. For more information, see [github upload-results](https://codeql.github.com/docs/codeql-cli/manual/github-upload-results/) in the documentation for the {% data variables.product.prodname_codeql_cli %}. @@ -231,12 +231,12 @@ There is no output from this command unless the upload was unsuccessful. The com The {% data variables.product.prodname_codeql_cli %} bundle includes queries that are maintained by {% data variables.product.company_short %} experts, security researchers, and community contributors. If you want to run queries developed by other organizations, {% data variables.product.prodname_codeql %} query packs provide an efficient and reliable way to download and run queries. For more information, see "[About code scanning with CodeQL](/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql#about-codeql-queries)." -Before you can use a {% data variables.product.prodname_codeql %} pack to analyze a database, you must download any packages you require from the {% data variables.product.company_short %} {% data variables.product.prodname_container_registry %}. This can be done either by using the `--download` flag as part of the `codeql database analyze` command. If a package is not publicly available, you will need to use a {% data variables.product.prodname_github_app %} or personal access token to authenticate. For more information and an example, see "[Uploading results to {% data variables.product.product_name %}](#uploading-results-to-github)" above. +Before you can use a {% data variables.product.prodname_codeql %} pack to analyze a database, you must download any packages you require from the {% data variables.product.company_short %} {% data variables.product.prodname_container_registry %}. This can be done either by using the `--download` flag as part of the `codeql database analyze` command. If a package is not publicly available, you will need to use a {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} to authenticate. For more information and an example, see "[Uploading results to {% data variables.product.product_name %}](#uploading-results-to-github)" above. | Option | Required | Usage | |--------|:--------:|-----| | `` | {% octicon "check-circle-fill" aria-label="Required" %} | Specify the scope and name of one or more CodeQL query packs to download using a comma-separated list. Optionally, include the version to download and unzip. By default the latest version of this pack is downloaded. Optionally, include a path to a query, directory, or query suite to run. If no path is included, then run the default queries of this pack. | -| `--github-auth-stdin` | | Optional. Pass the {% data variables.product.prodname_github_app %} or personal access token created for authentication with {% data variables.product.company_short %}'s REST API to the CLI via standard input. This is not needed if the command has access to a `GITHUB_TOKEN` environment variable set with this token. +| `--github-auth-stdin` | | Optional. Pass the {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} created for authentication with {% data variables.product.company_short %}'s REST API to the CLI via standard input. This is not needed if the command has access to a `GITHUB_TOKEN` environment variable set with this token. ### Basic example diff --git a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-runner-in-your-ci-system.md b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-runner-in-your-ci-system.md index ea87101e72..e9d72e176b 100644 --- a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-runner-in-your-ci-system.md +++ b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/configuring-codeql-runner-in-your-ci-system.md @@ -147,7 +147,7 @@ Initializes the {% data variables.product.prodname_codeql_runner %} and creates | ---- |:--------:| ----------- | | `--repository` | ✓ | Name of the repository to initialize. | | `--github-url` | ✓ | URL of the {% data variables.product.prodname_dotcom %} instance where your repository is hosted. | -| `--github-auth-stdin` | ✓ | Read the {% data variables.product.prodname_github_apps %} token or personal access token from standard input. | +| `--github-auth-stdin` | ✓ | Read the {% data variables.product.prodname_github_apps %} token or {% data variables.product.pat_generic %} from standard input. | | `--languages` | | Comma-separated list of languages to analyze. By default, the {% data variables.product.prodname_codeql_runner %} detects and analyzes all supported languages in the repository. | | `--queries` | | Comma-separated list of additional queries to run, in addition to the default suite of security queries. This overrides the `queries` setting in the custom configuration file. | | `--config-file` | | Path to custom configuration file. | @@ -181,7 +181,7 @@ Analyzes the code in the {% data variables.product.prodname_codeql %} databases | `--commit` | ✓ | SHA of the commit to analyze. In Git and in Azure DevOps, this corresponds to the value of `git rev-parse HEAD`. In Jenkins, this corresponds to `$GIT_COMMIT`. | | `--ref` | ✓ | Name of the reference to analyze, for example `refs/heads/main` or `refs/pull/42/merge`. In Git or in Jenkins, this corresponds to the value of `git symbolic-ref HEAD`. In Azure DevOps, this corresponds to `$(Build.SourceBranch)`. | | `--github-url` | ✓ | URL of the {% data variables.product.prodname_dotcom %} instance where your repository is hosted. | -| `--github-auth-stdin` | ✓ | Read the {% data variables.product.prodname_github_apps %} token or personal access token from standard input. | +| `--github-auth-stdin` | ✓ | Read the {% data variables.product.prodname_github_apps %} token or {% data variables.product.pat_generic %} from standard input. | | `--checkout-path` | | The path to the checkout of your repository. The default is the current working directory. | | `--no-upload` | | None. Stops the {% data variables.product.prodname_codeql_runner %} from uploading the results to {% data variables.product.product_name %}. | | `--output-dir` | | Directory where the output SARIF files are stored. The default is in the directory of temporary files. | @@ -210,7 +210,7 @@ Uploads SARIF files to {% data variables.product.product_name %}. | `--commit` | ✓ | SHA of the commit that was analyzed. In Git and in Azure DevOps, this corresponds to the value of `git rev-parse HEAD`. In Jenkins, this corresponds to `$GIT_COMMIT`. | | `--ref` | ✓ | Name of the reference that was analyzed, for example `refs/heads/main` or `refs/pull/42/merge`. In Git or in Jenkins, this corresponds to the value of `git symbolic-ref HEAD`. In Azure DevOps, this corresponds to `$(Build.SourceBranch)`. | | `--github-url` | ✓ | URL of the {% data variables.product.prodname_dotcom %} instance where your repository is hosted. | -| `--github-auth-stdin` | ✓ | Read the {% data variables.product.prodname_github_apps %} token or personal access token from standard input. | +| `--github-auth-stdin` | ✓ | Read the {% data variables.product.prodname_github_apps %} token or {% data variables.product.pat_generic %} from standard input. | | `--checkout-path` | | The path to the checkout of your repository. The default is the current working directory. | | `--debug` | | None. Prints more verbose output. | | `-h`, `--help` | | None. Displays help for the command. | diff --git a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md index 28ef5c6e85..8ad9bee420 100644 --- a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md +++ b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system.md @@ -112,7 +112,7 @@ You should check that the output contains the expected languages and also that t ## Generating a token for authentication with {% data variables.product.product_name %} -Each CI server needs a {% data variables.product.prodname_github_app %} or personal access token for the {% data variables.product.prodname_codeql_cli %} to use to upload results to {% data variables.product.product_name %}. You must use an access token or a {% data variables.product.prodname_github_app %} with the `security_events` write permission. If CI servers already use a token with this scope to checkout repositories from {% data variables.product.product_name %}, you could potentially allow the {% data variables.product.prodname_codeql_cli %} to use the same token. Otherwise, you should create a new token with the `security_events` write permission and add this to the CI system's secret store. For information, see "[Building {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps)" and "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +Each CI server needs a {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} for the {% data variables.product.prodname_codeql_cli %} to use to upload results to {% data variables.product.product_name %}. You must use an access token or a {% data variables.product.prodname_github_app %} with the `security_events` write permission. If CI servers already use a token with this scope to checkout repositories from {% data variables.product.product_name %}, you could potentially allow the {% data variables.product.prodname_codeql_cli %} to use the same token. Otherwise, you should create a new token with the `security_events` write permission and add this to the CI system's secret store. For information, see "[Building {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps)" and "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." ## Next steps diff --git a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system.md b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system.md index 499c760985..a2056c24bf 100644 --- a/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system.md +++ b/content/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/running-codeql-runner-in-your-ci-system.md @@ -88,7 +88,7 @@ chmod +x codeql-runner-linux In addition to this, each CI server also needs: -- A {% data variables.product.prodname_github_app %} or personal access token for the {% data variables.product.prodname_codeql_runner %} to use. You must use an access token with the `repo` scope, or a {% data variables.product.prodname_github_app %} with the `security_events` write permission, and `metadata` and `contents` read permissions. For information, see "[Building {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps)" and "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +- A {% data variables.product.prodname_github_app %} or {% data variables.product.pat_generic %} for the {% data variables.product.prodname_codeql_runner %} to use. You must use an access token with the `repo` scope, or a {% data variables.product.prodname_github_app %} with the `security_events` write permission, and `metadata` and `contents` read permissions. For information, see "[Building {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps)" and "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." - Access to the {% data variables.product.prodname_codeql %} bundle associated with this release of the {% data variables.product.prodname_codeql_runner %}. This package contains queries and libraries needed for {% data variables.product.prodname_codeql %} analysis, plus the {% data variables.product.prodname_codeql %} CLI, which is used internally by the runner. For information, see "[{% data variables.product.prodname_codeql %} CLI](https://codeql.github.com/docs/codeql-cli/)." The options for providing access to the {% data variables.product.prodname_codeql %} bundle are: @@ -103,7 +103,7 @@ You should call the {% data variables.product.prodname_codeql_runner %} from the 1. `init` required to initialize the runner and create a {% data variables.product.prodname_codeql %} database for each language to be analyzed. These databases are populated and analyzed by subsequent commands. 1. `analyze` required to populate the {% data variables.product.prodname_codeql %} databases, analyze them, and upload results to {% data variables.product.product_name %}. -For both commands, you must specify the URL of {% data variables.product.product_name %}, the repository *OWNER/NAME*, and the {% data variables.product.prodname_github_apps %} or personal access token to use for authentication. You also need to specify the location of the CodeQL bundle, unless the CI server has access to download it directly from the `github/codeql-action` repository. +For both commands, you must specify the URL of {% data variables.product.product_name %}, the repository *OWNER/NAME*, and the {% data variables.product.prodname_github_apps %} or {% data variables.product.pat_generic %} to use for authentication. You also need to specify the location of the CodeQL bundle, unless the CI server has access to download it directly from the `github/codeql-action` repository. You can configure where the {% data variables.product.prodname_codeql_runner %} stores the CodeQL bundle for future analysis on a server using the `--tools-dir` flag and where it stores temporary files during analysis using `--temp-dir`. diff --git a/content/code-security/dependabot/dependabot-alerts/about-dependabot-alerts.md b/content/code-security/dependabot/dependabot-alerts/about-dependabot-alerts.md index 5bbb673719..fa3ad2ded3 100644 --- a/content/code-security/dependabot/dependabot-alerts/about-dependabot-alerts.md +++ b/content/code-security/dependabot/dependabot-alerts/about-dependabot-alerts.md @@ -43,7 +43,7 @@ If your code depends on a package with a security vulnerability, this can cause {% ifversion fpt or ghec %} - A new advisory is added to the {% data variables.product.prodname_advisory_database %}. For more information, see "[Browsing security advisories in the {% data variables.product.prodname_advisory_database %}](/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/browsing-security-vulnerabilities-in-the-github-advisory-database)."{% else %} -- New advisory data is synchronized to {% data variables.product.product_location %} each hour from {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.security-advisory.link-browsing-advisory-db %}{% endif %} +- New advisory data is synchronized to {% data variables.location.product_location %} each hour from {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.security-advisory.link-browsing-advisory-db %}{% endif %} {% note %} **Note:** Only advisories that have been reviewed by {% data variables.product.company_short %} will trigger {% data variables.product.prodname_dependabot_alerts %}. diff --git a/content/code-security/dependabot/dependabot-alerts/browsing-security-advisories-in-the-github-advisory-database.md b/content/code-security/dependabot/dependabot-alerts/browsing-security-advisories-in-the-github-advisory-database.md index 00c92688af..663dc63e1b 100644 --- a/content/code-security/dependabot/dependabot-alerts/browsing-security-advisories-in-the-github-advisory-database.md +++ b/content/code-security/dependabot/dependabot-alerts/browsing-security-advisories-in-the-github-advisory-database.md @@ -149,9 +149,9 @@ For any {% data variables.product.company_short %}-reviewed advisory in the {% d 5. For more details about the advisory, and for advice on how to fix the vulnerable repository, click the repository name. {% ifversion security-advisories-ghes-ghae %} -## Accessing the local advisory database on {% data variables.product.product_location %} +## Accessing the local advisory database on {% data variables.location.product_location %} -If your site administrator has enabled {% data variables.product.prodname_github_connect %} for {% data variables.product.product_location %}, you can also browse reviewed advisories locally. For more information, see "[About {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/about-github-connect)". +If your site administrator has enabled {% data variables.product.prodname_github_connect %} for {% data variables.location.product_location %}, you can also browse reviewed advisories locally. For more information, see "[About {% data variables.product.prodname_github_connect %}](/admin/configuration/configuring-github-connect/about-github-connect)". You can use your local advisory database to check whether a specific security vulnerability is included, and therefore whether you'd get alerts for vulnerable dependencies. You can also view any vulnerable repositories. @@ -165,9 +165,9 @@ You can use your local advisory database to check whether a specific security vu {% endnote %} 3. Click an advisory to view details.{% ifversion GH-advisory-db-supports-malware %} By default, you will see {% data variables.product.company_short %}-reviewed advisories for security vulnerabilities. To show malware advisories, use `type:malware` in the search bar.{% endif %} -You can also suggest improvements to any advisory directly from your local advisory database. For more information, see "[Editing advisories from {% data variables.product.product_location %}](/code-security/dependabot/dependabot-alerts/editing-security-advisories-in-the-github-advisory-database#editing-advisories-from-your-github-enterprise-server-instance)". +You can also suggest improvements to any advisory directly from your local advisory database. For more information, see "[Editing advisories from {% data variables.location.product_location %}](/code-security/dependabot/dependabot-alerts/editing-security-advisories-in-the-github-advisory-database#editing-advisories-from-your-github-enterprise-server-instance)". -### Viewing vulnerable repositories for {% data variables.product.product_location %} +### Viewing vulnerable repositories for {% data variables.location.product_location %} {% data reusables.repositories.enable-security-alerts %} diff --git a/content/code-security/dependabot/dependabot-alerts/editing-security-advisories-in-the-github-advisory-database.md b/content/code-security/dependabot/dependabot-alerts/editing-security-advisories-in-the-github-advisory-database.md index 2a8eaeb186..688f003461 100644 --- a/content/code-security/dependabot/dependabot-alerts/editing-security-advisories-in-the-github-advisory-database.md +++ b/content/code-security/dependabot/dependabot-alerts/editing-security-advisories-in-the-github-advisory-database.md @@ -43,9 +43,9 @@ Only repository owners and administrators can edit repository-level security adv You can also open a pull request directly on an advisory file in the [github/advisory-database](https://github.com/github/advisory-database) repository. For more information, see the [contribution guidelines](https://github.com/github/advisory-database/blob/main/CONTRIBUTING.md). {% ifversion security-advisories-ghes-ghae %} -## Editing advisories from {% data variables.product.product_location %} +## Editing advisories from {% data variables.location.product_location %} -If you have {% data variables.product.prodname_github_connect %} enabled for {% data variables.product.product_location %}, you will be able to see advisories by adding `/advisories` to the instance url. +If you have {% data variables.product.prodname_github_connect %} enabled for {% data variables.location.product_location %}, you will be able to see advisories by adding `/advisories` to the instance url. 1. Navigate to `https://HOSTNAME/advisories`. 2. Select the security advisory you would like to contribute to. diff --git a/content/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions.md b/content/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions.md index b6cf7bad95..4d727384fd 100644 --- a/content/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions.md +++ b/content/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions.md @@ -115,7 +115,7 @@ jobs: {% note %} -**Note:** Your site administrator can override these restrictions for {% data variables.product.product_location %}. For more information, see "[Troubleshooting {% data variables.product.prodname_actions %} for your enterprise](/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise#troubleshooting-failures-when-dependabot-triggers-existing-workflows)." +**Note:** Your site administrator can override these restrictions for {% data variables.location.product_location %}. For more information, see "[Troubleshooting {% data variables.product.prodname_actions %} for your enterprise](/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise#troubleshooting-failures-when-dependabot-triggers-existing-workflows)." If the restrictions are removed, when a workflow is triggered by {% data variables.product.prodname_dependabot %} it will have access to {% data variables.product.prodname_actions %} secrets and can use the `permissions` term to increase the default scope of the `GITHUB_TOKEN` from read-only access. You can ignore the specific steps in the "Handling `pull_request` events" and "Handling `push` events" sections, as it no longer applies. @@ -245,7 +245,7 @@ Here are several common scenarios that can be automated using {% data variables. {% note %} -**Note:** If your site administrator has overridden restrictions for {% data variables.product.prodname_dependabot %} on {% data variables.product.product_location %}, you can use `pull_request` instead of `pull_request_target` in the following workflows. +**Note:** If your site administrator has overridden restrictions for {% data variables.product.prodname_dependabot %} on {% data variables.location.product_location %}, you can use `pull_request` instead of `pull_request_target` in the following workflows. {% endnote %} diff --git a/content/code-security/dependabot/working-with-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md b/content/code-security/dependabot/working-with-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md index 0344ac5067..7974d9e6ee 100644 --- a/content/code-security/dependabot/working-with-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md +++ b/content/code-security/dependabot/working-with-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md @@ -36,7 +36,7 @@ topics: * {% data variables.product.prodname_dependabot %} scans any push, to the default branch, that contains a manifest file. When a new advisory is added, it scans all existing repositories and generates an alert for each repository that is affected. {% data variables.product.prodname_dependabot_alerts %} are aggregated at the repository level, rather than creating one alert per advisory. For more information, see "[About {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies)." * {% ifversion fpt or ghec or ghes > 3.2 %}{% data variables.product.prodname_dependabot_security_updates %} are triggered when you receive an alert about a vulnerable dependency in your repository. Where possible, {% data variables.product.prodname_dependabot %} creates a pull request in your repository to upgrade the vulnerable dependency to the minimum possible secure version needed to avoid the vulnerability. For more information, see "[About {% data variables.product.prodname_dependabot_security_updates %}](/github/managing-security-vulnerabilities/about-dependabot-security-updates)" and "[Troubleshooting {% data variables.product.prodname_dependabot %} errors](/github/managing-security-vulnerabilities/troubleshooting-dependabot-errors)." - {% endif %}{% data variables.product.prodname_dependabot %} doesn't scan repositories on a schedule, but rather when something changes. For example, a scan is triggered when a new dependency is added ({% data variables.product.prodname_dotcom %} checks for this on every push), or when a new advisory is added to the database{% ifversion ghes or ghae %} and synchronized to {% data variables.product.product_location %}{% endif %}. For more information, see "[About {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies#detection-of-insecure-dependencies)." + {% endif %}{% data variables.product.prodname_dependabot %} doesn't scan repositories on a schedule, but rather when something changes. For example, a scan is triggered when a new dependency is added ({% data variables.product.prodname_dotcom %} checks for this on every push), or when a new advisory is added to the database{% ifversion ghes or ghae %} and synchronized to {% data variables.location.product_location %}{% endif %}. For more information, see "[About {% data variables.product.prodname_dependabot_alerts %}](/code-security/supply-chain-security/about-alerts-for-vulnerable-dependencies#detection-of-insecure-dependencies)." ## Do {% data variables.product.prodname_dependabot_alerts %} only relate to insecure dependencies in manifests and lockfiles? diff --git a/content/code-security/getting-started/securing-your-organization.md b/content/code-security/getting-started/securing-your-organization.md index b86ed3fe6a..e00a81e612 100644 --- a/content/code-security/getting-started/securing-your-organization.md +++ b/content/code-security/getting-started/securing-your-organization.md @@ -54,7 +54,7 @@ For more information, see "[About {% data variables.product.prodname_dependabot_ Dependency review is an {% data variables.product.prodname_advanced_security %} feature that lets you visualize dependency changes in pull requests before they are merged into your repositories. For more information, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review)." {% ifversion fpt or ghec %}Dependency review is already enabled for all public repositories. {% ifversion fpt %}Organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %} can additionally enable dependency review for private and internal repositories. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/code-security/getting-started/securing-your-organization#managing-dependency-review). {% endif %}{% endif %}{% ifversion ghec %}For private and internal repositories that are owned by an organization, you can enable dependency review by enabling the dependency graph and enabling {% data variables.product.prodname_advanced_security %} (see below). -{% elsif ghes or ghae %}Dependency review is available when dependency graph is enabled for {% data variables.product.product_location %} and you enable {% data variables.product.prodname_advanced_security %} for the organization (see below).{% endif %} +{% elsif ghes or ghae %}Dependency review is available when dependency graph is enabled for {% data variables.location.product_location %} and you enable {% data variables.product.prodname_advanced_security %} for the organization (see below).{% endif %} {% ifversion fpt or ghec or ghes > 3.2 %} ## Managing {% data variables.product.prodname_dependabot_security_updates %} diff --git a/content/code-security/secret-scanning/about-secret-scanning.md b/content/code-security/secret-scanning/about-secret-scanning.md index 519e8b2ba2..b9dce9457c 100644 --- a/content/code-security/secret-scanning/about-secret-scanning.md +++ b/content/code-security/secret-scanning/about-secret-scanning.md @@ -74,6 +74,10 @@ If you're a repository administrator you can enable {% data variables.product.pr {% ifversion ghes or ghae or ghec %}You can also define custom {% data variables.product.prodname_secret_scanning %} patterns for a repository, organization, or enterprise. For more information, see "[Defining custom patterns for {% data variables.product.prodname_secret_scanning %}](/code-security/secret-security/defining-custom-patterns-for-secret-scanning)." {% endif %} + +{% ifversion secret-scanning-ghas-store-tokens %} +{% data variables.product.company_short %} stores detected secrets using symmetric encryption, both in transit and at rest.{% endif %}{% ifversion ghes > 3.7 %} To rotate the encryption keys used for storing the detected secrets, you can contact {% data variables.contact.contact_ent_support %}.{% endif %} + ### About {% data variables.product.prodname_secret_scanning %} alerts When you enable {% data variables.product.prodname_secret_scanning %} for a repository or push commits to a repository with {% data variables.product.prodname_secret_scanning %} enabled, {% data variables.product.prodname_dotcom %} scans the contents of those commits for secrets that match patterns defined by service providers{% ifversion ghes or ghae or ghec %} and any custom patterns defined in your enterprise, organization, or repository{% endif %}. {% ifversion secret-scanning-backfills %}{% data variables.product.prodname_dotcom %} also periodically runs a scan of all historical content in repositories with {% data variables.product.prodname_secret_scanning %} enabled.{% endif%} diff --git a/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md b/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md index 188283b50a..72be0fcd50 100644 --- a/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md +++ b/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md @@ -68,7 +68,7 @@ shortTitle: Manage secret alerts Once a secret has been committed to a repository, you should consider the secret compromised. {% data variables.product.prodname_dotcom %} recommends the following actions for compromised secrets: -- For a compromised {% data variables.product.prodname_dotcom %} personal access token, delete the compromised token, create a new token, and update any services that use the old token. For more information, see "[Creating a personal access token for the command line](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)." +- For a compromised {% data variables.product.prodname_dotcom %} {% data variables.product.pat_generic %}, delete the compromised token, create a new token, and update any services that use the old token. For more information, see "[Creating a {% data variables.product.pat_generic %} for the command line](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)." - For all other secrets, first verify that the secret committed to {% data variables.product.product_name %} is valid. If so, create a new secret, update any services that use the old secret, and then delete the old secret. {% ifversion ghec %} diff --git a/content/code-security/security-overview/about-the-security-overview.md b/content/code-security/security-overview/about-the-security-overview.md index 1d531390f5..69e55a8adc 100644 --- a/content/code-security/security-overview/about-the-security-overview.md +++ b/content/code-security/security-overview/about-the-security-overview.md @@ -43,7 +43,7 @@ In the security overview, you can view, sort, and filter alerts to understand th {% ifversion security-overview-views %} -In the security overview, there are dedicated views for each type of security alert, such as Dependabot, code scanning, and secret scanning alerts. You can use these views to limit your analysis to a specific set of alerts, and narrow the results further with a range of filters specific to each view. For example, in the secret scanning alert view, you can use the `Secret type` filter to view only secret scanning alerts for a specific secret, like a GitHub Personal Access Token. At the repository level, you can use the security overview to assess the specific repository's current security status, and configure any additional security features not yet in use on the repository. +In the security overview, there are dedicated views for each type of security alert, such as Dependabot, code scanning, and secret scanning alerts. You can use these views to limit your analysis to a specific set of alerts, and narrow the results further with a range of filters specific to each view. For example, in the secret scanning alert view, you can use the `Secret type` filter to view only secret scanning alerts for a specific secret, like a GitHub {% data variables.product.pat_generic %}. At the repository level, you can use the security overview to assess the specific repository's current security status, and configure any additional security features not yet in use on the repository. {% endif %} diff --git a/content/code-security/supply-chain-security/end-to-end-supply-chain/securing-accounts.md b/content/code-security/supply-chain-security/end-to-end-supply-chain/securing-accounts.md index 78a0c5a03c..d16b736502 100644 --- a/content/code-security/supply-chain-security/end-to-end-supply-chain/securing-accounts.md +++ b/content/code-security/supply-chain-security/end-to-end-supply-chain/securing-accounts.md @@ -22,7 +22,7 @@ This guide describes the highest impact changes you can make to increase account ## What's the risk? -Account security is fundamental to the security of your supply chain. If an attacker can take over your account on {% data variables.product.product_name %}, they can then make malicious changes to your code or build process. So your first goal should be to make it difficult for someone to take over your account and the accounts of other {% ifversion ghes %}users{% else %}members{% endif %} of {% ifversion fpt %}your organization{% elsif ghec or ghae %}your organization or enterprise{% elsif ghes %}{% data variables.product.product_location %}{% endif %}. +Account security is fundamental to the security of your supply chain. If an attacker can take over your account on {% data variables.product.product_name %}, they can then make malicious changes to your code or build process. So your first goal should be to make it difficult for someone to take over your account and the accounts of other {% ifversion ghes %}users{% else %}members{% endif %} of {% ifversion fpt %}your organization{% elsif ghec or ghae %}your organization or enterprise{% elsif ghes %}{% data variables.location.product_location %}{% endif %}. {% ifversion ghec or ghes %} ## Centralize authentication @@ -31,7 +31,7 @@ Account security is fundamental to the security of your supply chain. If an atta {% ifversion ghec %} If you're an enterprise or organization owner, you can configure centralized authentication with SAML. While you can add or remove members manually, it's simpler and more secure to set up single sign-on (SSO) and SCIM between {% data variables.product.product_name %} and your SAML identity provider (IdP). This also simplifies the authentication process for all members of your enterprise. -You can configure SAML authentication for an enterprise or organization account. With SAML, you can grant access to the personal accounts of members of your enterprise or organization on {% data variables.product.product_location %} through your IdP, or you can create and control the accounts that belong to your enterprise by using {% data variables.product.prodname_emus %}. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)." +You can configure SAML authentication for an enterprise or organization account. With SAML, you can grant access to the personal accounts of members of your enterprise or organization on {% data variables.location.product_location %} through your IdP, or you can create and control the accounts that belong to your enterprise by using {% data variables.product.prodname_emus %}. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)." After you configure SAML authentication, when members request access to your resources, they'll be directed to your SSO flow to ensure they are still recognized by your IdP. If they are unrecognized, their request is declined. @@ -39,7 +39,7 @@ Some IdPs support a protocol called SCIM, which can automatically provision or d {% endif %} {% ifversion ghes %} -If you're the site administrator for {% data variables.product.product_location %}, you can simplify the login experience for users by choosing an authentication method that connects with your existing identity provider (IdP), like CAS, SAML, or LDAP. This means that they no longer need to remember an extra password for {% data variables.product.prodname_dotcom %}. +If you're the site administrator for {% data variables.location.product_location %}, you can simplify the login experience for users by choosing an authentication method that connects with your existing identity provider (IdP), like CAS, SAML, or LDAP. This means that they no longer need to remember an extra password for {% data variables.product.prodname_dotcom %}. Some authentication methods also support communicating additional information to {% data variables.product.product_name %}, for example, what groups the user is a member of, or synchronizing cryptographic keys for the user. This is a great way to simplify your administration as your organization grows. @@ -48,7 +48,7 @@ For more information about the authentication methods available for {% data vari ## Configure two-factor authentication -The best way to improve the security of {% ifversion fpt %}your personal account{% elsif ghes %}your personal account or {% data variables.product.product_location %}{% elsif ghec %}your accounts{% elsif ghae %}your enterprise on {% data variables.product.product_name %}{% endif %} is to configure two-factor authentication (2FA){% ifversion ghae %} on your SAML identity provider (IdP){% endif %}. Passwords by themselves can be compromised by being guessable, by being reused on another site that's been compromised, or by social engineering, like phishing. 2FA makes it much more difficult for your accounts to be compromised, even if an attacker has your password. +The best way to improve the security of {% ifversion fpt %}your personal account{% elsif ghes %}your personal account or {% data variables.location.product_location %}{% elsif ghec %}your accounts{% elsif ghae %}your enterprise on {% data variables.product.product_name %}{% endif %} is to configure two-factor authentication (2FA){% ifversion ghae %} on your SAML identity provider (IdP){% endif %}. Passwords by themselves can be compromised by being guessable, by being reused on another site that's been compromised, or by social engineering, like phishing. 2FA makes it much more difficult for your accounts to be compromised, even if an attacker has your password. {% ifversion not ghae %} @@ -57,7 +57,7 @@ If you're an enterprise owner, you may be able to configure a policy to require {% endif %} {% ifversion ghes %} -If you're the site administrator for {% data variables.product.product_location %}, you may be able to configure 2FA for all users of your instance. The availability of 2FA on {% data variables.product.product_name %} depends on the authentication method that you use. For more information, see "[Centralize user authentication](#centralize-user-authentication)." +If you're the site administrator for {% data variables.location.product_location %}, you may be able to configure 2FA for all users of your instance. The availability of 2FA on {% data variables.product.product_name %} depends on the authentication method that you use. For more information, see "[Centralize user authentication](#centralize-user-authentication)." {% endif %} If you're an organization owner, then you {% ifversion fpt %}can{% else %}may be able to{% endif %} require that all members of the organization enable 2FA. @@ -69,14 +69,14 @@ If you're an organization owner, then you {% ifversion fpt %}can{% else %}may be Enterprise owners may be able to require 2FA for all {% ifversion ghes %}users on{% elsif ghec %}members of{% endif %} the {% ifversion ghes %}instance{% elsif ghec %}enterprise{% endif %}. The availability of 2FA policies on {% data variables.product.product_name %} depends on how {% ifversion ghes %}users{% else %}members{% endif %} authenticate to access your {% ifversion ghes %}instance{% elsif ghec %}enterprise's resources{% endif %}. {% ifversion ghes %} -- If you sign into {% data variables.product.product_location %} through an external IdP using CAS or SAML SSO, you +- If you sign into {% data variables.location.product_location %} through an external IdP using CAS or SAML SSO, you {% elsif ghec %} If your enterprise uses {% data variables.product.prodname_emus %} or SAML authentication is enforced for your enterprise, you {%- endif %} cannot configure 2FA on {% data variables.product.product_name %}. Someone with administrative access to your IdP must configure 2FA for the IdP. {% ifversion ghes %} -- If you sign into {% data variables.product.product_location %} through an external LDAP directory, you can require 2FA for your enterprise on {% data variables.product.product_name %}. If you allow built-in authentication for users outside of your directory, individual users can enable 2FA, but you cannot require 2FA for your enterprise. +- If you sign into {% data variables.location.product_location %} through an external LDAP directory, you can require 2FA for your enterprise on {% data variables.product.product_name %}. If you allow built-in authentication for users outside of your directory, individual users can enable 2FA, but you cannot require 2FA for your enterprise. {% endif %} @@ -89,7 +89,7 @@ For more information, see {% ifversion ghec %}"[About identity and access manage {% ifversion ghec or ghes %} {% note %} -**Note**: Depending on the authentication method that {% ifversion ghec %}an enterprise owner{% elsif ghes %}a site administrator{% endif %} has configured for {% ifversion ghec %}your enterprise on {% endif %}{% data variables.product.product_location %}, you may not be able to enable 2FA for your personal account. +**Note**: Depending on the authentication method that {% ifversion ghec %}an enterprise owner{% elsif ghes %}a site administrator{% endif %} has configured for {% ifversion ghec %}your enterprise on {% endif %}{% data variables.location.product_location %}, you may not be able to enable 2FA for your personal account. {% endnote %} {% endif %} @@ -103,7 +103,7 @@ When you set up 2FA, you should always download the recovery codes and set up mo {% ifversion ghec or ghes %} {% note %} -**Note**: Depending on the authentication method that {% ifversion ghec %}an enterprise owner{% elsif ghes %}a site administrator{% endif %} has configured for {% ifversion ghec %}your enterprise on {% endif %}{% data variables.product.product_location %}, you may not be able to require 2FA for your organization. +**Note**: Depending on the authentication method that {% ifversion ghec %}an enterprise owner{% elsif ghes %}a site administrator{% endif %} has configured for {% ifversion ghec %}your enterprise on {% endif %}{% data variables.location.product_location %}, you may not be able to require 2FA for your organization. {% endnote %} {% endif %} diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md index c5c6fdf15f..33e8c19950 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md @@ -111,7 +111,7 @@ The term "{% data variables.product.prodname_dependabot %}" encompasses the foll - {% data variables.product.prodname_dependabot %} performs a scan to detect insecure dependencies and sends {% data variables.product.prodname_dependabot_alerts %} when: {% ifversion fpt or ghec %} - A new advisory is added to the {% data variables.product.prodname_advisory_database %}.{% else %} - - New advisory data is synchronized to {% data variables.product.product_location %} each hour from {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.security-advisory.link-browsing-advisory-db %}{% endif %} + - New advisory data is synchronized to {% data variables.location.product_location %} each hour from {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.security-advisory.link-browsing-advisory-db %}{% endif %} - The dependency graph for the repository changes. - {% data variables.product.prodname_dependabot_alerts %} are displayed {% ifversion fpt or ghec or ghes %} on the **Security** tab for the repository and{% endif %} in the repository's dependency graph. The alert includes {% ifversion fpt or ghec or ghes %}a link to the affected file in the project, and {% endif %}information about a fixed version. @@ -164,7 +164,7 @@ Any repository type: {% ifversion ghes or ghae %} - **Dependency graph** and **{% data variables.product.prodname_dependabot_alerts %}**—not enabled by default. Both features are configured at an enterprise level by the enterprise owner. For more information, see {% ifversion ghes %}"[Enabling the dependency graph for your enterprise](/admin/code-security/managing-supply-chain-security-for-your-enterprise/enabling-the-dependency-graph-for-your-enterprise)" and {% endif %}"[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)." -- **Dependency review**—available when dependency graph is enabled for {% data variables.product.product_location %} and {% data variables.product.prodname_advanced_security %} is enabled for the organization or repository. For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security)." +- **Dependency review**—available when dependency graph is enabled for {% data variables.location.product_location %} and {% data variables.product.prodname_advanced_security %} is enabled for the organization or repository. For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security)." {% endif %} {% ifversion ghes > 3.2 %} - **{% data variables.product.prodname_dependabot_security_updates %}**—not enabled by default. You can enable {% data variables.product.prodname_dependabot_security_updates %} for any repository that uses {% data variables.product.prodname_dependabot_alerts %} and the dependency graph. For information about enabling security updates, see "[Configuring {% data variables.product.prodname_dependabot_security_updates %}](/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates)." diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md index 5abdb8b0d4..06bb91f769 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md @@ -38,7 +38,7 @@ Dependency review is included in {% data variables.product.product_name %} for p {% elsif ghes or ghae %} -Dependency review is available when dependency graph is enabled for {% data variables.product.product_location %} and {% data variables.product.prodname_advanced_security %} is enabled for the organization or repository.{% ifversion ghes %} For more information, see "[Enabling {% data variables.product.prodname_GH_advanced_security %} for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/enabling-github-advanced-security-for-your-enterprise)."{% endif %} +Dependency review is available when dependency graph is enabled for {% data variables.location.product_location %} and {% data variables.product.prodname_advanced_security %} is enabled for the organization or repository.{% ifversion ghes %} For more information, see "[Enabling {% data variables.product.prodname_GH_advanced_security %} for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/enabling-github-advanced-security-for-your-enterprise)."{% endif %} ### Checking if the dependency graph is enabled diff --git a/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md b/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md index f8ef3037ef..40094b5db2 100644 --- a/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md +++ b/content/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry.md @@ -30,7 +30,7 @@ If you publish a container image to {% data variables.packages.prodname_ghcr_or_ By default, when you publish a container image to {% data variables.packages.prodname_ghcr_or_npm_registry %}, the image inherits the access setting of the repository from which the image was published. For example, if the repository is public, the image is also public. If the repository is private, the image is also private, but is accessible from the repository. -This behavior is controlled by the **Inherit access from repo** option. **Inherit access from repo** is selected by default when publishing via {% data variables.product.prodname_actions %}, but not when publishing directly to {% data variables.packages.prodname_ghcr_or_npm_registry %} using a Personal Access Token (PAT). +This behavior is controlled by the **Inherit access from repo** option. **Inherit access from repo** is selected by default when publishing via {% data variables.product.prodname_actions %}, but not when publishing directly to {% data variables.packages.prodname_ghcr_or_npm_registry %} using a % data variables.product.pat_generic %}. If the **Inherit access from repo** option was not selected when the image was published, you can manually add the repository to the published container image's access controls. For more information, see "[Configuring a package's access control and visibility](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#inheriting-access-for-a-container-image-from-a-repository)." @@ -46,13 +46,13 @@ If you want to allow a subset of an organization's repositories to access a cont ### Publishing a container image from a codespace -Seamless access from a codespace to {% data variables.packages.prodname_ghcr_or_npm_registry %} is limited to pulling container images. If you want to publish a container image from inside a codespace, you must use a personal access token (PAT) with the `write:packages` scope. +Seamless access from a codespace to {% data variables.packages.prodname_ghcr_or_npm_registry %} is limited to pulling container images. If you want to publish a container image from inside a codespace, you must use a {% data variables.product.pat_v1 %} with the `write:packages` scope. We recommend publishing images via {% data variables.product.prodname_actions %}. For more information, see "[Publishing Docker images](/actions/publishing-packages/publishing-docker-images)" and "[Publishing Node.js packages](/actions/publishing-packages/publishing-nodejs-packages)." ## Accessing images stored in other container registries -If you are accessing a container image from a registry that isn't {% data variables.packages.prodname_ghcr_or_npm_registry %}, {% data variables.product.prodname_github_codespaces %} checks for the presence of three secrets, which define the server name, username, and personal access token (PAT) for a container registry. If these secrets are found, {% data variables.product.prodname_github_codespaces %} will make the registry available inside your codespace. +If you are accessing a container image from a registry that isn't {% data variables.packages.prodname_ghcr_or_npm_registry %}, {% data variables.product.prodname_github_codespaces %} checks for the presence of three secrets, which define the server name, username, and {% data variables.product.pat_generic %} for a container registry. If these secrets are found, {% data variables.product.prodname_github_codespaces %} will make the registry available inside your codespace. - `<*>_CONTAINER_REGISTRY_SERVER` - `<*>_CONTAINER_REGISTRY_USER` @@ -71,7 +71,7 @@ For a private image registry in Azure, you could create the following secrets: ``` ACR_CONTAINER_REGISTRY_SERVER = mycompany.azurecr.io ACR_CONTAINER_REGISTRY_USER = acr-user-here -ACR_CONTAINER_REGISTRY_PASSWORD = +ACR_CONTAINER_REGISTRY_PASSWORD = ``` For information on common image registries, see "[Common image registry servers](#common-image-registry-servers)." Note that accessing AWS Elastic Container Registry (ECR) is different. diff --git a/content/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces.md b/content/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces.md index 1cc26083f0..253b3ea97e 100644 --- a/content/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces.md +++ b/content/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces.md @@ -24,7 +24,7 @@ shortTitle: Encrypted secrets You can add encrypted secrets to your personal account that you want to use in your codespaces. For example, you may want to store and access the following sensitive information as encrypted secrets. -- Personal access tokens to cloud services +- {% data variables.product.pat_generic %}s to cloud services - Service principals - Subscription identifiers - [Credentials for a private image registry](/codespaces/codespaces-reference/allowing-your-codespace-to-access-a-private-image-registry) diff --git a/content/codespaces/overview.md b/content/codespaces/overview.md index 1a6ee65780..b193cde66d 100644 --- a/content/codespaces/overview.md +++ b/content/codespaces/overview.md @@ -22,7 +22,7 @@ topics: A codespace is a development environment that's hosted in the cloud. You can customize your project for {% data variables.product.prodname_github_codespaces %} by committing [configuration files](/codespaces/customizing-your-codespace/configuring-codespaces-for-your-project) to your repository (often known as Configuration-as-Code), which creates a repeatable codespace configuration for all users of your project. -{% data variables.product.prodname_github_codespaces %} run on a variety of VM-based compute options hosted by {% data variables.product.product_location %}, which you can configure from 2 core machines up to 32 core machines. You can connect to your codespaces from the browser or locally using {% data variables.product.prodname_vscode %}. +{% data variables.product.prodname_github_codespaces %} run on a variety of VM-based compute options hosted by {% data variables.location.product_location %}, which you can configure from 2 core machines up to 32 core machines. You can connect to your codespaces from the browser or locally using {% data variables.product.prodname_vscode %}. ![A diagram showing how {% data variables.product.prodname_github_codespaces %} works](/assets/images/help/codespaces/codespaces-diagram.png) diff --git a/content/codespaces/prebuilding-your-codespaces/allowing-a-prebuild-to-access-other-repositories.md b/content/codespaces/prebuilding-your-codespaces/allowing-a-prebuild-to-access-other-repositories.md index ff49dcf7ed..f9f02988d3 100644 --- a/content/codespaces/prebuilding-your-codespaces/allowing-a-prebuild-to-access-other-repositories.md +++ b/content/codespaces/prebuilding-your-codespaces/allowing-a-prebuild-to-access-other-repositories.md @@ -29,33 +29,33 @@ When you create or edit a prebuild configuration for a `devcontainer.json` file ## Allowing a prebuild write access external resources -If your project requires write access to resources, or if the external resources reside in a repository with a different owner to the repository for which you are creating a prebuild configuration, you can use a personal access token (PAT) to grant this access. +If your project requires write access to resources, or if the external resources reside in a repository with a different owner to the repository for which you are creating a prebuild configuration, you can use a {% data variables.product.pat_generic %} to grant this access. -You will need to create a new personal account and then use this account to create a PAT with the appropriate scopes. +You will need to create a new personal account and then use this account to create a {% data variables.product.pat_v1 %} with the appropriate scopes. 1. Create a new personal account on {% data variables.product.prodname_dotcom %}. {% warning %} - **Warning**: Although you can generate the PAT using your existing personal account, we strongly recommend creating a new account with access only to the target repositories required for your scenario. This is because the access token's `repository` permission grants access to all of the repositories that the account has access to. For more information, see "[Signing up for a new GitHub account](/get-started/signing-up-for-github/signing-up-for-a-new-github-account)" and "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#considering-cross-repository-access)." + **Warning**: Although you can generate the {% data variables.product.pat_v1 %} using your existing personal account, we strongly recommend creating a new account with access only to the target repositories required for your scenario. This is because the access token's `repository` permission grants access to all of the repositories that the account has access to. For more information, see "[Signing up for a new GitHub account](/get-started/signing-up-for-github/signing-up-for-a-new-github-account)" and "[Security hardening for {% data variables.product.prodname_actions %}](/actions/security-guides/security-hardening-for-github-actions#considering-cross-repository-access)." {% endwarning %} 1. Give the new account read access to the required repositories. For more information, see "[Managing an individual's access to an organization repository](/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository)." -1. While signed into the new account, create a PAT with the `repo` scope. Optionally, if the prebuild will need to download packages from the {% data variables.product.company_short %} {% data variables.product.prodname_container_registry %}, also select the `read:packages` scope. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." +1. While signed into the new account, create a {% data variables.product.pat_v1 %} with the `repo` scope. Optionally, if the prebuild will need to download packages from the {% data variables.product.company_short %} {% data variables.product.prodname_container_registry %}, also select the `read:packages` scope. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." - !['repo' and 'packages' scopes selected for a PAT](/assets/images/help/codespaces/prebuilds-select-scopes.png) + !['repo' and 'packages' scopes selected for a {% data variables.product.pat_v1 %}](/assets/images/help/codespaces/prebuilds-select-scopes.png) If the prebuild will use a package from the {% data variables.product.company_short %} {% data variables.product.prodname_container_registry %}, you will need to either grant the new account access to the package or configure the package to inherit the access permissions of the repository you are prebuilding. For more information, see "[Configuring a package's access control and visibility](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)." -{% ifversion ghec %}1. Authorize the token for use with SAML single sign-on (SSO), so that it can access repositories that are owned by organizations with SSO enabled. For more information, see "[Authorizing a personal access token for use with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)." +{% ifversion ghec %}1. Authorize the token for use with SAML single sign-on (SSO), so that it can access repositories that are owned by organizations with SSO enabled. For more information, see "[Authorizing a {% data variables.product.pat_generic %} for use with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)." - ![The button to configure SSO for a PAT](/assets/images/help/codespaces/configure-SSO-for-PAT.png) + ![The button to configure SSO for a {% data variables.product.pat_v1 %}](/assets/images/help/codespaces/configure-SSO-for-PAT.png) {% endif %} 1. Copy the token string. You will assign this to a {% data variables.product.prodname_codespaces %} repository secret. 1. Sign back into the account that has admin access to the repository. 1. In the repository for which you want to create {% data variables.product.prodname_github_codespaces %} prebuilds, create a new {% data variables.product.prodname_codespaces %} repository secret called `CODESPACES_PREBUILD_TOKEN`, giving it the value of the token you created and copied. For more information, see "[Managing encrypted secrets for your repository and organization for {% data variables.product.prodname_github_codespaces %}](/codespaces/managing-codespaces-for-your-organization/managing-encrypted-secrets-for-your-repository-and-organization-for-github-codespaces#adding-secrets-for-a-repository)." -The PAT will be used for all subsequent prebuilds created for your repository. Unlike other {% data variables.product.prodname_codespaces %} repository secrets, the `CODESPACES_PREBUILD_TOKEN` secret is only used for prebuilding and will not be available to use in codespaces created from your repository. +The {% data variables.product.pat_generic %} will be used for all subsequent prebuilds created for your repository. Unlike other {% data variables.product.prodname_codespaces %} repository secrets, the `CODESPACES_PREBUILD_TOKEN` secret is only used for prebuilding and will not be available to use in codespaces created from your repository. ## Further reading diff --git a/content/communities/documenting-your-project-with-wikis/about-wikis.md b/content/communities/documenting-your-project-with-wikis/about-wikis.md index d270e7ba51..24a9ff072b 100644 --- a/content/communities/documenting-your-project-with-wikis/about-wikis.md +++ b/content/communities/documenting-your-project-with-wikis/about-wikis.md @@ -15,15 +15,15 @@ topics: - Community --- -Every repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} comes equipped with a section for hosting documentation, called a wiki. You can use your repository's wiki to share long-form content about your project, such as how to use it, how you designed it, or its core principles. A README file quickly tells what your project can do, while you can use a wiki to provide additional documentation. For more information, see "[About READMEs](/articles/about-readmes)." +Every repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} comes equipped with a section for hosting documentation, called a wiki. You can use your repository's wiki to share long-form content about your project, such as how to use it, how you designed it, or its core principles. A README file quickly tells what your project can do, while you can use a wiki to provide additional documentation. For more information, see "[About READMEs](/articles/about-readmes)." With wikis, you can write content just like everywhere else on {% data variables.product.product_name %}. For more information, see "[Getting started with writing and formatting on {% data variables.product.prodname_dotcom %}](/articles/getting-started-with-writing-and-formatting-on-github)." We use [our open-source Markup library](https://github.com/github/markup) to convert different formats into HTML, so you can choose to write in Markdown or any other supported format. {% data reusables.getting-started.math-and-diagrams %} -{% ifversion fpt or ghes or ghec %}If you create a wiki in a public repository, the wiki is available to {% ifversion ghes %}anyone with access to {% data variables.product.product_location %}{% else %}the public{% endif %}. {% endif %}If you create a wiki in a private{% ifversion ghec or ghes %} or internal{% endif %} repository, only {% ifversion fpt or ghes or ghec %}people{% elsif ghae %}enterprise members{% endif %} with access to the repository can access the wiki. For more information, see "[Setting repository visibility](/articles/setting-repository-visibility)." +{% ifversion fpt or ghes or ghec %}If you create a wiki in a public repository, the wiki is available to {% ifversion ghes %}anyone with access to {% data variables.location.product_location %}{% else %}the public{% endif %}. {% endif %}If you create a wiki in a private{% ifversion ghec or ghes %} or internal{% endif %} repository, only {% ifversion fpt or ghes or ghec %}people{% elsif ghae %}enterprise members{% endif %} with access to the repository can access the wiki. For more information, see "[Setting repository visibility](/articles/setting-repository-visibility)." -You can edit wikis directly on {% data variables.product.product_name %}, or you can edit wiki files locally. By default, only people with write access to your repository can make changes to wikis, although you can allow everyone on {% data variables.product.product_location %} to contribute to a wiki in {% ifversion ghae %}an internal{% else %}a public{% endif %} repository. For more information, see "[Changing access permissions for wikis](/communities/documenting-your-project-with-wikis/changing-access-permissions-for-wikis)." +You can edit wikis directly on {% data variables.product.product_name %}, or you can edit wiki files locally. By default, only people with write access to your repository can make changes to wikis, although you can allow everyone on {% data variables.location.product_location %} to contribute to a wiki in {% ifversion ghae %}an internal{% else %}a public{% endif %} repository. For more information, see "[Changing access permissions for wikis](/communities/documenting-your-project-with-wikis/changing-access-permissions-for-wikis)." {% note %} diff --git a/content/communities/documenting-your-project-with-wikis/changing-access-permissions-for-wikis.md b/content/communities/documenting-your-project-with-wikis/changing-access-permissions-for-wikis.md index 87067666c9..1601243f86 100644 --- a/content/communities/documenting-your-project-with-wikis/changing-access-permissions-for-wikis.md +++ b/content/communities/documenting-your-project-with-wikis/changing-access-permissions-for-wikis.md @@ -1,6 +1,6 @@ --- title: Changing access permissions for wikis -intro: 'Only repository collaborators can edit a {% ifversion fpt or ghec or ghes %}public{% endif %} repository''s wiki by default, but you can allow anyone with an account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} to edit your wiki.' +intro: 'Only repository collaborators can edit a {% ifversion fpt or ghec or ghes %}public{% endif %} repository''s wiki by default, but you can allow anyone with an account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} to edit your wiki.' product: '{% data reusables.gated-features.wikis %}' redirect_from: - /articles/changing-access-permissions-for-wikis diff --git a/content/desktop/contributing-and-collaborating-using-github-desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop.md b/content/desktop/contributing-and-collaborating-using-github-desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop.md index 5a7941979d..a73f507945 100644 --- a/content/desktop/contributing-and-collaborating-using-github-desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop.md +++ b/content/desktop/contributing-and-collaborating-using-github-desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop.md @@ -16,7 +16,7 @@ shortTitle: Clone a GitHub repo {% mac %} -1. Sign in to {% data variables.product.product_location %} and {% data variables.product.prodname_desktop %} before you start to clone. +1. Sign in to {% data variables.location.product_location %} and {% data variables.product.prodname_desktop %} before you start to clone. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.open-with-github-desktop %} 5. Click **Choose...** and, using the Finder window, navigate to a local path where you want to clone the repository. @@ -35,7 +35,7 @@ shortTitle: Clone a GitHub repo {% windows %} -1. Sign in to {% data variables.product.product_location %} and {% data variables.product.prodname_desktop %} before you start to clone. +1. Sign in to {% data variables.location.product_location %} and {% data variables.product.prodname_desktop %} before you start to clone. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.open-with-github-desktop %} 5. Click **Choose...** and, using Windows Explorer, navigate to a local path where you want to clone the repository. diff --git a/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/about-connections-to-github.md b/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/about-connections-to-github.md index 6200a8c0c5..b550521342 100644 --- a/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/about-connections-to-github.md +++ b/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/about-connections-to-github.md @@ -10,7 +10,7 @@ shortTitle: About connections --- {% data variables.product.prodname_desktop %} connects to {% data variables.product.prodname_dotcom %} when you pull from, push to, clone, and fork remote repositories. To connect to {% data variables.product.prodname_dotcom %} from {% data variables.product.prodname_desktop %}, you must authenticate your account. For more information, see "[Authenticating to {% data variables.product.prodname_dotcom %}](/desktop/getting-started-with-github-desktop/authenticating-to-github)." -After you authenticate to {% data variables.product.prodname_dotcom %}, you can connect to remote repositories with {% data variables.product.prodname_desktop %}. {% data variables.product.prodname_desktop %} caches your credentials (username and password or personal access token) and uses the credentials to authenticate for each connection to the remote repository. +After you authenticate to {% data variables.product.prodname_dotcom %}, you can connect to remote repositories with {% data variables.product.prodname_desktop %}. {% data variables.product.prodname_desktop %} caches your credentials (username and password or {% data variables.product.pat_generic %}) and uses the credentials to authenticate for each connection to the remote repository. {% data variables.product.prodname_desktop %} connects to {% data variables.product.prodname_dotcom %} using HTTPS. If you use {% data variables.product.prodname_desktop %} to access repositories that were cloned using SSH, you may encounter errors. To connect to a repository that was cloned using SSH, change the remote's URLs. For more information, see "[Managing remote repositories](/github/getting-started-with-github/managing-remote-repositories)." diff --git a/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/authenticating-to-github.md b/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/authenticating-to-github.md index 0bda3e62d6..220f7b85da 100644 --- a/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/authenticating-to-github.md +++ b/content/desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/authenticating-to-github.md @@ -36,13 +36,13 @@ Before you authenticate, {% data reusables.desktop.get-an-account %} {% data reusables.desktop.mac-select-desktop-menu %} {% data reusables.desktop.mac-select-accounts %} {% data reusables.desktop.choose-product-authenticate %} -4. To add an account on {% data variables.product.product_location_enterprise %}, type the URL for your instance under "Enterprise address," then click **Continue**. +4. To add an account on {% data variables.location.product_location_enterprise %}, type the URL for your instance under "Enterprise address," then click **Continue**. ![The Sign In button for GitHub Enterprise](/assets/images/help/desktop/mac-sign-in-button-enterprise.png) {% data reusables.desktop.sign-in-browser %} -1. To authenticate to {% data variables.product.product_location_enterprise %} account, type your account credentials and click **Sign in**. +1. To authenticate to {% data variables.location.product_location_enterprise %} account, type your account credentials and click **Sign in**. ![The Sign In button for {% data variables.product.prodname_ghe_server %} in browser](/assets/images/help/desktop/enterprise-sign-in-button-browser.png) - Alternatively, if you were already signed in to {% data variables.product.product_location_enterprise %} account, follow the prompts to return to {% data variables.product.prodname_desktop %} to finish authenticating. + Alternatively, if you were already signed in to {% data variables.location.product_location_enterprise %} account, follow the prompts to return to {% data variables.product.prodname_desktop %} to finish authenticating. {% endmac %} diff --git a/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md b/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md index 151c640b90..8f7e7bdec0 100644 --- a/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md +++ b/content/developers/apps/building-github-apps/rate-limits-for-github-apps.md @@ -47,7 +47,7 @@ Rate limits for {% data variables.product.prodname_github_apps %} and {% data va {% ifversion fpt or ghec %} -{% data variables.product.prodname_github_apps %} that are installed on an organization within an enterprise on {% data variables.product.product_location %} are subject to a limit of 15,000 requests per hour per organization that has installed the app. +{% data variables.product.prodname_github_apps %} that are installed on an organization within an enterprise on {% data variables.location.product_location %} are subject to a limit of 15,000 requests per hour per organization that has installed the app. {% endif %} @@ -65,7 +65,7 @@ User-to-server requests from {% data variables.product.prodname_oauth_apps %} ar {% ifversion ghec %} -The rate limits for user-to-server requests made by {% data variables.product.prodname_github_apps %} depend on where the app is installed. If the app is installed on organizations or repositories owned by an enterprise on {% data variables.product.product_location %}, then the rate is higher than for installations outside an enterprise. +The rate limits for user-to-server requests made by {% data variables.product.prodname_github_apps %} depend on where the app is installed. If the app is installed on organizations or repositories owned by an enterprise on {% data variables.location.product_location %}, then the rate is higher than for installations outside an enterprise. {% endif %} diff --git a/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md b/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md index b6bbec65b2..9ed610b338 100644 --- a/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md +++ b/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md @@ -267,7 +267,7 @@ For more information, see the "[OAuth 2.0 Device Authorization Grant](https://to ## Non-Web application flow -Non-web authentication is available for limited situations like testing. If you need to, you can use [Basic Authentication](/rest/overview/other-authentication-methods#basic-authentication) to create a personal access token using your [Personal access tokens settings page](/articles/creating-an-access-token-for-command-line-use). This technique enables the user to revoke access at any time. +Non-web authentication is available for limited situations like testing. If you need to, you can use [Basic Authentication](/rest/overview/other-authentication-methods#basic-authentication) to create a {% data variables.product.pat_generic %} using your [{% data variables.product.pat_generic %}s settings page](/articles/creating-an-access-token-for-command-line-use). This technique enables the user to revoke access at any time. {% ifversion fpt or ghes or ghec %} {% note %} diff --git a/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md b/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md index e1e253fc5f..cca12402c8 100644 --- a/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md +++ b/content/developers/apps/building-oauth-apps/scopes-for-oauth-apps.md @@ -57,7 +57,7 @@ Name | Description **`admin:public_key`** | Fully manage public keys.  `write:public_key`| Create, list, and view details for public keys.  `read:public_key`| List and view details for public keys. -**`admin:org_hook`** | Grants read, write, ping, and delete access to organization hooks. **Note:** OAuth tokens will only be able to perform these actions on organization hooks which were created by the OAuth App. Personal access tokens will only be able to perform these actions on organization hooks created by a user. +**`admin:org_hook`** | Grants read, write, ping, and delete access to organization hooks. **Note:** OAuth tokens will only be able to perform these actions on organization hooks which were created by the OAuth App. {% data variables.product.pat_generic_caps %}s will only be able to perform these actions on organization hooks created by a user. **`gist`** | Grants write access to gists. **`notifications`** | Grants:
* read access to a user's notifications
* mark as read access to threads
* watch and unwatch access to a repository, and
* read, write, and delete access to thread subscriptions. **`user`** | Grants read/write access to profile info only. Note that this scope includes `user:email` and `user:follow`. diff --git a/content/developers/apps/getting-started-with-apps/about-apps.md b/content/developers/apps/getting-started-with-apps/about-apps.md index b2ddf4a8d6..166ace7868 100644 --- a/content/developers/apps/getting-started-with-apps/about-apps.md +++ b/content/developers/apps/getting-started-with-apps/about-apps.md @@ -72,24 +72,25 @@ Keep these ideas in mind when creating {% data variables.product.prodname_oauth_ For more on {% data variables.product.prodname_oauth_apps %}, see "[Creating an {% data variables.product.prodname_oauth_app %}](/apps/building-oauth-apps/creating-an-oauth-app/)" and "[Registering your app](/rest/guides/basics-of-authentication#registering-your-app)." -## Personal access tokens +## {% data variables.product.pat_generic_caps %}s -A [personal access token](/articles/creating-a-personal-access-token-for-the-command-line/) is a string of characters that functions similarly to an [OAuth token](/apps/building-oauth-apps/authorizing-oauth-apps/) in that you can specify its permissions via [scopes](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A personal access token is also similar to a password, but you can have many of them and you can revoke access to each one at any time. +A [{% data variables.product.pat_generic %}](/articles/creating-a-personal-access-token-for-the-command-line/) is a string of characters that functions similarly to an [OAuth token](/apps/building-oauth-apps/authorizing-oauth-apps/) in that you can specify its permissions via [scopes](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A {% data variables.product.pat_generic %} is also similar to a password, but you can have many of them and you can revoke access to each one at any time. -As an example, you can enable a personal access token to write to your repositories. If then you run a cURL command or write a script that [creates an issue](/rest/reference/issues#create-an-issue) in your repository, you would pass the personal access token to authenticate. You can store the personal access token as an environment variable to avoid typing it every time you use it. +As an example, you can enable a {% data variables.product.pat_generic %} to write to your repositories. If then you run a cURL command or write a script that [creates an issue](/rest/reference/issues#create-an-issue) in your repository, you would pass the {% data variables.product.pat_generic %} to authenticate. You can store the {% data variables.product.pat_generic %} as an environment variable to avoid typing it every time you use it. -Keep these ideas in mind when using personal access tokens: +Keep these ideas in mind when using {% data variables.product.pat_generic %}s: * Remember to use this token to represent yourself only. * You can perform one-off cURL requests. * You can run personal scripts. * Don't set up a script for your whole team or company to use. * Don't set up a shared personal account to act as a bot user.{% ifversion fpt or ghes > 3.2 or ghae or ghec %} -* Do set an expiration for your personal access tokens, to help keep your information secure.{% endif %} +* Grant your token the minimal privileges it needs. +* Set an expiration for your {% data variables.product.pat_generic %}s, to help keep your information secure.{% endif %} ## Determining which integration to build -Before you get started creating integrations, you need to determine the best way to access, authenticate, and interact with the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} APIs. The following image offers some questions to ask yourself when deciding whether to use personal access tokens, {% data variables.product.prodname_github_apps %}, or {% data variables.product.prodname_oauth_apps %} for your integration. +Before you get started creating integrations, you need to determine the best way to access, authenticate, and interact with the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} APIs. The following image offers some questions to ask yourself when deciding whether to use {% data variables.product.pat_generic %}s, {% data variables.product.prodname_github_apps %}, or {% data variables.product.prodname_oauth_apps %} for your integration. ![Intro to apps question flow](/assets/images/intro-to-apps-flow.png) @@ -98,7 +99,7 @@ Consider these questions about how your integration needs to behave and what it * Will my integration act only as me, or will it act more like an application? * Do I want it to act independently of me as its own entity? * Will it access everything that I can access, or do I want to limit its access? -* Is it simple or complex? For example, personal access tokens are good for simple scripts and cURLs, whereas an {% data variables.product.prodname_oauth_app %} can handle more complex scripting. +* Is it simple or complex? For example, {% data variables.product.pat_generic %}s are good for simple scripts and cURLs, whereas an {% data variables.product.prodname_oauth_app %} can handle more complex scripting. ## Requesting support diff --git a/content/developers/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app.md b/content/developers/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app.md index 4a6292a7c8..6653241592 100644 --- a/content/developers/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app.md +++ b/content/developers/github-marketplace/creating-apps-for-github-marketplace/requirements-for-listing-an-app.md @@ -74,7 +74,7 @@ When you are ready to publish the app on {% data variables.product.prodname_mark Your app does not need to handle payments but does need to use {% data variables.product.prodname_marketplace %} purchase events to manage new purchases, upgrades, downgrades, cancellations, and free trials. For information about how integrate these events into your app, see "[Using the {% data variables.product.prodname_marketplace %} API in your app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)." -Using GitHub's billing API allows customers to purchase an app without leaving GitHub and to pay for the service with the payment method already attached to their account on {% data variables.product.product_location %}. +Using GitHub's billing API allows customers to purchase an app without leaving GitHub and to pay for the service with the payment method already attached to their account on {% data variables.location.product_location %}. - Apps must support both monthly and annual billing for paid subscriptions purchases. - Listings may offer any combination of free and paid plans. Free plans are optional but encouraged. For more information, see "[Setting a {% data variables.product.prodname_marketplace %} listing's pricing plan](/marketplace/listing-on-github-marketplace/setting-a-github-marketplace-listing-s-pricing-plan/)." diff --git a/content/developers/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps.md b/content/developers/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps.md index a23805bf67..f5da9567b4 100644 --- a/content/developers/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps.md +++ b/content/developers/github-marketplace/creating-apps-for-github-marketplace/security-best-practices-for-apps.md @@ -25,7 +25,7 @@ We recommend creating a GitHub App rather than an OAuth App. {% data reusables.m - Apps should not share service accounts such as email or database services to manage your SaaS service. - All services used in your app should have unique login and password credentials. - Admin privilege access to the production hosting infrastructure should only be given to engineers and employees with administrative duties. -- Apps should not use personal access tokens to authenticate and should authenticate as an [OAuth App](/apps/about-apps/#about-oauth-apps) or a [GitHub App](/apps/about-apps/#about-github-apps): +- Apps should not use {% data variables.product.pat_generic %}s to authenticate and should authenticate as an [OAuth App](/apps/about-apps/#about-oauth-apps) or a [GitHub App](/apps/about-apps/#about-github-apps): - OAuth Apps should authenticate using an [OAuth token](/apps/building-oauth-apps/authorizing-oauth-apps/). - GitHub Apps should authenticate using either a [JSON Web Token (JWT)](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app), [OAuth token](/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/), or [installation access token](/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation). diff --git a/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md b/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md index fd54126797..0725eb52ca 100644 --- a/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md +++ b/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md @@ -24,7 +24,7 @@ Here are guidelines about the fields you'll need to fill out in the **Listing de ### Listing name -Your listing's name will appear on the [{% data variables.product.prodname_marketplace %} homepage](https://github.com/marketplace). The name is limited to 255 characters and can be different from your app's name. Your listing cannot have the same name as an existing account on {% data variables.product.product_location %}, unless the name is your own user or organization name. +Your listing's name will appear on the [{% data variables.product.prodname_marketplace %} homepage](https://github.com/marketplace). The name is limited to 255 characters and can be different from your app's name. Your listing cannot have the same name as an existing account on {% data variables.location.product_location %}, unless the name is your own user or organization name. ### Very short description diff --git a/content/developers/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps.md b/content/developers/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps.md index 98d5bcce1c..39aa90ed6b 100644 --- a/content/developers/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps.md +++ b/content/developers/github-marketplace/selling-your-app-on-github-marketplace/pricing-plans-for-github-marketplace-apps.md @@ -14,7 +14,7 @@ shortTitle: Pricing plans for apps --- {% data variables.product.prodname_marketplace %} pricing plans can be free, flat rate, or per-unit. Prices are set, displayed, and processed in US dollars. Paid plans are restricted to apps published by verified publishers. For more information about becoming a verified publisher, see "[Applying for publisher verification for your organization](/developers/github-marketplace/applying-for-publisher-verification-for-your-organization)." -Customers purchase your app using a payment method attached to their account on {% data variables.product.product_location %}, without having to leave {% data variables.product.prodname_dotcom_the_website %}. You don't have to write code to perform billing transactions, but you will have to handle events from the {% data variables.product.prodname_marketplace %} API. For more information, see "[Using the {% data variables.product.prodname_marketplace %} API in your app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)." +Customers purchase your app using a payment method attached to their account on {% data variables.location.product_location %}, without having to leave {% data variables.product.prodname_dotcom_the_website %}. You don't have to write code to perform billing transactions, but you will have to handle events from the {% data variables.product.prodname_marketplace %} API. For more information, see "[Using the {% data variables.product.prodname_marketplace %} API in your app](/developers/github-marketplace/using-the-github-marketplace-api-in-your-app)." If the app you're listing on {% data variables.product.prodname_marketplace %} has multiple plan options, you can set up corresponding pricing plans. For example, if your app has two plan options, an open source plan and a pro plan, you can set up a free pricing plan for your open source plan and a flat pricing plan for your pro plan. Each {% data variables.product.prodname_marketplace %} listing must have an annual and a monthly price for every plan that's listed. diff --git a/content/developers/overview/about-githubs-apis.md b/content/developers/overview/about-githubs-apis.md index 0911a23156..dbaa547ee2 100644 --- a/content/developers/overview/about-githubs-apis.md +++ b/content/developers/overview/about-githubs-apis.md @@ -18,9 +18,9 @@ topics: {% data variables.product.company_short %} provides two APIs: a REST API and a GraphQL API. You can interact with both APIs using {% data variables.product.prodname_cli %}, curl, the official Octokit libraries, and third party libraries. Occasionally, a feature may be supported on one API but not the other. -You should choose the API that best aligns with your needs and that you are most comfortable using. This article discusses the benefits of each API. +You should use the API that best aligns with your needs and that you are most comfortable using. You don't need to exclusively use one API over the other. Node IDs let you move between the REST API and GraphQL API. For more information, see "[Using global node IDs](/graphql/guides/using-global-node-ids)." -For more information about the GraphQL API, see [the GraphQL documentation](/graphql). For more information about the REST API, see [the REST documentation](/rest). +This article discusses the benefits of each API. For more information about the GraphQL API, see "[About the GraphQL API](/graphql/overview/about-the-graphql-api)." For more information about the REST API, see [the REST documentation](/rest). ## Choosing the GraphQL API @@ -79,7 +79,3 @@ mutation { } } ``` - -## Choosing both - -You don't need to exclusively use one API over the other. Node IDs let you move between the REST API and GraphQL API. For more information, see "[Using global node IDs](/graphql/guides/using-global-node-ids)." diff --git a/content/developers/overview/managing-deploy-keys.md b/content/developers/overview/managing-deploy-keys.md index 45e840a023..9f838c2051 100644 --- a/content/developers/overview/managing-deploy-keys.md +++ b/content/developers/overview/managing-deploy-keys.md @@ -61,7 +61,7 @@ If you don't want to use SSH keys, you can use HTTPS with OAuth tokens. #### Setup -See [our guide on creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). +See [our guide on creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). ## Deploy keys @@ -151,7 +151,7 @@ Since GitHub Apps are a first class actor on {% data variables.product.product_ ## Machine users -If your server needs to access multiple repositories, you can create a new account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} and attach an SSH key that will be used exclusively for automation. Since this account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} won't be used by a human, it's called a _machine user_. You can add the machine user as a [collaborator][collaborator] on a personal repository (granting read and write access), as an [outside collaborator][outside-collaborator] on an organization repository (granting read, write, or admin access), or to a [team][team] with access to the repositories it needs to automate (granting the permissions of the team). +If your server needs to access multiple repositories, you can create a new account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} and attach an SSH key that will be used exclusively for automation. Since this account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} won't be used by a human, it's called a _machine user_. You can add the machine user as a [collaborator][collaborator] on a personal repository (granting read and write access), as an [outside collaborator][outside-collaborator] on an organization repository (granting read, write, or admin access), or to a [team][team] with access to the repositories it needs to automate (granting the permissions of the team). {% ifversion fpt or ghec %} diff --git a/content/developers/overview/secret-scanning-partner-program.md b/content/developers/overview/secret-scanning-partner-program.md index 6f888275c8..dfbff80a06 100644 --- a/content/developers/overview/secret-scanning-partner-program.md +++ b/content/developers/overview/secret-scanning-partner-program.md @@ -110,7 +110,7 @@ key to use based on the value of `GITHUB-PUBLIC-KEY-IDENTIFIER`. {% note %} -**Note**: When you send a request to the public key endpoint above, you may hit rate limits. To avoid hitting rate limits, you can use a personal access token (no scopes required) as suggested in the samples below, or use a conditional request. For more information, see "[Getting started with the REST API](/rest/guides/getting-started-with-the-rest-api#conditional-requests)." +**Note**: When you send a request to the public key endpoint above, you may hit rate limits. To avoid hitting rate limits, you can use a {% data variables.product.pat_v1 %} (no scopes required){% ifversion pat-v2 %} or a {% data variables.product.pat_v2 %} (only the automatic public repositories read access required){% endif %} as suggested in the samples below, or use a conditional request. For more information, see "[Getting started with the REST API](/rest/guides/getting-started-with-the-rest-api#conditional-requests)." {% endnote %} @@ -149,7 +149,7 @@ HzZFI03Exwz8Lh/tCfL3YxwMdLjB+bMznsanlhK0RwcGP3IDb34kQDIo3Q== {% endnote %} The following code snippets demonstrate how you could perform signature validation. -The code examples assume you've set an environment variable called `GITHUB_PRODUCTION_TOKEN` with a generated [personal access token](https://github.com/settings/tokens) (PAT) to avoid hitting rate limits. The PAT does not need any scopes/permissions. +The code examples assume you've set an environment variable called `GITHUB_PRODUCTION_TOKEN` with a generated [{% data variables.product.pat_generic %}](https://github.com/settings/tokens) to avoid hitting rate limits. The {% data variables.product.pat_generic %} does not need any scopes/permissions. **Validation sample in Go** ```golang diff --git a/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md b/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md index d8c0af18bf..d8b5a39119 100644 --- a/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md +++ b/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md @@ -1613,7 +1613,7 @@ This event occurs when someone triggers a workflow run on GitHub or sends a `POS |-----|-----|-----| | `inputs` | `object` | Inputs to the workflow. Each key represents the name of the input while its value represents the value of that input. | {% data reusables.webhooks.org_desc %} -| `ref` | `string` | The branch ref from which the workflow was run. | +| `ref` | `string` | The branch or tag from which the workflow was run. | {% data reusables.webhooks.repo_desc %} {% data reusables.webhooks.sender_desc %} | `workflow` | `string` | Relative path to the workflow file which contains the workflow. | diff --git a/content/discussions/guides/finding-your-discussions.md b/content/discussions/guides/finding-your-discussions.md index 83488f90bd..5cf3819504 100644 --- a/content/discussions/guides/finding-your-discussions.md +++ b/content/discussions/guides/finding-your-discussions.md @@ -11,7 +11,7 @@ redirect_from: ## Finding discussions -1. In the top-right corner of {% data variables.product.product_location %}, click your profile photo, then click **Your discussions**. +1. In the top-right corner of {% data variables.location.product_location %}, click your profile photo, then click **Your discussions**. !["Your discussions" in drop-down menu for profile photo on {% data variables.product.product_name %}](/assets/images/help/discussions/your-discussions.png) 1. Toggle between **Created** and **Commented** to see the discussions you've created or participated in. diff --git a/content/discussions/managing-discussions-for-your-community/managing-categories-for-discussions.md b/content/discussions/managing-discussions-for-your-community/managing-categories-for-discussions.md index baef67ce6d..bd69c78cb1 100644 --- a/content/discussions/managing-discussions-for-your-community/managing-categories-for-discussions.md +++ b/content/discussions/managing-discussions-for-your-community/managing-categories-for-discussions.md @@ -31,7 +31,7 @@ Each category must have a unique name and emoji pairing, and can be accompanied ## Creating a category -1. On {% data variables.product.product_location %}, navigate to the main page of the repository or organization where you want to create a category. +1. On {% data variables.location.product_location %}, navigate to the main page of the repository or organization where you want to create a category. {% data reusables.discussions.discussions-tab %} {% data reusables.discussions.edit-categories %} 1. Click **New category**. @@ -45,7 +45,7 @@ Each category must have a unique name and emoji pairing, and can be accompanied You can edit a category to change the category's emoji, title, description, and discussion format. -1. On {% data variables.product.product_location %}, navigate to the main page of the repository or organization where you want to edit a category. +1. On {% data variables.location.product_location %}, navigate to the main page of the repository or organization where you want to edit a category. {% data reusables.discussions.discussions-tab %} 1. To the right of a category in the list, click {% octicon "pencil" aria-label="The pencil icon" %}. ![Edit button to the right of category in list of categories for a repository](/assets/images/help/discussions/click-edit-for-category.png) @@ -58,7 +58,7 @@ You can edit a category to change the category's emoji, title, description, and When you delete a category, {% data variables.product.product_name %} will move all discussions in the deleted category to an existing category that you choose. -1. On {% data variables.product.product_location %}, navigate to the main page of the repository or organization where you want to delete a category. +1. On {% data variables.location.product_location %}, navigate to the main page of the repository or organization where you want to delete a category. {% data reusables.discussions.discussions-tab %} 1. To the right of a category in the list, click {% octicon "trash" aria-label="The trash icon" %}. ![Trash button to the right of category in list of categories for a repository](/assets/images/help/discussions/click-delete-for-category.png) diff --git a/content/discussions/managing-discussions-for-your-community/managing-discussions.md b/content/discussions/managing-discussions-for-your-community/managing-discussions.md index 89201925a0..2c45e9104d 100644 --- a/content/discussions/managing-discussions-for-your-community/managing-discussions.md +++ b/content/discussions/managing-discussions-for-your-community/managing-discussions.md @@ -110,7 +110,7 @@ To transfer a discussion, you must have permissions to create discussions in the You can convert all issues with the same label to discussions in bulk. Future issues with this label will also automatically convert to the discussion and category you configure. -1. On {% data variables.product.product_location %}, navigate to the main page of the repository or, for organization discussions, the source repository. +1. On {% data variables.location.product_location %}, navigate to the main page of the repository or, for organization discussions, the source repository. {% data reusables.repositories.sidebar-issues %} {% data reusables.project-management.labels %} 1. Next to the label you want to convert to issues, click **Convert issues**. diff --git a/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/about-using-makecode-arcade-with-github-classroom.md b/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/about-using-makecode-arcade-with-github-classroom.md index b2f402b4e8..4272e08f49 100644 --- a/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/about-using-makecode-arcade-with-github-classroom.md +++ b/content/education/manage-coursework-with-github-classroom/integrate-github-classroom-with-an-ide/about-using-makecode-arcade-with-github-classroom.md @@ -22,7 +22,7 @@ MakeCode Arcade does not support multiplayer-editing for group assignments. Inst ## About submission of assignments with MakeCode Arcade -By default, MakeCode Arcade is configured to push to the assignment repository on {% data variables.product.product_location %}. After making progress on an assignment with MakeCode Arcade, students should push changes to {% data variables.product.product_location %} using the {% octicon "mark-github" aria-label="The GitHub mark" %}{% octicon "arrow-up" aria-label="The up arrow icon" %} button at the bottom of the screen. +By default, MakeCode Arcade is configured to push to the assignment repository on {% data variables.location.product_location %}. After making progress on an assignment with MakeCode Arcade, students should push changes to {% data variables.location.product_location %} using the {% octicon "mark-github" aria-label="The GitHub mark" %}{% octicon "arrow-up" aria-label="The up arrow icon" %} button at the bottom of the screen. ![MakeCode Arcade version control functionality](/assets/images/help/classroom/ide-makecode-arcade-version-control-button.png) diff --git a/content/education/manage-coursework-with-github-classroom/learn-with-github-classroom/view-autograding-results.md b/content/education/manage-coursework-with-github-classroom/learn-with-github-classroom/view-autograding-results.md index 94c923104e..7e93c63392 100644 --- a/content/education/manage-coursework-with-github-classroom/learn-with-github-classroom/view-autograding-results.md +++ b/content/education/manage-coursework-with-github-classroom/learn-with-github-classroom/view-autograding-results.md @@ -9,7 +9,7 @@ redirect_from: --- ## About autograding -Your teacher can configure tests that automatically check your work when you push to an assignment repository on {% data variables.product.product_location %}. +Your teacher can configure tests that automatically check your work when you push to an assignment repository on {% data variables.location.product_location %}. If you're a student and your instructor has configured autograding for your assignment in {% data variables.product.prodname_classroom %}, you'll find autograding test results throughout your assignment repository. If all tests succeed for a commit, you'll see a green checkmark. If any tests fail for a commit, you'll see a red X. You can see detailed logs by clicking the green checkmark or red X. diff --git a/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md b/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md index 463ad45f8b..1963647dc6 100644 --- a/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md +++ b/content/get-started/customizing-your-github-workflow/exploring-integrations/github-extensions-and-integrations.md @@ -29,7 +29,7 @@ With the {% data variables.product.prodname_dotcom %} for {% data variables.prod ## Project management tools -You can integrate your personal or organization account on {% data variables.product.product_location %} with third-party project management tools, such as Jira. +You can integrate your personal or organization account on {% data variables.location.product_location %} with third-party project management tools, such as Jira. ### Jira Cloud and {% data variables.product.product_name %}.com integration @@ -37,7 +37,7 @@ You can integrate Jira Cloud with your personal or organization account to scan ## Team communication tools -You can integrate your personal or organization account on {% data variables.product.product_location %} with third-party team communication tools, such as Slack or Microsoft Teams. +You can integrate your personal or organization account on {% data variables.location.product_location %} with third-party team communication tools, such as Slack or Microsoft Teams. ### Slack and {% data variables.product.product_name %} integration diff --git a/content/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github.md b/content/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github.md index e238d445dd..d46262cbb0 100644 --- a/content/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github.md +++ b/content/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github.md @@ -1,6 +1,6 @@ --- title: Finding ways to contribute to open source on GitHub -intro: 'You can find ways to contribute to open source projects on {% data variables.product.product_location %} that are relevant to you.' +intro: 'You can find ways to contribute to open source projects on {% data variables.location.product_location %} that are relevant to you.' permissions: '{% data reusables.enterprise-accounts.emu-permission-interact %}' redirect_from: - /articles/where-can-i-find-open-source-projects-to-work-on @@ -22,7 +22,7 @@ shortTitle: Contribute to open source If there's a particular topic that interests you, visit `github.com/topics/`. For example, if you are interested in machine learning, you can find relevant projects and good first issues by visiting https://github.com/topics/machine-learning. You can browse popular topics by visiting [Topics](https://github.com/topics). You can also search for repositories that match a topic you're interested in. For more information, see "[Searching for repositories](/search-github/searching-on-github/searching-for-repositories#search-by-topic)." -If you've been active on {% data variables.product.product_location %}, you can find personalized recommendations for projects and good first issues based on your past contributions, stars, and other activities in [Explore](https://github.com/explore). You can also sign up for the Explore newsletter to receive emails about opportunities to contribute to {% data variables.product.product_name %} based on your interests. To sign up, see [Explore email newsletter](https://github.com/explore/subscribe). +If you've been active on {% data variables.location.product_location %}, you can find personalized recommendations for projects and good first issues based on your past contributions, stars, and other activities in [Explore](https://github.com/explore). You can also sign up for the Explore newsletter to receive emails about opportunities to contribute to {% data variables.product.product_name %} based on your interests. To sign up, see [Explore email newsletter](https://github.com/explore/subscribe). Keep up with recent activity from repositories you watch, as well as people and organizations you follow, with your personal dashboard. For more information, see "[About your personal dashboard](/articles/about-your-personal-dashboard)." diff --git a/content/get-started/getting-started-with-git/about-remote-repositories.md b/content/get-started/getting-started-with-git/about-remote-repositories.md index 174a8d2db3..9f811b3086 100644 --- a/content/get-started/getting-started-with-git/about-remote-repositories.md +++ b/content/get-started/getting-started-with-git/about-remote-repositories.md @@ -43,7 +43,7 @@ You can use the command `git remote set-url` to [change a remote's URL](/github/ ## Choosing a URL for your remote repository -There are several ways to clone repositories available on {% data variables.product.product_location %}. +There are several ways to clone repositories available on {% data variables.location.product_location %}. When you view a repository while signed in to your account, the URLs you can use to clone the project onto your computer are available below the repository details. @@ -69,7 +69,7 @@ When you `git clone`, `git fetch`, `git pull`, or `git push` to a remote reposit ## Cloning with SSH URLs -SSH URLs provide access to a Git repository via SSH, a secure protocol. To use these URLs, you must generate an SSH keypair on your computer and add the **public** key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. For more information, see "[Connecting to {% data variables.product.prodname_dotcom %} with SSH](/github/authenticating-to-github/connecting-to-github-with-ssh)." +SSH URLs provide access to a Git repository via SSH, a secure protocol. To use these URLs, you must generate an SSH keypair on your computer and add the **public** key to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. For more information, see "[Connecting to {% data variables.product.prodname_dotcom %} with SSH](/github/authenticating-to-github/connecting-to-github-with-ssh)." When you `git clone`, `git fetch`, `git pull`, or `git push` to a remote repository using SSH URLs, you'll be prompted for a password and must provide your SSH key passphrase. For more information, see "[Working with SSH key passphrases](/github/authenticating-to-github/working-with-ssh-key-passphrases)." diff --git a/content/get-started/getting-started-with-git/caching-your-github-credentials-in-git.md b/content/get-started/getting-started-with-git/caching-your-github-credentials-in-git.md index 5c74e8cf31..a32b554c10 100644 --- a/content/get-started/getting-started-with-git/caching-your-github-credentials-in-git.md +++ b/content/get-started/getting-started-with-git/caching-your-github-credentials-in-git.md @@ -35,7 +35,7 @@ For more information about authenticating with {% data variables.product.prodnam ## Git Credential Manager -[Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager) (GCM) is another way to store your credentials securely and connect to GitHub over HTTPS. With GCM, you don't have to manually [create and store a PAT](/github/authenticating-to-github/creating-a-personal-access-token), as GCM manages authentication on your behalf, including 2FA (two-factor authentication). +[Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager) (GCM) is another way to store your credentials securely and connect to GitHub over HTTPS. With GCM, you don't have to manually [create and store a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token), as GCM manages authentication on your behalf, including 2FA (two-factor authentication). {% mac %} diff --git a/content/get-started/getting-started-with-git/managing-remote-repositories.md b/content/get-started/getting-started-with-git/managing-remote-repositories.md index 3799d2d88a..b10cb2025a 100644 --- a/content/get-started/getting-started-with-git/managing-remote-repositories.md +++ b/content/get-started/getting-started-with-git/managing-remote-repositories.md @@ -108,7 +108,7 @@ git@{% data variables.command_line.codeblock %}:USERNAME/REPOSITORY.git The next time you `git fetch`, `git pull`, or `git push` to the remote repository, you'll be asked for your GitHub username and password. {% data reusables.user-settings.password-authentication-deprecation %} -You can [use a credential helper](/github/getting-started-with-github/caching-your-github-credentials-in-git) so Git will remember your GitHub username and personal access token every time it talks to GitHub. +You can [use a credential helper](/github/getting-started-with-github/caching-your-github-credentials-in-git) so Git will remember your GitHub username and {% data variables.product.pat_generic %} every time it talks to GitHub. ### Switching remote URLs from HTTPS to SSH diff --git a/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md b/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md index 38ccb5ee1c..507b7c8f52 100644 --- a/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md +++ b/content/get-started/getting-started-with-git/updating-credentials-from-the-macos-keychain.md @@ -1,6 +1,6 @@ --- title: Updating credentials from the macOS Keychain -intro: 'You''ll need to update your saved credentials in the `git-credential-osxkeychain` helper if you change your{% ifversion not ghae %} username, password, or{% endif %} personal access token on {% data variables.product.product_name %}.' +intro: 'You''ll need to update your saved credentials in the `git-credential-osxkeychain` helper if you change your{% ifversion not ghae %} username, password, or{% endif %} {% data variables.product.pat_generic %} on {% data variables.product.product_name %}.' redirect_from: - /articles/updating-credentials-from-the-osx-keychain - /github/using-git/updating-credentials-from-the-osx-keychain @@ -16,9 +16,9 @@ shortTitle: macOS Keychain credentials --- {% tip %} -**Note:** Updating credentials from the macOS Keychain only applies to users who manually configured a PAT using the `osxkeychain` helper that is built-in to macOS. +**Note:** Updating credentials from the macOS Keychain only applies to users who manually configured a {% data variables.product.pat_generic %} using the `osxkeychain` helper that is built-in to macOS. -We recommend you either [configure SSH](/articles/generating-an-ssh-key) or upgrade to the [Git Credential Manager](/get-started/getting-started-with-git/caching-your-github-credentials-in-git) (GCM) instead. GCM can manage authentication on your behalf (no more manual PATs) including 2FA (two-factor auth). +We recommend you either [configure SSH](/articles/generating-an-ssh-key) or upgrade to the [Git Credential Manager](/get-started/getting-started-with-git/caching-your-github-credentials-in-git) (GCM) instead. GCM can manage authentication on your behalf (no more manual {% data variables.product.pat_generic %}s) including 2FA (two-factor auth). {% endtip %} @@ -43,7 +43,7 @@ protocol=https > [Press Return] ``` -If it's successful, nothing will print out. To test that it works, try and clone a private repository from {% data variables.product.product_location %}. If you are prompted for a password, the keychain entry was deleted. +If it's successful, nothing will print out. To test that it works, try and clone a private repository from {% data variables.location.product_location %}. If you are prompted for a password, the keychain entry was deleted. ## Further reading diff --git a/content/get-started/getting-started-with-git/why-is-git-always-asking-for-my-password.md b/content/get-started/getting-started-with-git/why-is-git-always-asking-for-my-password.md index e352940c6a..284df7ffb1 100644 --- a/content/get-started/getting-started-with-git/why-is-git-always-asking-for-my-password.md +++ b/content/get-started/getting-started-with-git/why-is-git-always-asking-for-my-password.md @@ -17,7 +17,7 @@ Using an HTTPS remote URL has some advantages compared with using SSH. It's easi {% data reusables.user-settings.password-authentication-deprecation %} -You can avoid being prompted for your password by configuring Git to [cache your credentials](/github/getting-started-with-github/caching-your-github-credentials-in-git) for you. Once you've configured credential caching, Git automatically uses your cached personal access token when you pull or push a repository using HTTPS. +You can avoid being prompted for your password by configuring Git to [cache your credentials](/github/getting-started-with-github/caching-your-github-credentials-in-git) for you. Once you've configured credential caching, Git automatically uses your cached {% data variables.product.pat_generic %} when you pull or push a repository using HTTPS. ## Further reading diff --git a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-locally-hosted-code-to-github.md b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-locally-hosted-code-to-github.md index 42d188af5d..d42181b790 100644 --- a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-locally-hosted-code-to-github.md +++ b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/adding-locally-hosted-code-to-github.md @@ -54,7 +54,7 @@ If you have existing source code or repositories stored locally on your computer {% mac %} -1. [Create a new repository](/repositories/creating-and-managing-repositories/creating-a-new-repository) on {% data variables.product.product_location %}. To avoid errors, do not initialize the new repository with *README*, license, or `gitignore` files. You can add these files after your project has been pushed to {% data variables.product.product_name %}. +1. [Create a new repository](/repositories/creating-and-managing-repositories/creating-a-new-repository) on {% data variables.location.product_location %}. To avoid errors, do not initialize the new repository with *README*, license, or `gitignore` files. You can add these files after your project has been pushed to {% data variables.product.product_name %}. ![Create New Repository drop-down](/assets/images/help/repository/repo-create.png) {% data reusables.command_line.open_the_multi_os_terminal %} 3. Change the current working directory to your local project. @@ -82,7 +82,7 @@ If you have existing source code or repositories stored locally on your computer $ git commit -m "First commit" # Commits the tracked changes and prepares them to be pushed to a remote repository. {% data reusables.git.reset-head-to-previous-commit-codeblock %} ``` -7. At the top of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. +7. At the top of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. ![Copy remote repository URL field](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png) 8. In Terminal, [add the URL for the remote repository](/github/getting-started-with-github/managing-remote-repositories) where your local repository will be pushed. ```shell @@ -91,7 +91,7 @@ If you have existing source code or repositories stored locally on your computer $ git remote -v # Verifies the new remote URL ``` -9. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.product.product_location %}. +9. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.location.product_location %}. ```shell $ git push -u origin main # Pushes the changes in your local repository up to the remote repository you specified as the origin @@ -101,7 +101,7 @@ If you have existing source code or repositories stored locally on your computer {% windows %} -1. [Create a new repository](/articles/creating-a-new-repository) on {% data variables.product.product_location %}. To avoid errors, do not initialize the new repository with *README*, license, or `gitignore` files. You can add these files after your project has been pushed to {% data variables.product.product_name %}. +1. [Create a new repository](/articles/creating-a-new-repository) on {% data variables.location.product_location %}. To avoid errors, do not initialize the new repository with *README*, license, or `gitignore` files. You can add these files after your project has been pushed to {% data variables.product.product_name %}. ![Create New Repository drop-down](/assets/images/help/repository/repo-create.png) {% data reusables.command_line.open_the_multi_os_terminal %} 3. Change the current working directory to your local project. @@ -128,7 +128,7 @@ If you have existing source code or repositories stored locally on your computer $ git commit -m "First commit" # Commits the tracked changes and prepares them to be pushed to a remote repository. {% data reusables.git.reset-head-to-previous-commit-codeblock %} ``` -7. At the top of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. +7. At the top of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. ![Copy remote repository URL field](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png) 8. In the Command prompt, [add the URL for the remote repository](/github/getting-started-with-github/managing-remote-repositories) where your local repository will be pushed. ```shell @@ -137,7 +137,7 @@ If you have existing source code or repositories stored locally on your computer $ git remote -v # Verifies the new remote URL ``` -9. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.product.product_location %}. +9. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.location.product_location %}. ```shell $ git push origin main # Pushes the changes in your local repository up to the remote repository you specified as the origin @@ -147,7 +147,7 @@ If you have existing source code or repositories stored locally on your computer {% linux %} -1. [Create a new repository](/articles/creating-a-new-repository) on {% data variables.product.product_location %}. To avoid errors, do not initialize the new repository with *README*, license, or `gitignore` files. You can add these files after your project has been pushed to {% data variables.product.product_name %}. +1. [Create a new repository](/articles/creating-a-new-repository) on {% data variables.location.product_location %}. To avoid errors, do not initialize the new repository with *README*, license, or `gitignore` files. You can add these files after your project has been pushed to {% data variables.product.product_name %}. ![Create New Repository drop-down](/assets/images/help/repository/repo-create.png) {% data reusables.command_line.open_the_multi_os_terminal %} 3. Change the current working directory to your local project. @@ -174,7 +174,7 @@ If you have existing source code or repositories stored locally on your computer $ git commit -m "First commit" # Commits the tracked changes and prepares them to be pushed to a remote repository. {% data reusables.git.reset-head-to-previous-commit-codeblock %} ``` -7. At the top of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. +7. At the top of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. ![Copy remote repository URL field](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png) 8. In Terminal, [add the URL for the remote repository](/github/getting-started-with-github/managing-remote-repositories) where your local repository will be pushed. ```shell @@ -183,7 +183,7 @@ If you have existing source code or repositories stored locally on your computer $ git remote -v # Verifies the new remote URL ``` -9. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.product.product_location %}. +9. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.location.product_location %}. ```shell $ git push origin main # Pushes the changes in your local repository up to the remote repository you specified as the origin diff --git a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md index e570aed9dc..c25bdf5f5c 100644 --- a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md +++ b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-git-repository-using-the-command-line.md @@ -24,7 +24,7 @@ For purposes of demonstration, we'll use: - An external account named **extuser** - An external Git host named `https://external-host.com` - A {% data variables.product.product_name %} personal account named **ghuser** -- A repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} named **repo.git** +- A repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} named **repo.git** {% endtip %} @@ -38,7 +38,7 @@ For purposes of demonstration, we'll use: ```shell $ cd REPO.git $ git push --mirror https://{% data variables.command_line.codeblock %}/USER/REPO.git - # Pushes the mirror to the new repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} + # Pushes the mirror to the new repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} ``` 4. Remove the temporary local repository. ```shell diff --git a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer.md b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer.md index 0cefa658e7..ab8be9b319 100644 --- a/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer.md +++ b/content/get-started/importing-your-projects-to-github/importing-source-code-to-github/importing-a-repository-with-github-importer.md @@ -32,7 +32,7 @@ If you'd like to match the commits in your repository to the authors' GitHub per 5. Review the information you entered, then click **Begin import**. ![Begin import button](/assets/images/help/importer/begin-import-button.png) 6. If your old project requires credentials, type your login information for that project, then click **Submit**. -If SAML SSO or 2FA are enabled for your user account on the old project, enter a personal access token with repository read permissions in the "Password" field instead of your password. +If SAML SSO or 2FA are enabled for your user account on the old project, enter a {% data variables.product.pat_generic %} with repository read permissions in the "Password" field instead of your password. ![Password form and Submit button for password-protected project](/assets/images/help/importer/submit-old-credentials-importer.png) 7. If there are multiple projects hosted at your old project's clone URL, choose the project you'd like to import, then click **Submit**. ![List of projects to import and Submit button](/assets/images/help/importer/choose-project-importer.png) diff --git a/content/get-started/learning-about-github/about-github-advanced-security.md b/content/get-started/learning-about-github/about-github-advanced-security.md index d0d20d47d6..401194125d 100644 --- a/content/get-started/learning-about-github/about-github-advanced-security.md +++ b/content/get-started/learning-about-github/about-github-advanced-security.md @@ -62,7 +62,7 @@ To learn about what you need to know to plan your {% data variables.product.prod ## Enabling {% data variables.product.prodname_advanced_security %} features {%- ifversion ghes %} -The site administrator must enable {% data variables.product.prodname_advanced_security %} for {% data variables.product.product_location %} before you can use these features. For more information, see "[Configuring Advanced Security features](/admin/configuration/configuring-advanced-security-features). +The site administrator must enable {% data variables.product.prodname_advanced_security %} for {% data variables.location.product_location %} before you can use these features. For more information, see "[Configuring Advanced Security features](/admin/configuration/configuring-advanced-security-features). Once your system is set up, you can enable and disable these features at the organization or repository level. diff --git a/content/get-started/learning-about-github/access-permissions-on-github.md b/content/get-started/learning-about-github/access-permissions-on-github.md index 1d26d1d63c..8967160362 100644 --- a/content/get-started/learning-about-github/access-permissions-on-github.md +++ b/content/get-started/learning-about-github/access-permissions-on-github.md @@ -47,7 +47,7 @@ For more information about permissions for enterprise accounts, see [the {% data *Enterprise owners* have ultimate power over the enterprise account and can take every action in the enterprise account.{% ifversion ghec or ghes %} *Billing managers* can manage your enterprise account's billing settings.{% endif %} Members and outside collaborators of organizations owned by your enterprise account are automatically members of the enterprise account, although they have no access to the enterprise account itself or its settings. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)." {% ifversion ghec %} -If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new personal accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.product.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.product.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." +If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new personal accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.enterprise.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.enterprise.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." {% endif %} {% endif %} diff --git a/content/get-started/learning-about-github/types-of-github-accounts.md b/content/get-started/learning-about-github/types-of-github-accounts.md index 15df67a422..70b4afd8f5 100644 --- a/content/get-started/learning-about-github/types-of-github-accounts.md +++ b/content/get-started/learning-about-github/types-of-github-accounts.md @@ -29,13 +29,13 @@ With {% data variables.product.product_name %}, you can store and collaborate on - Organization accounts - Enterprise accounts -Every person who uses {% data variables.product.product_name %} signs into a personal account. An organization account enhances collaboration between multiple personal accounts, and {% ifversion fpt or ghec %}an enterprise account{% else %}the enterprise account for {% data variables.product.product_location %}{% endif %} allows central management of multiple organizations. +Every person who uses {% data variables.product.product_name %} signs into a personal account. An organization account enhances collaboration between multiple personal accounts, and {% ifversion fpt or ghec %}an enterprise account{% else %}the enterprise account for {% data variables.location.product_location %}{% endif %} allows central management of multiple organizations. ## Personal accounts -Every person who uses {% data variables.product.product_location %} signs into a personal account. Your personal account is your identity on {% data variables.product.product_location %} and has a username and profile. For example, see [@octocat's profile](https://github.com/octocat). +Every person who uses {% data variables.location.product_location %} signs into a personal account. Your personal account is your identity on {% data variables.location.product_location %} and has a username and profile. For example, see [@octocat's profile](https://github.com/octocat). -Your personal account can own resources such as repositories, packages, and projects. Any time you take any action on {% data variables.product.product_location %}, such as creating an issue or reviewing a pull request, the action is attributed to your personal account. +Your personal account can own resources such as repositories, packages, and projects. Any time you take any action on {% data variables.location.product_location %}, such as creating an issue or reviewing a pull request, the action is attributed to your personal account. {% ifversion fpt or ghec %}Each personal account uses either {% data variables.product.prodname_free_user %} or {% data variables.product.prodname_pro %}. All personal accounts can own an unlimited number of public and private repositories, with an unlimited number of collaborators on those repositories. If you use {% data variables.product.prodname_free_user %}, private repositories owned by your personal account have a limited feature set. You can upgrade to {% data variables.product.prodname_pro %} to get a full feature set for private repositories. For more information, see "[{% data variables.product.prodname_dotcom %}'s products](/articles/githubs-products)." {% else %}You can create an unlimited number of repositories owned by your personal account, with an unlimited number of collaborators on those repositories.{% endif %} @@ -78,7 +78,7 @@ For more information about all the features of organizations, see "[About organi {% elsif ghec %} Enterprise accounts allow central policy management and billing for multiple organizations. You can use your enterprise account to centrally manage policy and billing. Unlike organizations, enterprise accounts cannot directly own resources like repositories, packages, or projects. These resources are owned by organizations within the enterprise account instead. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." {% elsif ghes or ghae %} -Your enterprise account is a collection of all the organizations {% ifversion ghae %}owned by{% elsif ghes %}on{% endif %} {% data variables.product.product_location %}. You can use your enterprise account to centrally manage policy and billing. Unlike organizations, enterprise accounts cannot directly own resources like repositories, packages, or projects. These resources are owned by organizations within the enterprise account instead. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." +Your enterprise account is a collection of all the organizations {% ifversion ghae %}owned by{% elsif ghes %}on{% endif %} {% data variables.location.product_location %}. You can use your enterprise account to centrally manage policy and billing. Unlike organizations, enterprise accounts cannot directly own resources like repositories, packages, or projects. These resources are owned by organizations within the enterprise account instead. For more information, see "[About enterprise accounts](/admin/overview/about-enterprise-accounts)." {% endif %} ## Further reading diff --git a/content/get-started/onboarding/getting-started-with-github-ae.md b/content/get-started/onboarding/getting-started-with-github-ae.md index 45b3a113a8..0717b20b76 100644 --- a/content/get-started/onboarding/getting-started-with-github-ae.md +++ b/content/get-started/onboarding/getting-started-with-github-ae.md @@ -1,14 +1,14 @@ --- title: Getting started with GitHub AE -intro: 'Get started with setting up and configuring {% data variables.product.product_name %} for {% data variables.product.product_location %}.' +intro: 'Get started with setting up and configuring {% data variables.product.product_name %} for {% data variables.location.product_location %}.' versions: ghae: '*' --- -This guide will walk you through setting up, configuring, and managing settings for {% data variables.product.product_location %} on {% data variables.product.product_name %} as an enterprise owner. For more information about {% data variables.product.product_name %}, see "[About {% data variables.product.prodname_ghe_managed %}](/admin/overview/about-github-ae)." +This guide will walk you through setting up, configuring, and managing settings for {% data variables.location.product_location %} on {% data variables.product.product_name %} as an enterprise owner. For more information about {% data variables.product.product_name %}, see "[About {% data variables.product.prodname_ghe_managed %}](/admin/overview/about-github-ae)." ## Part 1: Setting up {% data variables.product.product_name %} -To get started with {% data variables.product.product_name %}, you can create your enterprise account, initialize {% data variables.product.product_name %}, configure an IP allow list, configure user authentication and provisioning, and manage billing for {% data variables.product.product_location %}. +To get started with {% data variables.product.product_name %}, you can create your enterprise account, initialize {% data variables.product.product_name %}, configure an IP allow list, configure user authentication and provisioning, and manage billing for {% data variables.location.product_location %}. ### 1. Creating your {% data variables.product.product_name %} enterprise account You will first need to purchase {% data variables.product.product_name %}. For more information, contact [{% data variables.product.prodname_dotcom %}'s Sales team](https://enterprise.github.com/contact). @@ -16,21 +16,21 @@ You will first need to purchase {% data variables.product.product_name %}. For m {% data reusables.github-ae.initialize-enterprise %} ### 2. Initializing {% data variables.product.product_name %} -After {% data variables.product.company_short %} creates the owner account for {% data variables.product.product_location %} on {% data variables.product.product_name %}, you will receive an email to sign in and complete the initialization. During initialization, you, as the enterprise owner, will name {% data variables.product.product_location %}, configure SAML SSO, create policies for all organizations in {% data variables.product.product_location %}, and configure a support contact for your enterprise members. For more information, see "[Initializing {% data variables.product.prodname_ghe_managed %}](/admin/configuration/configuring-your-enterprise/initializing-github-ae)." +After {% data variables.product.company_short %} creates the owner account for {% data variables.location.product_location %} on {% data variables.product.product_name %}, you will receive an email to sign in and complete the initialization. During initialization, you, as the enterprise owner, will name {% data variables.location.product_location %}, configure SAML SSO, create policies for all organizations in {% data variables.location.product_location %}, and configure a support contact for your enterprise members. For more information, see "[Initializing {% data variables.product.prodname_ghe_managed %}](/admin/configuration/configuring-your-enterprise/initializing-github-ae)." ### 3. Restricting network traffic You can configure an allow list for specific IP addresses to restrict access to assets owned by organizations in your enterprise account. For more information, see "[Restricting network traffic to your enterprise](/admin/configuration/configuring-your-enterprise/restricting-network-traffic-to-your-enterprise)." -### 4. Managing identity and access for {% data variables.product.product_location %} -You can centrally manage access to {% data variables.product.product_location %} on {% data variables.product.product_name %} from an identity provider (IdP) using SAML single sign-on (SSO) for user authentication and System for Cross-domain Identity Management (SCIM) for user provisioning. Once you configure provisioning, you can assign or unassign users to the application from the IdP, creating or disabling user accounts in the enterprise. For more information, see "[About identity and access management for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-identity-and-access-management-for-your-enterprise)." +### 4. Managing identity and access for {% data variables.location.product_location %} +You can centrally manage access to {% data variables.location.product_location %} on {% data variables.product.product_name %} from an identity provider (IdP) using SAML single sign-on (SSO) for user authentication and System for Cross-domain Identity Management (SCIM) for user provisioning. Once you configure provisioning, you can assign or unassign users to the application from the IdP, creating or disabling user accounts in the enterprise. For more information, see "[About identity and access management for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-identity-and-access-management-for-your-enterprise)." -### 5. Managing billing for {% data variables.product.product_location %} -Owners of the subscription for {% data variables.product.product_location %} on {% data variables.product.product_name %} can view billing details for {% data variables.product.product_name %} in the Azure portal. For more information, see "[Managing billing for your enterprise](/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise)." +### 5. Managing billing for {% data variables.location.product_location %} +Owners of the subscription for {% data variables.location.product_location %} on {% data variables.product.product_name %} can view billing details for {% data variables.product.product_name %} in the Azure portal. For more information, see "[Managing billing for your enterprise](/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise)." ## Part 2: Organizing and managing enterprise members -As an enterprise owner for {% data variables.product.product_name %}, you can manage settings on user, repository, team, and organization levels. You can manage members of {% data variables.product.product_location %}, create and manage organizations, set policies for repository management, and create and manage teams. +As an enterprise owner for {% data variables.product.product_name %}, you can manage settings on user, repository, team, and organization levels. You can manage members of {% data variables.location.product_location %}, create and manage organizations, set policies for repository management, and create and manage teams. -### 1. Managing members of {% data variables.product.product_location %} +### 1. Managing members of {% data variables.location.product_location %} {% data reusables.getting-started.managing-enterprise-members %} ### 2. Creating organizations @@ -49,16 +49,16 @@ As an enterprise owner for {% data variables.product.product_name %}, you can ma {% data reusables.getting-started.enforcing-repo-management-policies %} ## Part 3: Building securely -To increase the security of {% data variables.product.product_location %}, you can monitor {% data variables.product.product_location %} and configure security and analysis features for your organizations. +To increase the security of {% data variables.location.product_location %}, you can monitor {% data variables.location.product_location %} and configure security and analysis features for your organizations. -### 1. Monitoring {% data variables.product.product_location %} -You can monitor {% data variables.product.product_location %} with your activity dashboard and audit logging. For more information, see "[Monitoring activity in your enterprise](/admin/monitoring-activity-in-your-enterprise)." +### 1. Monitoring {% data variables.location.product_location %} +You can monitor {% data variables.location.product_location %} with your activity dashboard and audit logging. For more information, see "[Monitoring activity in your enterprise](/admin/monitoring-activity-in-your-enterprise)." ### 2. Configuring security features for your organizations {% data reusables.getting-started.configuring-security-features %} -## Part 4: Customizing and automating work on {% data variables.product.product_location %} -You can customize and automate work in organizations in {% data variables.product.product_location %} with the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API, {% data variables.product.prodname_actions %}, and {% data variables.product.prodname_pages %}. +## Part 4: Customizing and automating work on {% data variables.location.product_location %} +You can customize and automate work in organizations in {% data variables.location.product_location %} with the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API, {% data variables.product.prodname_actions %}, and {% data variables.product.prodname_pages %}. ### 1. Using the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API {% data reusables.getting-started.api %} diff --git a/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md b/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md index f869a8e540..8d918c17ca 100644 --- a/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md +++ b/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md @@ -109,8 +109,8 @@ To audit access to enterprise-owned resources or user license usage, you can vie ## Part 4: Managing security with {% data variables.product.prodname_ghe_cloud %} * [Managing security for a single organization](#managing-security-for-a-single-organization) -* [Managing security for an {% data variables.product.prodname_emu_enterprise %}](#managing-security-for-an-enterprise-with-managed-users) -* [Managing security for an enterprise account without {% data variables.product.prodname_managed_users %}](#managing-security-for-an-enterprise-account-without-managed-users) +* [Managing security for an {% data variables.enterprise.prodname_emu_enterprise %}](#managing-security-for-an-enterprise-with-managed-users) +* [Managing security for an enterprise account without {% data variables.enterprise.prodname_managed_users %}](#managing-security-for-an-enterprise-account-without-managed-users) ### Managing security for a single organization You can help keep your organization secure by requiring two-factor authentication, configuring security features, reviewing your organization's audit log and integrations, and enabling SAML single sign-on and team synchronization. @@ -129,26 +129,26 @@ Organization owners can choose to disable, enable but not enforce, or enable and #### 5. Managing team synchronization for your organization Organization owners can enable team synchronization between your identity provider (IdP) and {% data variables.product.prodname_dotcom %} to allow organization owners and team maintainers to connect teams in your organization with IdP groups. For more information, see "[Managing team synchronization for your organization](/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization)." -### Managing security for an {% data variables.product.prodname_emu_enterprise %} +### Managing security for an {% data variables.enterprise.prodname_emu_enterprise %} With {% data variables.product.prodname_emus %}, access and identity is managed centrally through your identity provider. Two-factor authentication and other login requirements should be enabled and enforced on your IdP. -#### 1. Enabling and SAML single sign-on and provisioning in your {% data variables.product.prodname_emu_enterprise %} +#### 1. Enabling and SAML single sign-on and provisioning in your {% data variables.enterprise.prodname_emu_enterprise %} -In an {% data variables.product.prodname_emu_enterprise %}, all members are provisioned and managed by your identity provider. You must enable SAML SSO and SCIM provisioning before you can start using your enterprise. For more information on configuring SAML SSO and provisioning for an {% data variables.product.prodname_emu_enterprise %}, see "[Configuring SAML single sign-on for Enterprise Managed Users](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/configuring-saml-single-sign-on-for-enterprise-managed-users)." +In an {% data variables.enterprise.prodname_emu_enterprise %}, all members are provisioned and managed by your identity provider. You must enable SAML SSO and SCIM provisioning before you can start using your enterprise. For more information on configuring SAML SSO and provisioning for an {% data variables.enterprise.prodname_emu_enterprise %}, see "[Configuring SAML single sign-on for Enterprise Managed Users](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/configuring-saml-single-sign-on-for-enterprise-managed-users)." -#### 2. Managing teams in your {% data variables.product.prodname_emu_enterprise %} with your identity provider +#### 2. Managing teams in your {% data variables.enterprise.prodname_emu_enterprise %} with your identity provider You can connect teams in your organizations to security groups in your identity provider, managing membership of your teams and access to repositories through your IdP. For more information, see "[Managing team memberships with identity provider groups](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/managing-team-memberships-with-identity-provider-groups)." -#### 3. Managing allowed IP addresses for organizations in your {% data variables.product.prodname_emu_enterprise %} +#### 3. Managing allowed IP addresses for organizations in your {% data variables.enterprise.prodname_emu_enterprise %} -You can configure an allow list for specific IP addresses to restrict access to assets owned by organizations in your {% data variables.product.prodname_emu_enterprise %}. For more information, see "[Enforcing policies for security settings in your enterprise](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-allowed-ip-addresses-for-organizations-in-your-enterprise)." +You can configure an allow list for specific IP addresses to restrict access to assets owned by organizations in your {% data variables.enterprise.prodname_emu_enterprise %}. For more information, see "[Enforcing policies for security settings in your enterprise](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#managing-allowed-ip-addresses-for-organizations-in-your-enterprise)." -#### 4. Enforcing policies for Advanced Security features in your {% data variables.product.prodname_emu_enterprise %} +#### 4. Enforcing policies for Advanced Security features in your {% data variables.enterprise.prodname_emu_enterprise %} {% data reusables.getting-started.enterprise-advanced-security %} -### Managing security for an enterprise account without {% data variables.product.prodname_managed_users %} +### Managing security for an enterprise account without {% data variables.enterprise.prodname_managed_users %} To manage security for your enterprise, you can require two-factor authentication, manage allowed IP addresses, enable SAML single sign-on and team synchronization at an enterprise level, and sign up for and enforce GitHub Advanced Security features. #### 1. Requiring two-factor authentication and managing allowed IP addresses for organizations in your enterprise account diff --git a/content/get-started/onboarding/getting-started-with-github-enterprise-server.md b/content/get-started/onboarding/getting-started-with-github-enterprise-server.md index 5684ac3ba2..5f749b66af 100644 --- a/content/get-started/onboarding/getting-started-with-github-enterprise-server.md +++ b/content/get-started/onboarding/getting-started-with-github-enterprise-server.md @@ -1,11 +1,11 @@ --- title: Getting started with GitHub Enterprise Server -intro: 'Get started with setting up and managing {% data variables.product.product_location %}.' +intro: 'Get started with setting up and managing {% data variables.location.product_location %}.' versions: ghes: '*' --- -This guide will walk you through setting up, configuring and managing {% data variables.product.product_location %} as an enterprise administrator. +This guide will walk you through setting up, configuring and managing {% data variables.location.product_location %} as an enterprise administrator. {% data variables.product.company_short %} provides two ways to deploy {% data variables.product.prodname_enterprise %}. @@ -24,21 +24,21 @@ Before you install {% data variables.product.product_name %}, you can create an To get started with {% data variables.product.product_name %}, you will need to install the appliance on a virtualization platform of your choice. For more information, see "[Setting up a {% data variables.product.prodname_ghe_server %} instance](/admin/installation/setting-up-a-github-enterprise-server-instance)." ### 3. Using the Management Console -You will use the Management Console to walk through the initial setup process when first launching {% data variables.product.product_location %}. You can also use the Management Console to manage instance settings such as the license, domain, authentication, and TLS. For more information, see "[Accessing the management console](/admin/configuration/configuring-your-enterprise/accessing-the-management-console)." +You will use the Management Console to walk through the initial setup process when first launching {% data variables.location.product_location %}. You can also use the Management Console to manage instance settings such as the license, domain, authentication, and TLS. For more information, see "[Accessing the management console](/admin/configuration/configuring-your-enterprise/accessing-the-management-console)." -### 4. Configuring {% data variables.product.product_location %} -In addition to the Management Console, you can use the site admin dashboard and the administrative shell (SSH) to manage {% data variables.product.product_location %}. For example, you can configure applications and rate limits, view reports, use command-line utilities. For more information, see "[Configuring your enterprise](/admin/configuration/configuring-your-enterprise)." +### 4. Configuring {% data variables.location.product_location %} +In addition to the Management Console, you can use the site admin dashboard and the administrative shell (SSH) to manage {% data variables.location.product_location %}. For example, you can configure applications and rate limits, view reports, use command-line utilities. For more information, see "[Configuring your enterprise](/admin/configuration/configuring-your-enterprise)." You can use the default network settings used by {% data variables.product.product_name %} via the dynamic host configuration protocol (DHCP), or you can also configure the network settings using the virtual machine console. You can also configure a proxy server or firewall rules. For more information, see "[Configuring network settings](/admin/configuration/configuring-network-settings)." ### 5. Configuring high availability -You can configure {% data variables.product.product_location %} for high availability to minimize the impact of hardware failures and network outages. For more information, see "[Configuring high availability](/admin/enterprise-management/configuring-high-availability)." +You can configure {% data variables.location.product_location %} for high availability to minimize the impact of hardware failures and network outages. For more information, see "[Configuring high availability](/admin/enterprise-management/configuring-high-availability)." ### 6. Setting up a staging instance -You can set up a staging instance to test modifications, plan for disaster recovery, and try out updates before applying them to {% data variables.product.product_location %}. For more information, see "[Setting up a staging instance](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)." +You can set up a staging instance to test modifications, plan for disaster recovery, and try out updates before applying them to {% data variables.location.product_location %}. For more information, see "[Setting up a staging instance](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)." ### 7. Designating backups and disaster recovery -To protect your production data, you can configure automated backups of {% data variables.product.product_location %} with {% data variables.product.prodname_enterprise_backup_utilities %}. For more information, see "[Configuring backups on your appliance](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)." +To protect your production data, you can configure automated backups of {% data variables.location.product_location %} with {% data variables.product.prodname_enterprise_backup_utilities %}. For more information, see "[Configuring backups on your appliance](/admin/configuration/configuring-your-enterprise/configuring-backups-on-your-appliance)." ### 8. Managing billing for your enterprise Billing for all the organizations and {% data variables.product.product_name %} instances connected to your enterprise account is aggregated into a single bill charge for all of your paid {% data variables.product.prodname_dotcom %}.com services. Enterprise owners and billing managers can access and manage billing settings for enterprise accounts. For more information, see "[Managing billing for your enterprise](/admin/overview/managing-billing-for-your-enterprise)." @@ -46,7 +46,7 @@ Billing for all the organizations and {% data variables.product.product_name %} ## Part 2: Organizing and managing your team As an enterprise owner or administrator, you can manage settings on user, repository, team and organization levels. You can manage members of your enterprise, create and manage organizations, set policies for repository management, and create and manage teams. -### 1. Managing members of {% data variables.product.product_location %} +### 1. Managing members of {% data variables.location.product_location %} {% data reusables.getting-started.managing-enterprise-members %} ### 2. Creating organizations @@ -65,9 +65,9 @@ As an enterprise owner or administrator, you can manage settings on user, reposi {% data reusables.getting-started.enforcing-repo-management-policies %} ## Part 3: Building securely -To increase the security of {% data variables.product.product_location %}, you can configure authentication for enterprise members, use tools and audit logging to stay in compliance, configure security and analysis features for your organizations, and optionally enable {% data variables.product.prodname_GH_advanced_security %}. +To increase the security of {% data variables.location.product_location %}, you can configure authentication for enterprise members, use tools and audit logging to stay in compliance, configure security and analysis features for your organizations, and optionally enable {% data variables.product.prodname_GH_advanced_security %}. ### 1. Authenticating enterprise members -You can use {% data variables.product.product_name %}'s built-in authentication method, or you can choose between an external authentication provider, such as CAS, LDAP, or SAML, to integrate your existing accounts and centrally manage user access to {% data variables.product.product_location %}. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)." +You can use {% data variables.product.product_name %}'s built-in authentication method, or you can choose between an external authentication provider, such as CAS, LDAP, or SAML, to integrate your existing accounts and centrally manage user access to {% data variables.location.product_location %}. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise)." You can also require two-factor authentication for each of your organizations. For more information, see "[Requiring two factor authentication for an organization](/admin/user-management/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization)." @@ -101,7 +101,7 @@ For more information on enabling and configuring {% data variables.product.prodn ### 4. Publishing and managing {% data variables.product.prodname_registry %} {% data reusables.getting-started.packages %} -For more information on enabling and configuring {% data variables.product.prodname_registry %} for {% data variables.product.product_location %}, see "[Getting started with {% data variables.product.prodname_registry %} for your enterprise](/admin/packages/getting-started-with-github-packages-for-your-enterprise)." +For more information on enabling and configuring {% data variables.product.prodname_registry %} for {% data variables.location.product_location %}, see "[Getting started with {% data variables.product.prodname_registry %} for your enterprise](/admin/packages/getting-started-with-github-packages-for-your-enterprise)." {% endif %} ### 5. Using {% data variables.product.prodname_pages %} @@ -110,10 +110,10 @@ For more information on enabling and configuring {% data variables.product.prodn ## Part 5: Connecting with other {% data variables.product.prodname_dotcom %} resources You can use {% data variables.product.prodname_github_connect %} to share resources. -If you are the owner of both a {% data variables.product.product_name %} instance and a {% data variables.product.prodname_ghe_cloud %} organization or enterprise account, you can enable {% data variables.product.prodname_github_connect %}. {% data variables.product.prodname_github_connect %} allows you to share specific workflows and features between {% data variables.product.product_location %} and {% data variables.product.prodname_ghe_cloud %}, such as unified search and contributions. For more information, see "[Connecting {% data variables.product.prodname_ghe_server %} to {% data variables.product.prodname_ghe_cloud %}](/admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud/connecting-github-enterprise-server-to-github-enterprise-cloud)." +If you are the owner of both a {% data variables.product.product_name %} instance and a {% data variables.product.prodname_ghe_cloud %} organization or enterprise account, you can enable {% data variables.product.prodname_github_connect %}. {% data variables.product.prodname_github_connect %} allows you to share specific workflows and features between {% data variables.location.product_location %} and {% data variables.product.prodname_ghe_cloud %}, such as unified search and contributions. For more information, see "[Connecting {% data variables.product.prodname_ghe_server %} to {% data variables.product.prodname_ghe_cloud %}](/admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud/connecting-github-enterprise-server-to-github-enterprise-cloud)." ## Part 6: Using {% data variables.product.prodname_dotcom %}'s learning and support resources -Your enterprise members can learn more about Git and {% data variables.product.prodname_dotcom %} with our learning resources, and you can get the support you need when setting up and managing {% data variables.product.product_location %} with {% data variables.product.prodname_dotcom %} Enterprise Support. +Your enterprise members can learn more about Git and {% data variables.product.prodname_dotcom %} with our learning resources, and you can get the support you need when setting up and managing {% data variables.location.product_location %} with {% data variables.product.prodname_dotcom %} Enterprise Support. ### 1. Reading about {% data variables.product.product_name %} on {% data variables.product.prodname_docs %} diff --git a/content/get-started/onboarding/getting-started-with-github-team.md b/content/get-started/onboarding/getting-started-with-github-team.md index d86dfcde06..0f9f02a3ef 100644 --- a/content/get-started/onboarding/getting-started-with-github-team.md +++ b/content/get-started/onboarding/getting-started-with-github-team.md @@ -7,14 +7,14 @@ versions: This guide will walk you through setting up, configuring and managing your {% data variables.product.prodname_team %} account as an organization owner. -## Part 1: Configuring your account on {% data variables.product.product_location %} +## Part 1: Configuring your account on {% data variables.location.product_location %} As the first steps in starting with {% data variables.product.prodname_team %}, you will need to create a personal account or log into your existing account on {% data variables.product.prodname_dotcom %}, create an organization, and set up billing. ### 1. About organizations Organizations are shared accounts where businesses and open-source projects can collaborate across many projects at once. Owners and administrators can manage member access to the organization's data and projects with sophisticated security and administrative features. For more information on the features of organizations, see "[About organizations](/organizations/collaborating-with-groups-in-organizations/about-organizations#terms-of-service-and-data-protection-for-organizations)." ### 2. Creating an organization and signing up for {% data variables.product.prodname_team %} -Before creating an organization, you will need to create a personal account or log in to your existing account on {% data variables.product.product_location %}. For more information, see "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/get-started/signing-up-for-github/signing-up-for-a-new-github-account)." +Before creating an organization, you will need to create a personal account or log in to your existing account on {% data variables.location.product_location %}. For more information, see "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/get-started/signing-up-for-github/signing-up-for-a-new-github-account)." Once your personal account is set up, you can create an organization and pick a plan. This is where you can choose a {% data variables.product.prodname_team %} subscription for your organization. For more information, see "[Creating a new organization from scratch](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)." diff --git a/content/get-started/onboarding/getting-started-with-your-github-account.md b/content/get-started/onboarding/getting-started-with-your-github-account.md index 388fb6eaee..9fe0d1f65c 100644 --- a/content/get-started/onboarding/getting-started-with-your-github-account.md +++ b/content/get-started/onboarding/getting-started-with-your-github-account.md @@ -20,11 +20,11 @@ The first steps in starting with {% data variables.product.product_name %} are t The first steps in starting with {% data variables.product.product_name %} are to access your account and view your profile. {% endif %} -{% ifversion fpt or ghec %}There are several types of accounts on {% data variables.product.prodname_dotcom %}. {% endif %} Every person who uses {% data variables.product.product_name %} has their own personal account, which can be part of multiple organizations and teams. Your personal account is your identity on {% data variables.product.product_location %} and represents you as an individual. +{% ifversion fpt or ghec %}There are several types of accounts on {% data variables.product.prodname_dotcom %}. {% endif %} Every person who uses {% data variables.product.product_name %} has their own personal account, which can be part of multiple organizations and teams. Your personal account is your identity on {% data variables.location.product_location %} and represents you as an individual. {% ifversion fpt or ghec %} ### 1. Creating an account -To sign up for an account on {% data variables.product.product_location %}, navigate to https://github.com/ and follow the prompts. +To sign up for an account on {% data variables.location.product_location %}, navigate to https://github.com/ and follow the prompts. To keep your {% data variables.product.prodname_dotcom %} account secure you should use a strong and unique password. For more information, see "[Creating a strong password](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-strong-password)." @@ -64,7 +64,7 @@ If you plan to use Git locally on your computer, whether through the command lin If you prefer to use a visual interface, you can download and use {% data variables.product.prodname_desktop %}. {% data variables.product.prodname_desktop %} comes packaged with Git, so there is no need to install Git separately. For more information, see "[Getting started with {% data variables.product.prodname_desktop %}](/desktop/installing-and-configuring-github-desktop/overview/getting-started-with-github-desktop)." -Once you install Git, you can connect to {% data variables.product.product_name %} repositories from your local computer, whether your own repository or another user's fork. When you connect to a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} from Git, you'll need to authenticate with {% data variables.product.product_name %} using either HTTPS or SSH. For more information, see "[About remote repositories](/get-started/getting-started-with-git/about-remote-repositories)." +Once you install Git, you can connect to {% data variables.product.product_name %} repositories from your local computer, whether your own repository or another user's fork. When you connect to a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} from Git, you'll need to authenticate with {% data variables.product.product_name %} using either HTTPS or SSH. For more information, see "[About remote repositories](/get-started/getting-started-with-git/about-remote-repositories)." ### 3. Choosing how to interact with {% data variables.product.product_name %} Everyone has their own unique workflow for interacting with {% data variables.product.prodname_dotcom %}; the interfaces and methods you use depend on your preference and what works best for your needs. @@ -134,7 +134,7 @@ You can use GitHub Issues to organize your work with issues and pull requests an Notifications provide updates about the activity on {% data variables.product.prodname_dotcom %} you've subscribed to or participated in. If you're no longer interested in a conversation, you can unsubscribe, unwatch, or customize the types of notifications you'll receive in the future. For more information, see "[About notifications](/github/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications)." ### 8. Working with {% data variables.product.prodname_pages %} -You can use {% data variables.product.prodname_pages %} to create and host a website directly from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. For more information, see "[About {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/about-github-pages)." +You can use {% data variables.product.prodname_pages %} to create and host a website directly from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. For more information, see "[About {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/about-github-pages)." {% ifversion discussions %} ### 9. Using {% data variables.product.prodname_discussions %} diff --git a/content/get-started/quickstart/contributing-to-projects.md b/content/get-started/quickstart/contributing-to-projects.md index 70a08fbc3a..b90de8630e 100644 --- a/content/get-started/quickstart/contributing-to-projects.md +++ b/content/get-started/quickstart/contributing-to-projects.md @@ -95,6 +95,34 @@ gh repo fork REPOSITORY --clone=true {% enddesktop %} +## Creating a branch to work on + +Before making changes to the project, you should create a new branch and check it out. By keeping changes in their own branch, you follow GitHub Flow and ensure that it will be easier to contribute to the same project again in the future. For more information, see "[GitHub Flow](/get-started/quickstart/github-flow#following-github-flow)." + +{% webui %} + +```shell +git branch BRANCH-NAME +git checkout BRANCH-NAME +``` + +{% endwebui %} + +{% cli %} + +```shell +git branch BRANCH-NAME +git checkout BRANCH-NAME +``` + +{% endcli %} + +{% desktop %} + +For more information about how to create and manage branches in {% data variables.product.prodname_desktop %}, see "[Managing branches](/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/managing-branches)." + +{% enddesktop %} + ## Making and pushing changes Go ahead and make a few changes to the project using your favorite text editor, like [Visual Studio Code](https://code.visualstudio.com). You could, for example, change the text in `index.html` to add your GitHub username. diff --git a/content/get-started/quickstart/create-a-repo.md b/content/get-started/quickstart/create-a-repo.md index 47e490c7a0..06048bb4fd 100644 --- a/content/get-started/quickstart/create-a-repo.md +++ b/content/get-started/quickstart/create-a-repo.md @@ -133,7 +133,7 @@ Now that you have created a project, you can start committing changes. ## Next steps -You have now created a repository, including a *README* file, and created your first commit on {% data variables.product.product_location %}. +You have now created a repository, including a *README* file, and created your first commit on {% data variables.location.product_location %}. {% webui %} diff --git a/content/get-started/quickstart/fork-a-repo.md b/content/get-started/quickstart/fork-a-repo.md index 52f7e2ba26..ad5ed4621b 100644 --- a/content/get-started/quickstart/fork-a-repo.md +++ b/content/get-started/quickstart/fork-a-repo.md @@ -35,7 +35,7 @@ For example, you can use forks to propose changes related to fixing a bug. Rathe Open source software is based on the idea that by sharing code, we can make better, more reliable software. For more information, see the "[About the Open Source Initiative](https://opensource.org/about)" on the Open Source Initiative. -For more information about applying open source principles to your organization's development work on {% data variables.product.product_location %}, see {% data variables.product.prodname_dotcom %}'s white paper "[An introduction to innersource](https://resources.github.com/whitepapers/introduction-to-innersource/)." +For more information about applying open source principles to your organization's development work on {% data variables.location.product_location %}, see {% data variables.product.prodname_dotcom %}'s white paper "[An introduction to innersource](https://resources.github.com/whitepapers/introduction-to-innersource/)." {% ifversion fpt or ghes or ghec %} @@ -47,7 +47,7 @@ When creating your public repository from a fork of someone's project, make sure ## Prerequisites -If you have not yet, you should first [set up Git](/articles/set-up-git). Don't forget to [set up authentication to {% data variables.product.product_location %} from Git](/articles/set-up-git#next-steps-authenticating-with-github-from-git) as well. +If you have not yet, you should first [set up Git](/articles/set-up-git). Don't forget to [set up authentication to {% data variables.location.product_location %} from Git](/articles/set-up-git#next-steps-authenticating-with-github-from-git) as well. ## Forking a repository @@ -55,7 +55,7 @@ If you have not yet, you should first [set up Git](/articles/set-up-git). Don't You might fork a project to propose changes to the upstream, or original, repository. In this case, it's good practice to regularly sync your fork with the upstream repository. To do this, you'll need to use Git on the command line. You can practice setting the upstream repository using the same [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository you just forked. -1. On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% else %}{% data variables.product.product_location %}{% endif %}, navigate to the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. +1. On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% else %}{% data variables.location.product_location %}{% endif %}, navigate to the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. 2. In the top-right corner of the page, click **Fork**. ![Fork button](/assets/images/help/repository/fork_button.png) 3. Select an owner for the forked repository. @@ -103,7 +103,7 @@ Right now, you have a fork of the Spoon-Knife repository, but you do not have th {% webui %} -1. On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% else %}{% data variables.product.product_location %}{% endif %}, navigate to **your fork** of the Spoon-Knife repository. +1. On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% else %}{% data variables.location.product_location %}{% endif %}, navigate to **your fork** of the Spoon-Knife repository. {% data reusables.repositories.copy-clone-url %} {% data reusables.command_line.open_the_multi_os_terminal %} {% data reusables.command_line.change-current-directory-clone %} @@ -152,7 +152,7 @@ When you fork a project in order to propose changes to the original repository, {% webui %} -1. On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% else %}{% data variables.product.product_location %}{% endif %}, navigate to the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. +1. On {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom_the_website %}{% else %}{% data variables.location.product_location %}{% endif %}, navigate to the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. {% data reusables.repositories.copy-clone-url %} {% data reusables.command_line.open_the_multi_os_terminal %} 4. Change directories to the location of the fork you cloned. diff --git a/content/get-started/signing-up-for-github/verifying-your-email-address.md b/content/get-started/signing-up-for-github/verifying-your-email-address.md index e2eb923332..64e0ef6f88 100644 --- a/content/get-started/signing-up-for-github/verifying-your-email-address.md +++ b/content/get-started/signing-up-for-github/verifying-your-email-address.md @@ -23,7 +23,7 @@ If you do not verify your email address, you will not be able to: - Create issues or pull requests - Comment on issues, pull requests, or commits - Authorize {% data variables.product.prodname_oauth_app %} applications - - Generate personal access tokens + - Generate {% data variables.product.pat_generic %}s - Receive email notifications - Star repositories - Create or update project boards, including adding cards @@ -59,11 +59,11 @@ If you do not verify your email address, you will not be able to: The verification link expires after 24 hours. If you don't verify your email within 24 hours, you can request another email verification link. For more information, see "[Verifying your email address](/articles/verifying-your-email-address)." -If you click on the link in the confirmation email within 24 hours and you are directed to an error page, you should ensure that you're signed into the correct account on {% data variables.product.product_location %}. +If you click on the link in the confirmation email within 24 hours and you are directed to an error page, you should ensure that you're signed into the correct account on {% data variables.location.product_location %}. -1. {% data variables.product.signout_link %} of your personal account on {% data variables.product.product_location %}. +1. {% data variables.product.signout_link %} of your personal account on {% data variables.location.product_location %}. 2. Quit and restart your browser. -3. {% data variables.product.signin_link %} to your personal account on {% data variables.product.product_location %}. +3. {% data variables.product.signin_link %} to your personal account on {% data variables.location.product_location %}. 4. Click on the verification link in the email we sent you. ## Further reading diff --git a/content/get-started/using-git/about-git-rebase.md b/content/get-started/using-git/about-git-rebase.md index 8c091ebe3b..07389b8bb1 100644 --- a/content/get-started/using-git/about-git-rebase.md +++ b/content/get-started/using-git/about-git-rebase.md @@ -22,7 +22,7 @@ Typically, you would use `git rebase` to: {% warning %} -**Warning**: Because changing your commit history can make things difficult for everyone else using the repository, it's considered bad practice to rebase commits when you've already pushed to a repository. To learn how to safely rebase on {% data variables.product.product_location %}, see "[About pull request merges](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)." +**Warning**: Because changing your commit history can make things difficult for everyone else using the repository, it's considered bad practice to rebase commits when you've already pushed to a repository. To learn how to safely rebase on {% data variables.location.product_location %}, see "[About pull request merges](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)." {% endwarning %} diff --git a/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md b/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md index 53ae26156a..672cc12698 100644 --- a/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md +++ b/content/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository.md @@ -54,7 +54,7 @@ If you create a new clone of the repository, you won't lose any of your Git hist 6. [Create a new repository](/articles/creating-a-new-repository/) on {% data variables.product.product_name %}. -7. At the top of your new repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. +7. At the top of your new repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}'s Quick Setup page, click {% octicon "clippy" aria-label="The copy to clipboard icon" %} to copy the remote repository URL. ![Copy remote repository URL field](/assets/images/help/repository/copy-remote-repository-url-quick-setup.png) diff --git a/content/get-started/using-github/github-command-palette.md b/content/get-started/using-github/github-command-palette.md index c34ba5f52c..d5a12c7c75 100644 --- a/content/get-started/using-github/github-command-palette.md +++ b/content/get-started/using-github/github-command-palette.md @@ -70,7 +70,7 @@ You can use the command palette to navigate to any page that you have access to ## Searching with the {% data variables.product.prodname_command_palette %} -You can use the command palette to search for anything on {% data variables.product.product_location %}. +You can use the command palette to search for anything on {% data variables.location.product_location %}. {% data reusables.command-palette.open-palette %} diff --git a/content/get-started/using-github/github-mobile.md b/content/get-started/using-github/github-mobile.md index b9b86b141f..74cd8e8b2a 100644 --- a/content/get-started/using-github/github-mobile.md +++ b/content/get-started/using-github/github-mobile.md @@ -49,7 +49,7 @@ You can be simultaneously signed into mobile with one personal account on {% dat You must install {% data variables.product.prodname_mobile %} 1.4 or later on your device to use {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}. -To use {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}, {% data variables.product.product_location %} must be version 3.0 or greater, and your enterprise owner must enable mobile support for your enterprise. For more information, see {% ifversion ghes %}"[Release notes](/enterprise-server/admin/release-notes)" and {% endif %}"[Managing {% data variables.product.prodname_mobile %} for your enterprise]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %} +To use {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}, {% data variables.location.product_location %} must be version 3.0 or greater, and your enterprise owner must enable mobile support for your enterprise. For more information, see {% ifversion ghes %}"[Release notes](/enterprise-server/admin/release-notes)" and {% endif %}"[Managing {% data variables.product.prodname_mobile %} for your enterprise]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %} During the beta for {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}, you must be signed in with a personal account on {% data variables.product.prodname_dotcom_the_website %}. diff --git a/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github.md b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github.md index f9ce600b7e..c486bf29a8 100644 --- a/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github.md +++ b/content/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github.md @@ -25,7 +25,7 @@ If you already have a profile README, you can follow this guide by adding some f ## Creating a gist -Gists let you store or share code snippets and other pieces of information with others on {% data variables.product.product_location %}. To use formatting features in gists, add a gist file with a `.md` extension. +Gists let you store or share code snippets and other pieces of information with others on {% data variables.location.product_location %}. To use formatting features in gists, add a gist file with a `.md` extension. 1. Navigate to your {% data variables.gists.gist_homepage %}. 1. Optionally, type a description for the gist, such as "About me." @@ -37,7 +37,7 @@ For more information, see "[Creating gists](/get-started/writing-on-github/editi ## Creating or editing your profile README -Your profile README lets you share information about yourself with the community on {% data variables.product.product_location %}. The README is displayed at the top of your profile page. +Your profile README lets you share information about yourself with the community on {% data variables.location.product_location %}. The README is displayed at the top of your profile page. If you don't already have a profile README, you can add one. @@ -228,7 +228,7 @@ You can use HTML comment syntax to add a comment that will be hidden in the outp When you're happy with your changes, save your {% ifversion ghae %}gist. - To keep your gist hidden from search engines but visible to anyone you share the URL with, click **Create secret gist** -- If you're happy for your gist to be visible to anyone on {% data variables.product.product_location %}, click **Create internal gist** +- If you're happy for your gist to be visible to anyone on {% data variables.location.product_location %}, click **Create internal gist** {% else %}profile README by clicking **Commit changes**. diff --git a/content/github-cli/github-cli/quickstart.md b/content/github-cli/github-cli/quickstart.md index 845ab25fda..4b77a522cb 100644 --- a/content/github-cli/github-cli/quickstart.md +++ b/content/github-cli/github-cli/quickstart.md @@ -27,7 +27,7 @@ shortTitle: Quickstart ``` {% ifversion not fpt or ghec %} - To authenticate to {% data variables.product.product_location %}, use the `--hostname` flag. + To authenticate to {% data variables.location.product_location %}, use the `--hostname` flag. ```shell gh auth login --hostname HOSTNAME diff --git a/content/graphql/guides/forming-calls-with-graphql.md b/content/graphql/guides/forming-calls-with-graphql.md index eb64b6f601..51259302ab 100644 --- a/content/graphql/guides/forming-calls-with-graphql.md +++ b/content/graphql/guides/forming-calls-with-graphql.md @@ -16,9 +16,11 @@ shortTitle: Form calls with GraphQL ## Authenticating with GraphQL -To communicate with the GraphQL server, you'll need an OAuth token with the right scopes. +{% data reusables.user-settings.graphql-classic-pat-only %} -Follow the steps in "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)" to create a token. The scopes you require depends on the type of data you're trying to request. For example, select the **User** scopes to request user data. If you need access to repository information, select the appropriate **Repository** scopes. +To communicate with the GraphQL server, you'll need a {% data variables.product.pat_generic %} with the right scopes. + +Follow the steps in "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)" to create a token. The scopes you require depends on the type of data you're trying to request. For example, select the **User** scopes to request user data. If you need access to repository information, select the appropriate **Repository** scopes. {% ifversion fpt or ghec %} diff --git a/content/graphql/guides/introduction-to-graphql.md b/content/graphql/guides/introduction-to-graphql.md index e3da852ff3..8459cf109f 100644 --- a/content/graphql/guides/introduction-to-graphql.md +++ b/content/graphql/guides/introduction-to-graphql.md @@ -121,7 +121,7 @@ GraphQL is [introspective](https://graphql.github.io/learn/introspection/). This {% note %} - **Note**: If you get the response `"message": "Bad credentials"` or `401 Unauthorized`, check that you are using a valid token. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." + **Note**: If you get the response `"message": "Bad credentials"` or `401 Unauthorized`, check that you are using a valid token. The GraphQL API only supports authentication using a {% data variables.product.pat_v1 %}. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." {% endnote %} diff --git a/content/graphql/guides/managing-enterprise-accounts.md b/content/graphql/guides/managing-enterprise-accounts.md index c14b543958..6c5a8fa020 100644 --- a/content/graphql/guides/managing-enterprise-accounts.md +++ b/content/graphql/guides/managing-enterprise-accounts.md @@ -41,17 +41,19 @@ For a list of the fields available with the Enterprise Accounts API, see "[Graph ## Getting started using GraphQL for enterprise accounts Follow these steps to get started using GraphQL to manage your enterprise accounts: - - Authenticating with a personal access token + - Authenticating with a {% data variables.product.pat_generic %} - Choosing a GraphQL client or using the GraphQL Explorer - Setting up Insomnia to use the GraphQL API For some example queries, see "[An example query using the Enterprise Accounts API](#an-example-query-using-the-enterprise-accounts-api)." -### 1. Authenticate with your personal access token +### 1. Authenticate with your {% data variables.product.pat_generic %} -1. To authenticate with GraphQL, you need to generate a personal access token (PAT) from developer settings. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +{% data reusables.user-settings.graphql-classic-pat-only %} -2. Grant admin and full control permissions to your personal access token for areas of GHES you'd like to access. For full permission to private repositories, organizations, teams, user data, and access to enterprise billing and profile data, we recommend you select these scopes for your personal access token: +1. To authenticate with GraphQL, you need to generate a {% data variables.product.pat_generic %} from developer settings. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." + +2. Grant admin and full control permissions to your {% data variables.product.pat_generic %} for areas of GHES you'd like to access. For full permission to private repositories, organizations, teams, user data, and access to enterprise billing and profile data, we recommend you select these scopes for your {% data variables.product.pat_generic %}: - `repo` - `admin:org` - `user` @@ -63,7 +65,7 @@ For some example queries, see "[An example query using the Enterprise Accounts A - `manage_runners:enterprise`: Access to manage GitHub Actions enterprise runners and runner-groups.{% endif %} - `read:enterprise`: Read enterprise profile data. -3. Copy your personal access token and keep it in a secure place until you add it to your GraphQL client. +3. Copy your {% data variables.product.pat_generic %} and keep it in a secure place until you add it to your GraphQL client. ### 2. Choose a GraphQL client @@ -82,11 +84,11 @@ The next steps will use Insomnia. - For your enterprise instance: `https:///api/graphql` - For GitHub Enterprise Cloud: `https://api.github.com/graphql` -2. To authenticate, open the authentication options menu and select **Bearer token**. Next, add your personal access token that you copied earlier. +2. To authenticate, open the authentication options menu and select **Bearer token**. Next, add your {% data variables.product.pat_generic %} that you copied earlier. - ![Permissions options for personal access token](/assets/images/developer/graphql/insomnia-base-url-and-pat.png) + ![Permissions options for {% data variables.product.pat_generic %}](/assets/images/developer/graphql/insomnia-base-url-and-pat.png) - ![Permissions options for personal access token](/assets/images/developer/graphql/insomnia-bearer-token-option.png) + ![Permissions options for {% data variables.product.pat_generic %}](/assets/images/developer/graphql/insomnia-bearer-token-option.png) 3. Include header information. - Add `Content-Type` as the header and `application/json` as the value. diff --git a/content/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards.md b/content/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards.md index ff2022dfe2..aa83f058df 100644 --- a/content/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards.md +++ b/content/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards.md @@ -19,7 +19,7 @@ allowTitleToDifferFromFilename: true {% data variables.projects.projects_v1_board_caps %} cards contain relevant metadata for issues and pull requests, like labels, assignees, the status, and who opened it. {% data reusables.project-management.edit-in-project %} -You can create notes within columns to serve as task reminders, references to issues and pull requests from any repository on {% data variables.product.product_location %}, or to add information related to the {% data variables.projects.projects_v1_board %}. You can create a reference card for another {% data variables.projects.projects_v1_board %} by adding a link to a note. If the note isn't sufficient for your needs, you can convert it to an issue. For more information on converting notes to issues, see "[Adding notes to a {% data variables.product.prodname_project_v1 %}](/articles/adding-notes-to-a-project-board)." +You can create notes within columns to serve as task reminders, references to issues and pull requests from any repository on {% data variables.location.product_location %}, or to add information related to the {% data variables.projects.projects_v1_board %}. You can create a reference card for another {% data variables.projects.projects_v1_board %} by adding a link to a note. If the note isn't sufficient for your needs, you can convert it to an issue. For more information on converting notes to issues, see "[Adding notes to a {% data variables.product.prodname_project_v1 %}](/articles/adding-notes-to-a-project-board)." Types of project boards: diff --git a/content/issues/planning-and-tracking-with-projects/automating-your-project/archiving-items-automatically.md b/content/issues/planning-and-tracking-with-projects/automating-your-project/archiving-items-automatically.md new file mode 100644 index 0000000000..2fd2f9073b --- /dev/null +++ b/content/issues/planning-and-tracking-with-projects/automating-your-project/archiving-items-automatically.md @@ -0,0 +1,53 @@ +--- +title: 'Archiving items automatically' +shortTitle: 'Archiving automatically' +intro: 'You can configure your project''s built-in workflows to automatically archive items that meet specific criteria.' +miniTocMaxHeadingLevel: 3 +versions: + feature: "projects-v2-auto-archive" +type: tutorial +topics: + - Projects +--- + +{% note %} + +**Note:** Built-in workflows are available as part of a limited beta. + +{% endnote %} + +## About automatically archiving items + +You can configure your project's built-in workflows to automatically archive items. Archiving items will help you stay below the limit of {% data variables.projects.item_limit %} items in each project. + +You can use the `is`, `reason`, and `last-updated` filters to specify when an item should be archived. + +When you enable automatic archiving for issues or pull requests, items in your project that already meet your criteria will also be archived. There may be some delay in archiving large numbers of items that already meet the criteria. + +Projects also have a limit on the number of archived items they can contain. Your project can contain up to {% data variables.projects.archived_item_limit %} archived items. For more information on permanently deleting items, see "[Deleting items +](/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project#deleting-items)." + +## Configuring automatic archiving in your project + +{% data reusables.projects.access-workflows %} +1. In the "Default workflows" list, click **Auto-archive items**. + + ![Screenshot showing auto archive workflows](/assets/images/help/projects-v2/archive-workflows.png) + +1. Next to **When**, check the item type(s) that you want to automatically archive. + + ![Screenshot showing the "when" configuration for a workflow](/assets/images/help/projects-v2/workflow-when-archive.png) + +1. Next to {% octicon "filter" aria-label="The filter icon" %}, type the filter criteria you want to use to automatically archive items. You can only use the `is`, `reason`, and `last-updated` filters. For more information about filter syntax, see "[Filtering projects](/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/filtering-projects)." + + ![Screenshot showing filter text area](/assets/images/help/projects-v2/auto-archive-filter.png) + +1. If the workflow is disabled, click the toggle next to **Off** to enable the workflow. + + ![Screenshot showing the "On/Off" control for a workflow](/assets/images/help/projects-v2/workflow-enable.png) + + +## Further reading + +* "[Archiving items from your project](/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project)" +* "[Using the built-in automations](/issues/planning-and-tracking-with-projects/automating-your-project/using-the-built-in-automations)" \ No newline at end of file diff --git a/content/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions.md b/content/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions.md index e58ee7f479..3b0e137b23 100644 --- a/content/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions.md +++ b/content/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions.md @@ -30,7 +30,7 @@ You may also want to use the **actions/add-to-project** workflow, which is maint {% note %} -**Note:** `GITHUB_TOKEN` is scoped to the repository level and cannot access {% data variables.projects.projects_v2 %}. To access {% data variables.projects.projects_v2 %} you can either create a {% data variables.product.prodname_github_app %} (recommended for organization projects) or a personal access token (recommended for user projects). Workflow examples for both approaches are shown below. +**Note:** `GITHUB_TOKEN` is scoped to the repository level and cannot access {% data variables.projects.projects_v2 %}. To access {% data variables.projects.projects_v2 %} you can either create a {% data variables.product.prodname_github_app %} (recommended for organization projects) or a {% data variables.product.pat_generic %} (recommended for user projects). Workflow examples for both approaches are shown below. {% endnote %} @@ -167,10 +167,10 @@ jobs: ``` -### Example workflow authenticating with a personal access token +### Example workflow authenticating with a {% data variables.product.pat_generic %} -1. Create a personal access token with the `project` and `repo` scopes. For more information, see "[Creating a personal access token](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)." -2. Save the personal access token as a secret in your repository or organization. +1. Create a {% data variables.product.pat_v1 %} with the `project` and `repo` scopes. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)." +2. Save the {% data variables.product.pat_generic %} as a secret in your repository or organization. 3. In the following workflow, replace `YOUR_TOKEN` with the name of the secret. Replace `YOUR_ORGANIZATION` with the name of your organization. For example, `octo-org`. Replace `YOUR_PROJECT_NUMBER` with your project number. To find the project number, look at the project URL. For example, `https://github.com/orgs/octo-org/projects/5` has a project number of 5. ```yaml{:copy} @@ -339,7 +339,7 @@ env: PROJECT_NUMBER: YOUR_PROJECT_NUMBER ``` -Personal access token: +{% data variables.product.pat_generic_caps %}: ```yaml env: @@ -353,7 +353,7 @@ env: Sets environment variables for this step.

-If you are using a personal access token, replace YOUR_TOKEN with the name of the secret that contains your personal access token. +If you are using a {% data variables.product.pat_generic %}, replace YOUR_TOKEN with the name of the secret that contains your {% data variables.product.pat_generic %}.

Replace YOUR_ORGANIZATION with the name of your organization. For example, octo-org. @@ -433,7 +433,7 @@ env: PR_ID: {% raw %}${{ github.event.pull_request.node_id }}{% endraw %} ``` -Personal access token: +{% data variables.product.pat_generic_caps %}: ```yaml env: @@ -504,7 +504,7 @@ env: GITHUB_TOKEN: {% raw %}${{ steps.generate_token.outputs.token }}{% endraw %} ``` -Personal access token: +{% data variables.product.pat_generic_caps %}: ```yaml env: diff --git a/content/issues/planning-and-tracking-with-projects/automating-your-project/index.md b/content/issues/planning-and-tracking-with-projects/automating-your-project/index.md index 0feea7fef0..129eff2126 100644 --- a/content/issues/planning-and-tracking-with-projects/automating-your-project/index.md +++ b/content/issues/planning-and-tracking-with-projects/automating-your-project/index.md @@ -11,5 +11,6 @@ children: - /using-the-built-in-automations - /using-the-api-to-manage-projects - /automating-projects-using-actions + - /archiving-items-automatically allowTitleToDifferFromFilename: true --- diff --git a/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md b/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md index 8c6927581a..afb973e02b 100644 --- a/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md +++ b/content/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects.md @@ -21,7 +21,7 @@ This article demonstrates how to use the GraphQL API to manage a project. For mo {% curl %} -In all of the following cURL examples, replace `TOKEN` with a token that has the `read:project` scope (for queries) or `project` scope (for queries and mutations). The token can be a personal access token for a user or an installation access token for a {% data variables.product.prodname_github_app %}. For more information about creating a personal access token, see "[Creating a personal access token](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)." For more information about creating an installation access token for a {% data variables.product.prodname_github_app %}, see "[Authenticating with {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps/authenticating-with-github-apps#authenticating-as-a-github-app)." +In all of the following cURL examples, replace `TOKEN` with a token that has the `read:project` scope (for queries) or `project` scope (for queries and mutations). The token can be a {% data variables.product.pat_v1 %} for a user or an installation access token for a {% data variables.product.prodname_github_app %}. For more information about creating a {% data variables.product.pat_generic %}, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)." For more information about creating an installation access token for a {% data variables.product.prodname_github_app %}, see "[Authenticating with {% data variables.product.prodname_github_apps %}](/developers/apps/building-github-apps/authenticating-with-github-apps#authenticating-as-a-github-app)." {% endcurl %} diff --git a/content/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-a-view.md b/content/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-a-view.md index c052704e53..1929b511b2 100644 --- a/content/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-a-view.md +++ b/content/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-a-view.md @@ -101,6 +101,26 @@ In the table layout, you can group items by a custom field value. When items are Alternatively, open the project command palette by pressing {% data variables.projects.command-palette-shortcut %} and start typing "Group by." +{% ifversion projects-v2-numeric-summary %} + +## Showing the sum of a number field + +You can configure a view to show the sum of one of more number fields, including a count of items in the group or column. For example, if you have a number field tracking the number of hours each item may take to complete, you can display of sum of those hours for each group or column. + +In board layout, field sums are displayed at the top of each column. In table layout, when you enable grouping by a field, field sums are included in each group's header. + +{% data reusables.projects.open-view-menu %} +1. Click {% octicon "number" aria-label="the number icon" %} **Field sum**. + + ![Screenshot showing the field sum menu item](/assets/images/help/projects-v2/field-sum-menu.png) + +1. Select the fields you want to include. + + ![Screenshot showing the field sum menu](/assets/images/help/projects-v2/field-sum-select-field.png) + + +{% endif %} + ## Setting the column field in board layout In the board layout, you choose any single select or iteration field for your columns. If you drag an item to a new column, the value of that column is applied to the dragged item. For example, if you use the "Status" field for your board columns and then drag an item with a status of `In progress` to the `Done` column, the status of the item will switch to `Done`. @@ -111,4 +131,20 @@ In the board layout, you choose any single select or iteration field for your co 1. Click the field you want to use. ![Screenshot showing the column field menu](/assets/images/help/projects-v2/column-field-menu.png) -Alternatively, open the project command palette by pressing {% data variables.projects.command-palette-shortcut %} and start typing "Column field by." \ No newline at end of file +Alternatively, open the project command palette by pressing {% data variables.projects.command-palette-shortcut %} and start typing "Column field by." + +{% ifversion projects-v2-column-visibility %} + +## Showing and hiding columns in board layout + +In the board layout, you can can choose which columns to display. The available columns are made up of the contents of your selected column field. + +1. In the board layout, scroll to the right of your columns, and click {% octicon "plus" aria-label="the plus icon" %}. + + ![Screenshot showing the plus symbol button](/assets/images/help/projects-v2/board-add-column.png) + +1. Select the columns you want to show. + + ![Screenshot showing the list of columns](/assets/images/help/projects-v2/board-select-columns.png) + +{% endif %} \ No newline at end of file diff --git a/content/issues/planning-and-tracking-with-projects/learning-about-projects/best-practices-for-projects.md b/content/issues/planning-and-tracking-with-projects/learning-about-projects/best-practices-for-projects.md index 7cb88aab8c..d427bed2f3 100644 --- a/content/issues/planning-and-tracking-with-projects/learning-about-projects/best-practices-for-projects.md +++ b/content/issues/planning-and-tracking-with-projects/learning-about-projects/best-practices-for-projects.md @@ -62,10 +62,12 @@ To prevent information from getting out of sync, maintain a single source of tru You can automate tasks to spend less time on busy work and more time on the project itself. The less you need to remember to do manually, the more likely your project will stay up to date. -{% data variables.product.prodname_projects_v2 %} offers built-in workflows. For example, when an issue is closed, you can automatically set the status to "Done." +{% data variables.product.prodname_projects_v2 %} offers built-in workflows. For example, when an issue is closed, you can automatically set the status to "Done." {% ifversion projects-v2-auto-archive %}You can also configure built-in workflows to automatically archive items when they meet certain criteria.{% endif %} Additionally, {% data variables.product.prodname_actions %} and the GraphQL API enable you to automate routine project management tasks. For example, to keep track of pull requests awaiting review, you can create a workflow that adds a pull request to a project and sets the status to "needs review"; this process can be automatically triggered when a pull request is marked as "ready for review." +- For more information about the built-in workflows, see "[Using the built-in automations](/issues/planning-and-tracking-with-projects/automating-your-project/using-the-built-in-automations)."{% ifversion projects-v2-auto-archive %} +- For more information about automatically archiving items, see "[Archiving items automatically](/issues/planning-and-tracking-with-projects/automating-your-project/archiving-items-automatically)."{% endif %} - For an example workflow, see "[Automating {% data variables.product.prodname_projects_v2 %} using Actions](/issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions)." - For more information about the API, see "[Using the API to manage {% data variables.product.prodname_projects_v2 %}](/issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects)." - For more information about {% data variables.product.prodname_actions %}, see ["{% data variables.product.prodname_actions %}](/actions)." diff --git a/content/issues/planning-and-tracking-with-projects/managing-items-in-your-project/adding-items-to-your-project.md b/content/issues/planning-and-tracking-with-projects/managing-items-in-your-project/adding-items-to-your-project.md index 788796e820..7fc55bb88e 100644 --- a/content/issues/planning-and-tracking-with-projects/managing-items-in-your-project/adding-items-to-your-project.md +++ b/content/issues/planning-and-tracking-with-projects/managing-items-in-your-project/adding-items-to-your-project.md @@ -15,7 +15,7 @@ Your project can track draft issues, issues, and pull requests. {% note %} -**Note:** A project can contain a maximum of 1,200 items and 10,000 archived items. +**Note:** A project can contain a maximum of {% data variables.projects.item_limit %} items and {% data variables.projects.archived_item_limit %} archived items. {% ifversion projects-v2-auto-archive %}To learn more about automatically archiving items when they meet specific criteria, see "[Archiving items automatically](/issues/planning-and-tracking-with-projects/automating-your-project/archiving-items-automatically)."{% endif %} {% endnote %} @@ -44,7 +44,7 @@ Your project can track draft issues, issues, and pull requests. #### Adding multiple issues or pull requests from a repository -1. On {% data variables.product.product_location %}, navigate to the repository that contains the issues or pull requests you want to add to your project. +1. On {% data variables.location.product_location %}, navigate to the repository that contains the issues or pull requests you want to add to your project. {% data reusables.repositories.sidebar-issue-pr %} 1. To the left of each issue title, select the issues that you want to add to your project. ![Screenshot showing checkbox to select issue or pull request](/assets/images/help/issues/select-issue-checkbox.png) diff --git a/content/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project.md b/content/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project.md index 10811dd4a7..d49c64ef7c 100644 --- a/content/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project.md +++ b/content/issues/planning-and-tracking-with-projects/managing-items-in-your-project/archiving-items-from-your-project.md @@ -13,7 +13,7 @@ allowTitleToDifferFromFilename: true ## Archiving items -You can archive an item to keep the context about the item in the project but remove it from the project views. +You can archive an item to keep the context about the item in the project but remove it from the project views. {% ifversion projects-v2-auto-archive %}You can also configure your project's built-in workflows to automatically archive items that meet certain criteria. For more information, see "[Archiving items automatically](/issues/planning-and-tracking-with-projects/automating-your-project/archiving-items-automatically)."{% endif %} {% data reusables.projects.select-an-item %} {% data reusables.projects.open-item-menu %} diff --git a/content/organizations/collaborating-with-groups-in-organizations/about-your-organizations-news-feed.md b/content/organizations/collaborating-with-groups-in-organizations/about-your-organizations-news-feed.md index 8800742b40..02f702fa56 100644 --- a/content/organizations/collaborating-with-groups-in-organizations/about-your-organizations-news-feed.md +++ b/content/organizations/collaborating-with-groups-in-organizations/about-your-organizations-news-feed.md @@ -21,7 +21,7 @@ An organization's news feed shows other people's activity on repositories owned ## Accessing your organization's news feed -1. {% data variables.product.signin_link %} to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. +1. {% data variables.product.signin_link %} to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. 2. Open your {% data reusables.user-settings.personal_dashboard %}. 3. Click the account context switcher in the upper-left corner of the page. ![Context switcher button in Enterprise](/assets/images/help/organizations/account_context_switcher.png) diff --git a/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/about-two-factor-authentication-and-saml-single-sign-on.md b/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/about-two-factor-authentication-and-saml-single-sign-on.md index 84fdefa98d..adb9d914e2 100644 --- a/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/about-two-factor-authentication-and-saml-single-sign-on.md +++ b/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/about-two-factor-authentication-and-saml-single-sign-on.md @@ -12,12 +12,12 @@ topics: shortTitle: 2FA & SAML single sign-on --- -Two-factor authentication (2FA) provides basic authentication for organization members. By enabling 2FA, organization administrators limit the likelihood that a member's account on {% data variables.product.product_location %} could be compromised. For more information on 2FA, see "[About two-factor authentication](/articles/about-two-factor-authentication)." +Two-factor authentication (2FA) provides basic authentication for organization members. By enabling 2FA, organization administrators limit the likelihood that a member's account on {% data variables.location.product_location %} could be compromised. For more information on 2FA, see "[About two-factor authentication](/articles/about-two-factor-authentication)." To add additional authentication measures, organization administrators can also [enable SAML single sign-on (SSO)](/articles/enabling-and-testing-saml-single-sign-on-for-your-organization) so that organization members must use single sign-on to access an organization. For more information on SAML SSO, see "[About identity and access management with SAML single sign-on](/articles/about-identity-and-access-management-with-saml-single-sign-on)." If both 2FA and SAML SSO are enabled, organization members must do the following: -- Use 2FA to log in to their account on {% data variables.product.product_location %} +- Use 2FA to log in to their account on {% data variables.location.product_location %} - Use single sign-on to access the organization - Use an authorized token for API or Git access and use single sign-on to authorize the token diff --git a/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization.md b/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization.md index 45f9c1ab2c..979337cd31 100644 --- a/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization.md +++ b/content/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization.md @@ -16,7 +16,7 @@ shortTitle: Manage SAML access ## About SAML access to your organization -When you enable SAML single sign-on for your organization, each organization member can link their external identity on your identity provider (IdP) to their existing account on {% data variables.product.product_location %}. To access your organization's resources on {% data variables.product.product_name %}, the member must have an active SAML session in their browser. To access your organization's resources using the API or Git, the member must use a personal access token or SSH key that the member has authorized for use with your organization. +When you enable SAML single sign-on for your organization, each organization member can link their external identity on your identity provider (IdP) to their existing account on {% data variables.location.product_location %}. To access your organization's resources on {% data variables.product.product_name %}, the member must have an active SAML session in their browser. To access your organization's resources using the API or Git, the member must use a {% data variables.product.pat_generic %} or SSH key that the member has authorized for use with your organization. You can view and revoke each member's linked identity, active sessions, and authorized credentials on the same page. diff --git a/content/organizations/index.md b/content/organizations/index.md index 2d696cbde5..4b9630ce3a 100644 --- a/content/organizations/index.md +++ b/content/organizations/index.md @@ -39,11 +39,11 @@ children: - /managing-peoples-access-to-your-organization-with-roles - /organizing-members-into-teams - /collaborating-with-your-team - - /managing-access-to-your-organizations-repositories + - /managing-user-access-to-your-organizations-repositories - /managing-access-to-your-organizations-project-boards - - /managing-access-to-your-organizations-apps + - /managing-programmatic-access-to-your-organization - /managing-organization-settings - - /restricting-access-to-your-organizations-data + - /managing-oauth-access-to-your-organizations-data - /keeping-your-organization-secure - /managing-saml-single-sign-on-for-your-organization - /granting-access-to-your-organization-with-saml-single-sign-on diff --git a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/index.md b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/index.md index 6c813260f9..de7f0460d3 100644 --- a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/index.md +++ b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/index.md @@ -16,6 +16,5 @@ children: - /restricting-email-notifications-for-your-organization - /reviewing-the-audit-log-for-your-organization - /accessing-compliance-reports-for-your-organization - - /reviewing-your-organizations-installed-integrations --- diff --git a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md index b63a8babc9..1bdf328430 100644 --- a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md +++ b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization.md @@ -39,6 +39,7 @@ To search for specific events, use the `action` qualifier in your query. Actions |------------------|-------------------{% ifversion fpt or ghec %} | [`account`](#account-category-actions) | Contains all activities related to your organization account. | [`advisory_credit`](#advisory_credit-category-actions) | Contains all activities related to crediting a contributor for a security advisory in the {% data variables.product.prodname_advisory_database %}. For more information, see "[About {% data variables.product.prodname_dotcom %} Security Advisories](/github/managing-security-vulnerabilities/about-github-security-advisories)." +| [`auto_approve_personal_access_token_requests`](#auto_approve_personal_access_token_requests-category-actions) | Contains activities related to your organization's approval policy for {% data variables.product.pat_v2 %}s. For more information, see "[Setting a {% data variables.product.pat_generic %} policy for your organization](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)." | [`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 or ghae %} @@ -63,10 +64,11 @@ To search for specific events, use the `action` qualifier in your query. Actions | [`org`](#org-category-actions) | Contains activities related to organization membership.{% ifversion ghec %} | [`org_credential_authorization`](#org_credential_authorization-category-actions) | Contains all activities related to authorizing credentials for use with SAML single sign-on.{% endif %}{% ifversion secret-scanning-audit-log-custom-patterns %} | [`org_secret_scanning_custom_pattern`](#org_secret_scanning_custom_pattern-category-actions) | Contains organization-level activities related to secret scanning custom patterns. For more information, see "[Defining custom patterns for secret scanning](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning)." {% endif %} -| [`organization_label`](#organization_label-category-actions) | Contains all activities related to default labels for repositories in your organization. +| [`organization_default_label`](#organization_default_label-category-actions) | Contains all activities related to default labels for repositories in your organization. | [`oauth_application`](#oauth_application-category-actions) | Contains all activities related to OAuth Apps. | [`packages`](#packages-category-actions) | Contains all activities related to {% data variables.product.prodname_registry %}.{% ifversion fpt or ghec %} | [`payment_method`](#payment_method-category-actions) | Contains all activities related to how your organization pays for GitHub.{% endif %} +| [`personal_access_token`](#personal_access_token-category-actions) | Contains activities related to {% data variables.product.pat_v2 %}s in your organization. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." | [`profile_picture`](#profile_picture-category-actions) | Contains all activities related to your organization's profile picture. | [`project`](#project-category-actions) | Contains all activities related to project boards. | [`protected_branch`](#protected_branch-category-actions) | Contains all activities related to protected branches. @@ -209,6 +211,17 @@ An overview of some of the most common actions that are recorded as events in th | `destroy` | Triggered when the administrator of a security advisory removes someone from the credit section. {% endif %} +{% ifversion pat-v2 %} + +### `auto_approve_personal_access_token_requests` category actions + +| Action | Description +|------------------|------------------- +| `disable` | Triggered when the organization must approve {% data variables.product.pat_v2 %}s before the tokens can access organization resources. For more information, see "[Setting a {% data variables.product.pat_generic %} policy for your organization](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)." +| `enable` | Triggered when {% data variables.product.pat_v2 %}s can access organization resources without prior approval. For more information, see "[Setting a {% data variables.product.pat_generic %} policy for your organization](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)." + +{% endif %} + {% ifversion fpt or ghec %} ### `billing` category actions @@ -442,6 +455,16 @@ For more information, see "[Managing the publication of {% data variables.produc {% endif %} +### `oauth_application` category actions + +| Action | Description +|------------------|------------------- +| `create` | Triggered when a new {% data variables.product.prodname_oauth_app %} is created. +| `destroy` | Triggered when an existing {% data variables.product.prodname_oauth_app %} is deleted. +| `reset_secret` | Triggered when an {% data variables.product.prodname_oauth_app %}'s client secret is reset. +| `revoke_tokens` | Triggered when an {% data variables.product.prodname_oauth_app %}'s user tokens are revoked. +| `transfer` | Triggered when an existing {% data variables.product.prodname_oauth_app %} is transferred to a new organization. + ### `org` category actions | Action | Description @@ -478,9 +501,15 @@ For more information, see "[Managing the publication of {% data variables.produc | `runner_group_updated` | Triggered when the configuration of a self-hosted runner group is changed. For more information, see "[Changing the access policy of a self-hosted runner group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#changing-the-access-policy-of-a-self-hosted-runner-group)." | `runner_group_runners_added` | Triggered when a self-hosted runner is added to a group. For more information, see [Moving a self-hosted runner to a group](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group). | `runner_group_runner_removed` | Triggered when the REST API is used to remove a self-hosted runner from a group. For more information, see "[Remove a self-hosted runner from a group for an organization](/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-organization)." -| `runner_group_runners_updated`| Triggered when a runner group's list of members is updated. For more information, see "[Set self-hosted runners in a group for an organization](/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization)."{% ifversion secret-scanning-audit-log-custom-patterns %} +| `runner_group_runners_updated`| Triggered when a runner group's list of members is updated. For more information, see "[Set self-hosted runners in a group for an organization](/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization)." +{%- ifversion code-security-audit-log-events %} +| `secret_scanning_push_protection_custom_message_disabled` | Triggered when an organization owner or admin disables the custom message triggered by an attempted push to a push-protected repository. For more information, see "[Protecting pushes with {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#enabling-secret-scanning-as-a-push-protection-for-an-organization)." +| `secret_scanning_push_protection_custom_message_enabled` | Triggered when an organization owner or admin enables the custom message triggered by an attempted push to a push-protected repository. For more information, see "[Protecting pushes with {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#enabling-secret-scanning-as-a-push-protection-for-an-organization)." +| `secret_scanning_push_protection_custom_message_updated` | Triggered when an organization owner or admin updates the custom message triggered by an attempted push to a push-protected repository. For more information, see "[Protecting pushes with {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/protecting-pushes-with-secret-scanning#enabling-secret-scanning-as-a-push-protection-for-an-organization)." +{%- endif %} +{%- ifversion secret-scanning-audit-log-custom-patterns %} | `secret_scanning_push_protection_disable ` | Triggered when an organization owner or person with admin access to the organization disables push protection for secret scanning. For more information, see "[Protecting pushes with secret scanning](/enterprise-cloud@latest/code-security/secret-scanning/protecting-pushes-with-secret-scanning)." -| `secret_scanning_push_protection_enable ` | Triggered when an organization owner or person with admin access to the organization enables push protection for secret scanning.{% endif %} +| `secret_scanning_push_protection_enable ` | Triggered when an organization owner or person with admin access to the organization enables push protection for {% data variables.product.prodname_secret_scanning %}.{%- endif %} | `self_hosted_runner_online` | Triggered when the runner application is started. Can only be viewed using the REST API; not visible in the UI or JSON/CSV export. For more information, see "[Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner)." | `self_hosted_runner_offline` | Triggered when the runner application is stopped. Can only be viewed using the REST API; not visible in the UI or JSON/CSV export. For more information, see "[Checking the status of a self-hosted runner](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners#checking-the-status-of-a-self-hosted-runner)."{% ifversion fpt or ghes or ghec %} | `self_hosted_runner_updated` | Triggered when the runner application is updated. Can be viewed using the REST API and the UI; not visible in the JSON/CSV export. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#about-self-hosted-runners)."{% endif %}{% ifversion fpt or ghec %} @@ -516,7 +545,7 @@ For more information, see "[Managing the publication of {% data variables.produc | `delete` | Triggered when a custom pattern is removed from secret scanning in an organization. For more information, see "[Defining custom patterns for secret scanning](/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning#removing-a-custom-pattern)." {% endif %} -### `organization_label` category actions +### `organization_default_label` category actions | Action | Description |------------------|------------------- @@ -524,16 +553,6 @@ For more information, see "[Managing the publication of {% data variables.produc | `update` | Triggered when a default label is edited. | `destroy` | Triggered when a default label is deleted. -### `oauth_application` category actions - -| Action | Description -|------------------|------------------- -| `create` | Triggered when a new {% data variables.product.prodname_oauth_app %} is created. -| `destroy` | Triggered when an existing {% data variables.product.prodname_oauth_app %} is deleted. -| `reset_secret` | Triggered when an {% data variables.product.prodname_oauth_app %}'s client secret is reset. -| `revoke_tokens` | Triggered when an {% data variables.product.prodname_oauth_app %}'s user tokens are revoked. -| `transfer` | Triggered when an existing {% data variables.product.prodname_oauth_app %} is transferred to a new organization. - ### `packages` category actions | Action | Description | @@ -555,6 +574,20 @@ For more information, see "[Managing the publication of {% data variables.produc {% endif %} +{% ifversion pat-v2 %} + +### `personal_access_token` category actions + +| Action | Description +|------------------|------------------- +| `access_granted` | Triggered when a {% data variables.product.pat_v2 %} is granted access to organization resources. For more information, see "[Managing requests for {% data variables.product.pat_generic %} in your organization](/organizations/managing-programmatic-access-to-your-organization/managing-requests-for-personal-access-tokens-in-your-organization)." +| `access_revoked` | Triggered when access to organization resources by a {% data variables.product.pat_v2 %} is revoked. The token can still read public organization resources. For more information, see "[Reviewing and revoking {% data variables.product.pat_generic %} in your organization](/organizations/managing-programmatic-access-to-your-organization/reviewing-and-revoking-personal-access-tokens-in-your-organization)." +| `request_cancelled` | Triggered when a member of the organization cancels a request for their {% data variables.product.pat_v2 %} to access organization resources. +| `request_created` | Triggered when a member of the organization creates a {% data variables.product.pat_v2 %} to access organization resources and the organization requires approval before a {% data variables.product.pat_v2 %} can access organization resources. For more information, see "[Managing requests for {% data variables.product.pat_generic %} in your organization](/organizations/managing-programmatic-access-to-your-organization/managing-requests-for-personal-access-tokens-in-your-organization)." +| `request_denied` | Triggered when a request for a {% data variables.product.pat_v2 %} to access organization resources is denied. For more information, see "[Managing requests for {% data variables.product.pat_generic %} in your organization](/organizations/managing-programmatic-access-to-your-organization/managing-requests-for-personal-access-tokens-in-your-organization)." + +{% endif %} + ### `profile_picture` category actions | Action | Description |------------------|------------------- diff --git a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md deleted file mode 100644 index a9be5867bc..0000000000 --- a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Reviewing your organization's installed integrations -intro: You can review the permission levels for your organization's installed integrations and configure each integration's access to organization repositories. -redirect_from: - - /articles/reviewing-your-organization-s-installed-integrations - - /articles/reviewing-your-organizations-installed-integrations - - /github/setting-up-and-managing-organizations-and-teams/reviewing-your-organizations-installed-integrations - - /organizations/keeping-your-organization-secure/reviewing-your-organizations-installed-integrations -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - Organizations - - Teams -shortTitle: Review installed integrations ---- - -{% data reusables.profile.access_org %} -{% data reusables.profile.org_settings %} -{% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %} -1. In the "Integrations" section of the sidebar, click **{% octicon "apps" aria-label="The apps icon" %} {% data variables.product.prodname_github_apps %}**. -{% else %} -1. In the left sidebar, click **Installed {% data variables.product.prodname_github_apps %}**. - ![Installed {% data variables.product.prodname_github_apps %} tab in the organization settings sidebar](/assets/images/help/organizations/org-settings-installed-github-apps.png) -{% endif %} -2. Next to the {% data variables.product.prodname_github_app %} you'd like to review, click **Configure**. - ![Configure button](/assets/images/help/organizations/configure-installed-integration-button.png) -6. Review the {% data variables.product.prodname_github_app %}'s permissions and repository access. - ![Option to give the {% data variables.product.prodname_github_app %} access to all repositories or specific repositories](/assets/images/help/organizations/toggle-integration-repo-access.png) - - To give the {% data variables.product.prodname_github_app %} access to all of your organization's repositories, select **All repositories**. - - To choose specific repositories to give the application access to, select **Only select repositories**, then type a repository name. -7. Click **Save**. diff --git a/content/organizations/managing-access-to-your-organizations-apps/index.md b/content/organizations/managing-access-to-your-organizations-apps/index.md deleted file mode 100644 index fd5509eb38..0000000000 --- a/content/organizations/managing-access-to-your-organizations-apps/index.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Managing access to your organization's apps -intro: 'As an organization owner, you can allow individual organization members to manage {% data variables.product.prodname_github_apps %} in your organization.' -redirect_from: - - /articles/managing-access-to-your-organization-s-apps - - /articles/managing-access-to-your-organizations-apps - - /github/setting-up-and-managing-organizations-and-teams/managing-access-to-your-organizations-apps -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - Organizations - - Teams -children: - - /adding-github-app-managers-in-your-organization - - /removing-github-app-managers-from-your-organization -shortTitle: Manage access to apps ---- - diff --git a/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md b/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md deleted file mode 100644 index 24fcd16b9f..0000000000 --- a/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Managing an individual's access to an organization repository -intro: You can manage a person's access to a repository owned by your organization. -redirect_from: - - /articles/managing-an-individual-s-access-to-an-organization-repository-early-access-program - - /articles/managing-an-individual-s-access-to-an-organization-repository - - /articles/managing-an-individuals-access-to-an-organization-repository - - /github/setting-up-and-managing-organizations-and-teams/managing-an-individuals-access-to-an-organization-repository -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - Organizations - - Teams -shortTitle: Manage individual access -permissions: People with admin access to a repository can manage access to the repository. ---- - -## About access to organization repositories - -When you remove a collaborator from a repository in your organization, the collaborator loses read and write access to the repository. If the repository is private and the collaborator has forked the repository, then their fork is also deleted, but the collaborator will still retain any local clones of your repository. - -{% data reusables.repositories.deleted_forks_from_private_repositories_warning %} - -{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} -## Managing an individual's access to an organization repository -You can give a person access to a repository or change a person's level of access to a repository in your repository settings. For more information, see "[Managing teams and people with access to your repository](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)." -{% else %} -## Giving a person access to a repository - -{% data reusables.repositories.navigate-to-repo %} -{% data reusables.repositories.sidebar-settings %} -{% data reusables.repositories.navigate-to-manage-access %} -{% data reusables.organizations.invite-teams-or-people %} -1. In the search field, start typing the name of the person to invite, then click a name in the list of matches. - ![Search field for typing the name of a team or person to invite to the repository](/assets/images/help/repository/manage-access-invite-search-field.png) -6. Under "Choose a role", select the repository role to assign the person, then click **Add NAME to REPOSITORY**. - ![Selecting permissions for the team or person](/assets/images/help/repository/manage-access-invite-choose-role-add.png) - -## Managing an individual's access to an organization repository - -{% data reusables.profile.access_org %} -{% data reusables.user-settings.access_org %} -{% data reusables.organizations.people %} -4. Click either **Members** or **Outside collaborators** to manage people with different types of access. ![Button to invite members or outside collaborators to an organization](/assets/images/help/organizations/select-outside-collaborators.png) -5. To the right of the name of the person you'd like to manage, use the {% octicon "gear" aria-label="The Settings gear" %} drop-down menu, and click **Manage**. - ![The manage access link](/assets/images/help/organizations/member-manage-access.png) -6. On the "Manage access" page, next to the repository, click **Manage access**. -![Manage access button for a repository](/assets/images/help/organizations/repository-manage-access.png) -7. Review the person's access to a given repository, such as whether they're a collaborator or have access to the repository via team membership. -![Repository access matrix for the user](/assets/images/help/organizations/repository-access-matrix-for-user.png) -{% endif %} -## Further reading - -{% ifversion fpt or ghec %}- "[Limiting interactions with your repository](/articles/limiting-interactions-with-your-repository)"{% endif %} -- "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)" diff --git a/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md b/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md deleted file mode 100644 index 039d6e4860..0000000000 --- a/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Managing team access to an organization repository -intro: 'You can give a team access to a repository, remove a team''s access to a repository, or change a team''s permission level for a repository.' -redirect_from: - - /articles/managing-team-access-to-an-organization-repository-early-access-program - - /articles/managing-team-access-to-an-organization-repository - - /github/setting-up-and-managing-organizations-and-teams/managing-team-access-to-an-organization-repository -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - Organizations - - Teams -shortTitle: Manage team access ---- - -People with admin access to a repository can manage team access to the repository. Team maintainers can remove a team's access to a repository if the team has direct access to it. If the team's access to the repository is inherited from a parent team, maintainers can choose to reset the current permission to match the parent team's permission. - -{% warning %} - -**Warnings:** -- You can change a team's permission level if the team has direct access to a repository. If the team's access to the repository is inherited from a parent team, you must change the parent team's access to the repository. -- If you add or remove repository access for a parent team, each of that parent's child teams will also receive or lose access to the repository. For more information, see "[About teams](/articles/about-teams)." - -{% endwarning %} - -## Giving a team access to a repository - -{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} -You can give a team access to a repository or change a team's level of access to a repository in your repository settings. For more information, see "[Managing teams and people with access to your repository](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository#inviting-a-team-or-person)." -{% else %} -{% data reusables.profile.access_org %} -{% data reusables.user-settings.access_org %} -{% data reusables.organizations.specific_team %} -{% data reusables.organizations.team-repositories-tab %} -5. Above the list of repositories, click **Add repository**. - ![The Add repository button](/assets/images/help/organizations/add-repositories-button.png) -6. Type the name of a repository, then click **Add repository to team**. - ![Repository search field](/assets/images/help/organizations/team-repositories-add.png) -7. Optionally, to the right of the repository name, use the drop-down menu and choose a different permission level for the team. - ![Repository access level dropdown](/assets/images/help/organizations/team-repositories-change-permission-level.png) -{% endif %} -## Removing a team's access to a repository - -{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} -You can remove a team's access to an organization repository in your repository settings. For more information, see "[Managing teams and people with access to your repository](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository#removing-access-for-a-team-or-person)." - -If a team has direct access to a repository, you can remove that team's access to the repository. If a team's access to the repository is inherited from a parent team, you must remove the repository from the parent team in order to remove the repository from child teams. - -{% data reusables.repositories.deleted_forks_from_private_repositories_warning %} - -{% else %} - -You can remove a team's access to a repository if the team has direct access to a repository. If a team's access to the repository is inherited from a parent team, you must remove the repository from the parent team in order to remove the repository from child teams. - -{% data reusables.repositories.deleted_forks_from_private_repositories_warning %} - -{% data reusables.profile.access_org %} -{% data reusables.user-settings.access_org %} -{% data reusables.organizations.specific_team %} -{% data reusables.organizations.team-repositories-tab %} -5. Select the repository or repositories you'd like to remove from the team. - ![List of team repositories with the checkboxes for some repositories selected](/assets/images/help/teams/select-team-repositories-bulk.png) -6. Above the list of repositories, use the drop-down menu, and click **Remove from team**. - ![Drop-down menu with the option to remove a repository from a team](/assets/images/help/teams/remove-team-repo-dropdown.png) -7. Review the repository or repositories that will be removed from the team, then click **Remove repositories**. - ![Modal box with a list of repositories that the team will no longer have access to](/assets/images/help/teams/confirm-remove-team-repos.png) -{% endif %} -## Further reading - -- "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)" diff --git a/content/organizations/managing-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository.md b/content/organizations/managing-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository.md deleted file mode 100644 index 2460a6e4a0..0000000000 --- a/content/organizations/managing-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Removing an outside collaborator from an organization repository -intro: Owners and repository admins can remove an outside collaborator's access to a repository. -redirect_from: - - /articles/removing-an-outside-collaborator-from-an-organization-repository - - /github/setting-up-and-managing-organizations-and-teams/removing-an-outside-collaborator-from-an-organization-repository -versions: - fpt: '*' - ghes: '*' - ghae: '*' - ghec: '*' -topics: - - Organizations - - Teams -shortTitle: Remove collaborator ---- - -{% ifversion fpt or ghec %} - -{% warning %} - -**Warning:** -- When removing an outside collaborator from a private repository, the paid license count does not automatically downgrade. To pay for fewer licenses after removing users from your organization, follow the steps in "[Downgrading your organization's paid seats](/articles/downgrading-your-organization-s-paid-seats)." - -- You are responsible for ensuring that people who have lost access to a repository delete any confidential information or intellectual property. - -{% endwarning %} - -{% endif %} - -While forks of private repositories are deleted when a collaborator is removed, the person will still retain any local clones of your repository. - -## Removing outside collaborators from all repositories in an organization - -{% data reusables.profile.access_org %} -{% data reusables.user-settings.access_org %} -{% data reusables.organizations.people %} -{% data reusables.organizations.people_tab_outside_collaborators %} -5. Select the outside collaborator or outside collaborators you'd like to remove from the organization. -![List of outside collaborators with two outside collaborators selected](/assets/images/help/teams/list-of-outside-collaborators-selected-bulk.png) -6. Above the list of outside collaborators, use the drop-down menu, and click **Remove from all repositories**. -![Drop-down menu with option to remove outside collaborators ](/assets/images/help/teams/user-bulk-management-options-for-outside-collaborators.png) -7. Review the outside collaborator or outside collaborators who will be removed from the organization, then click **Remove outside collaborators**. - ![List of outside collaborators who will be removed and Remove outside collaborators button](/assets/images/help/teams/confirm-remove-outside-collaborators-bulk.png) - -## Removing an outside collaborator from a particular repository in an organization - -If you only want to remove an outside collaborator from certain repositories in your organization, you can remove this person's access to one specific repository at a time. - -{% data reusables.profile.access_org %} -{% data reusables.user-settings.access_org %} -{% data reusables.organizations.people %} -{% data reusables.organizations.people_tab_outside_collaborators %} -5. To the right of the username of the person you want to remove, use the {% octicon "gear" aria-label="The Settings gear" %} drop-down menu, and click **Manage**. - ![Manage access button](/assets/images/help/organizations/member-manage-access.png) -6. To the right of the repository that you want to remove the outside collaborator from, click **Manage access**. -![Select manage access button next to a repository the outside collaborator has access to](/assets/images/help/organizations/second-manage-access-selection-for-collaborator.png) -7. To completely remove the outside collaborator's access to the repository, in the upper right corner, click **Remove access to this repository**. -![Remove access to this repository button](/assets/images/help/organizations/remove-access-to-this-repository.png) -8. To confirm, click **Remove access**. -![Confirm outside collaborator who will be removed from the repository](/assets/images/help/teams/confirm-remove-outside-collaborator-from-a-repository.png) - -{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} -You can also remove an outside collaborator from a repository in the access overview in your repository settings. For more information, see "[Managing teams and people with access to your repository](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository#removing-access-for-a-team-or-person)." -{% endif %} -## Further reading - -- "[Adding outside collaborators to repositories in your organization](/articles/adding-outside-collaborators-to-repositories-in-your-organization)" -- "[Converting an organization member to an outside collaborator](/articles/converting-an-organization-member-to-an-outside-collaborator)" diff --git a/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md b/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md index c9ebf87a04..99c980c99f 100644 --- a/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md +++ b/content/organizations/managing-git-access-to-your-organizations-repositories/about-ssh-certificate-authorities.md @@ -25,7 +25,7 @@ After you add an SSH CA to your organization or enterprise account, you can use For example, you can build an internal system that issues a new certificate to your developers every morning. Each developer can use their daily certificate to work on your organization's repositories on {% data variables.product.product_name %}. At the end of the day, the certificate can automatically expire, protecting your repositories if the certificate is later compromised. {% ifversion ghec %} -Organization members can use their signed certificates for authentication even if you've enforced SAML single sign-on. Unless you make SSH certificates a requirement, organization members can continue to use other means of authentication to access your organization's resources with Git, including their username and password, personal access tokens, and their own SSH keys. +Organization members can use their signed certificates for authentication even if you've enforced SAML single sign-on. Unless you make SSH certificates a requirement, organization members can continue to use other means of authentication to access your organization's resources with Git, including their username and password, {% data variables.product.pat_generic %}s, and their own SSH keys. {% endif %} Members will not be able to use their certificates to access forks of your repositories that are owned by their personal accounts. diff --git a/content/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization.md b/content/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization.md index 13d85da996..3228b6aa3f 100644 --- a/content/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization.md +++ b/content/organizations/managing-membership-in-your-organization/inviting-users-to-join-your-organization.md @@ -1,6 +1,6 @@ --- title: Inviting users to join your organization -intro: 'You can invite anyone to become a member of your organization using their username or email address for {% data variables.product.product_location %}.' +intro: 'You can invite anyone to become a member of your organization using their username or email address for {% data variables.location.product_location %}.' permissions: Organization owners can invite users to join an organization. redirect_from: - /articles/adding-or-inviting-members-to-a-team-in-an-organization diff --git a/content/organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions.md b/content/organizations/managing-oauth-access-to-your-organizations-data/about-oauth-app-access-restrictions.md similarity index 98% rename from content/organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions.md rename to content/organizations/managing-oauth-access-to-your-organizations-data/about-oauth-app-access-restrictions.md index a7aca41d2e..8926159ac5 100644 --- a/content/organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions.md +++ b/content/organizations/managing-oauth-access-to-your-organizations-data/about-oauth-app-access-restrictions.md @@ -5,6 +5,7 @@ redirect_from: - /articles/about-third-party-application-restrictions - /articles/about-oauth-app-access-restrictions - /github/setting-up-and-managing-organizations-and-teams/about-oauth-app-access-restrictions + - /organizations/restricting-access-to-your-organizations-data/about-oauth-app-access-restrictions versions: fpt: '*' ghec: '*' diff --git a/content/organizations/restricting-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md b/content/organizations/managing-oauth-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md similarity index 94% rename from content/organizations/restricting-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md rename to content/organizations/managing-oauth-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md index e50e56dd84..b2cd0858d6 100644 --- a/content/organizations/restricting-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md +++ b/content/organizations/managing-oauth-access-to-your-organizations-data/approving-oauth-apps-for-your-organization.md @@ -5,6 +5,7 @@ redirect_from: - /articles/approving-third-party-applications-for-your-organization - /articles/approving-oauth-apps-for-your-organization - /github/setting-up-and-managing-organizations-and-teams/approving-oauth-apps-for-your-organization + - /organizations/restricting-access-to-your-organizations-data/approving-oauth-apps-for-your-organization versions: fpt: '*' ghec: '*' diff --git a/content/organizations/restricting-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md b/content/organizations/managing-oauth-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md similarity index 89% rename from content/organizations/restricting-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md rename to content/organizations/managing-oauth-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md index da3f557b72..0eab5cddb3 100644 --- a/content/organizations/restricting-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md +++ b/content/organizations/managing-oauth-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization.md @@ -5,6 +5,7 @@ redirect_from: - /articles/denying-access-to-a-previously-approved-application-for-your-organization - /articles/denying-access-to-a-previously-approved-oauth-app-for-your-organization - /github/setting-up-and-managing-organizations-and-teams/denying-access-to-a-previously-approved-oauth-app-for-your-organization + - /organizations/restricting-access-to-your-organizations-data/denying-access-to-a-previously-approved-oauth-app-for-your-organization versions: fpt: '*' ghec: '*' diff --git a/content/organizations/restricting-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md b/content/organizations/managing-oauth-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md similarity index 92% rename from content/organizations/restricting-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md rename to content/organizations/managing-oauth-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md index 4931bc44cc..07d8812877 100644 --- a/content/organizations/restricting-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md +++ b/content/organizations/managing-oauth-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization.md @@ -5,6 +5,7 @@ redirect_from: - /articles/disabling-third-party-application-restrictions-for-your-organization - /articles/disabling-oauth-app-access-restrictions-for-your-organization - /github/setting-up-and-managing-organizations-and-teams/disabling-oauth-app-access-restrictions-for-your-organization + - /organizations/restricting-access-to-your-organizations-data/disabling-oauth-app-access-restrictions-for-your-organization versions: fpt: '*' ghec: '*' diff --git a/content/organizations/restricting-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md b/content/organizations/managing-oauth-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md similarity index 95% rename from content/organizations/restricting-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md rename to content/organizations/managing-oauth-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md index 5ad4a078f8..8ce3531c0c 100644 --- a/content/organizations/restricting-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md +++ b/content/organizations/managing-oauth-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization.md @@ -5,6 +5,7 @@ redirect_from: - /articles/enabling-third-party-application-restrictions-for-your-organization - /articles/enabling-oauth-app-access-restrictions-for-your-organization - /github/setting-up-and-managing-organizations-and-teams/enabling-oauth-app-access-restrictions-for-your-organization + - /organizations/restricting-access-to-your-organizations-data/enabling-oauth-app-access-restrictions-for-your-organization versions: fpt: '*' ghec: '*' diff --git a/content/organizations/restricting-access-to-your-organizations-data/index.md b/content/organizations/managing-oauth-access-to-your-organizations-data/index.md similarity index 86% rename from content/organizations/restricting-access-to-your-organizations-data/index.md rename to content/organizations/managing-oauth-access-to-your-organizations-data/index.md index 0aa5344884..a6eaaaca66 100644 --- a/content/organizations/restricting-access-to-your-organizations-data/index.md +++ b/content/organizations/managing-oauth-access-to-your-organizations-data/index.md @@ -1,10 +1,11 @@ --- -title: Restricting access to your organization's data +title: Managing OAuth access to your organization's data intro: '{% data variables.product.prodname_oauth_app %} access restrictions allow organization owners to restrict an untrusted app''s access to the organization''s data. Organization members can then use {% data variables.product.prodname_oauth_apps %} for their personal accounts while keeping organization data safe.' redirect_from: - /articles/restricting-access-to-your-organization-s-data - /articles/restricting-access-to-your-organizations-data - /github/setting-up-and-managing-organizations-and-teams/restricting-access-to-your-organizations-data + - /organizations/restricting-access-to-your-organizations-data versions: fpt: '*' ghec: '*' @@ -17,6 +18,6 @@ children: - /disabling-oauth-app-access-restrictions-for-your-organization - /approving-oauth-apps-for-your-organization - /denying-access-to-a-previously-approved-oauth-app-for-your-organization -shortTitle: Restrict access to organization data +shortTitle: Manage OAuth access --- diff --git a/content/organizations/managing-organization-settings/deleting-an-organization-account.md b/content/organizations/managing-organization-settings/deleting-an-organization-account.md index 30721df547..88ff35d2d9 100644 --- a/content/organizations/managing-organization-settings/deleting-an-organization-account.md +++ b/content/organizations/managing-organization-settings/deleting-an-organization-account.md @@ -31,7 +31,7 @@ shortTitle: Delete organization {% ifversion ghes %} {% note %} -**Note:** If necessary, a site administrator for {% data variables.product.product_location %} may be able to partially restore a deleted organization. For more information, see "[Restoring a deleted organization](/admin/user-management/managing-organizations-in-your-enterprise/restoring-a-deleted-organization)." +**Note:** If necessary, a site administrator for {% data variables.location.product_location %} may be able to partially restore a deleted organization. For more information, see "[Restoring a deleted organization](/admin/user-management/managing-organizations-in-your-enterprise/restoring-a-deleted-organization)." {% endnote %} {% endif %} diff --git a/content/organizations/managing-organization-settings/managing-the-default-branch-name-for-repositories-in-your-organization.md b/content/organizations/managing-organization-settings/managing-the-default-branch-name-for-repositories-in-your-organization.md index 67a4c82971..b181ccd22b 100644 --- a/content/organizations/managing-organization-settings/managing-the-default-branch-name-for-repositories-in-your-organization.md +++ b/content/organizations/managing-organization-settings/managing-the-default-branch-name-for-repositories-in-your-organization.md @@ -1,6 +1,6 @@ --- title: Managing the default branch name for repositories in your organization -intro: 'You can set the default branch name for repositories that members create in your organization on {% data variables.product.product_location %}.' +intro: 'You can set the default branch name for repositories that members create in your organization on {% data variables.location.product_location %}.' redirect_from: - /github/setting-up-and-managing-organizations-and-teams/managing-the-default-branch-name-for-repositories-in-your-organization permissions: Organization owners can manage the default branch name for new repositories in the organization. diff --git a/content/organizations/managing-access-to-your-organizations-apps/adding-github-app-managers-in-your-organization.md b/content/organizations/managing-programmatic-access-to-your-organization/adding-github-app-managers-in-your-organization.md similarity index 95% rename from content/organizations/managing-access-to-your-organizations-apps/adding-github-app-managers-in-your-organization.md rename to content/organizations/managing-programmatic-access-to-your-organization/adding-github-app-managers-in-your-organization.md index e12220689a..8a0de861fb 100644 --- a/content/organizations/managing-access-to-your-organizations-apps/adding-github-app-managers-in-your-organization.md +++ b/content/organizations/managing-programmatic-access-to-your-organization/adding-github-app-managers-in-your-organization.md @@ -4,6 +4,7 @@ intro: 'Organization owners can grant users the ability to manage some or all {% redirect_from: - /articles/adding-github-app-managers-in-your-organization - /github/setting-up-and-managing-organizations-and-teams/adding-github-app-managers-in-your-organization + - /organizations/managing-access-to-your-organizations-apps/adding-github-app-managers-in-your-organization versions: fpt: '*' ghes: '*' diff --git a/content/organizations/managing-programmatic-access-to-your-organization/index.md b/content/organizations/managing-programmatic-access-to-your-organization/index.md new file mode 100644 index 0000000000..5e9f8f8845 --- /dev/null +++ b/content/organizations/managing-programmatic-access-to-your-organization/index.md @@ -0,0 +1,26 @@ +--- +title: Managing programmatic access to your organization +intro: 'As an organization owner, you can control access by apps and {% data variables.product.pat_generic %}s to your organization.' +redirect_from: + - /articles/managing-access-to-your-organization-s-apps + - /articles/managing-access-to-your-organizations-apps + - /github/setting-up-and-managing-organizations-and-teams/managing-access-to-your-organizations-apps + - /organizations/managing-access-to-your-organizations-apps +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +topics: + - Organizations + - Teams +children: + - /adding-github-app-managers-in-your-organization + - /removing-github-app-managers-from-your-organization + - /reviewing-your-organizations-installed-integrations + - /setting-a-personal-access-token-policy-for-your-organization + - /managing-requests-for-personal-access-tokens-in-your-organization + - /reviewing-and-revoking-personal-access-tokens-in-your-organization +shortTitle: Manage programmatic access +--- + diff --git a/content/organizations/managing-programmatic-access-to-your-organization/managing-requests-for-personal-access-tokens-in-your-organization.md b/content/organizations/managing-programmatic-access-to-your-organization/managing-requests-for-personal-access-tokens-in-your-organization.md new file mode 100644 index 0000000000..7b569f041e --- /dev/null +++ b/content/organizations/managing-programmatic-access-to-your-organization/managing-requests-for-personal-access-tokens-in-your-organization.md @@ -0,0 +1,40 @@ +--- +title: Managing requests for personal access tokens in your organization +intro: Organization owners can approve or deny {% data variables.product.pat_v2 %}s that request access to their organization. +versions: + feature: pat-v2 +shortTitle: Manage token requests +--- + +{% data reusables.user-settings.pat-v2-org-opt-in %} + +## About {% data variables.product.pat_v2 %} requests + +When organization members create a {% data variables.product.pat_v2 %} to access resources owned by the organization, if the organization requires approval for {% data variables.product.pat_v2 %}s, then an organization owner must approve the token before it can be used to access any resources that are not public. For more information, see "[Setting a {% data variables.product.pat_generic %} policy for your organization](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)." + +{% data variables.product.company_short %} will notify organization owners with a daily email about all {% data variables.product.pat_v2 %}s that are awaiting approval. When a token is denied or approved, the user who created the token will receive an email notification. + +{% note %} + +**Note**: Only {% data variables.product.pat_v2 %}s, not {% data variables.product.pat_v1_plural %}, are subject to approval. Unless the organization has restricted access by {% data variables.product.pat_v1_plural %}, any {% data variables.product.pat_v1 %} can access organization resources without prior approval. For more information, see "[Setting a {% data variables.product.pat_generic %} policy for your organization](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)." + +{% endnote %} + +## Managing {% data variables.product.pat_v2 %} requests + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Pending requests**. If any tokens are pending approval for your organization, they will be displayed. +1. Click the name of the token that you want to approve or deny. +1. Review the access and permissions that the token is requesting. +1. To grant the token access to the organization, click **Approve**. To deny the token access to the organization, click **Deny**. +1. If you denied the request, in the confirmation box, optionally enter the reason that you denied the token. This reason will be shared in the notification that is sent to the token owner. Then, click **Deny**. + +Alternatively, you can approve or deny multiple tokens at once: + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Pending requests**. If any tokens are pending approval for your organization, they will be displayed. +1. Optionally, use the **Owner** and **Repository** dropdown menus to filter the requests by the member making the request. +1. Select each token that you want to approve or reject. +1. Select the **request selected...** dropdown menu and click **Approve...** or **Deny...**. diff --git a/content/organizations/managing-access-to-your-organizations-apps/removing-github-app-managers-from-your-organization.md b/content/organizations/managing-programmatic-access-to-your-organization/removing-github-app-managers-from-your-organization.md similarity index 95% rename from content/organizations/managing-access-to-your-organizations-apps/removing-github-app-managers-from-your-organization.md rename to content/organizations/managing-programmatic-access-to-your-organization/removing-github-app-managers-from-your-organization.md index 58f09cc972..b8b65ee124 100644 --- a/content/organizations/managing-access-to-your-organizations-apps/removing-github-app-managers-from-your-organization.md +++ b/content/organizations/managing-programmatic-access-to-your-organization/removing-github-app-managers-from-your-organization.md @@ -4,6 +4,7 @@ intro: 'Organization owners can revoke {% data variables.product.prodname_github redirect_from: - /articles/removing-github-app-managers-from-your-organization - /github/setting-up-and-managing-organizations-and-teams/removing-github-app-managers-from-your-organization + - /organizations/managing-access-to-your-organizations-apps/removing-github-app-managers-from-your-organization versions: fpt: '*' ghes: '*' diff --git a/content/organizations/managing-programmatic-access-to-your-organization/reviewing-and-revoking-personal-access-tokens-in-your-organization.md b/content/organizations/managing-programmatic-access-to-your-organization/reviewing-and-revoking-personal-access-tokens-in-your-organization.md new file mode 100644 index 0000000000..f7e7204b60 --- /dev/null +++ b/content/organizations/managing-programmatic-access-to-your-organization/reviewing-and-revoking-personal-access-tokens-in-your-organization.md @@ -0,0 +1,37 @@ +--- +title: Reviewing and revoking personal access tokens in your organization +intro: Organization owners can review the {% data variables.product.pat_v2 %}s that can access their organization. They can also revoke access of specific {% data variables.product.pat_v2 %}s. +versions: + feature: pat-v2 +shortTitle: Review token access +--- + +{% data reusables.user-settings.pat-v2-org-opt-in %} + +## About reviewing and revoking {% data variables.product.pat_v2 %}s + +Organization owners can view all {% data variables.product.pat_v2 %}s that can access resources owned by the organization. Organization owners can also revoke access by {% data variables.product.pat_v2 %}s. When a {% data variables.product.pat_v2 %} is revoked, SSH keys created by the token will continue to work and the token will still be able to read public resources within the organization. + +When a token is revoked, the user who created the token will receive an email notification. + +Organization owners can only view and revoke {% data variables.product.pat_v2 %}s, not {% data variables.product.pat_v1_plural %}. Unless the organization {% ifversion ghec or ghes or ghae %}or enterprise {% endif %}has restricted access by {% data variables.product.pat_v1_plural %}, any {% data variables.product.pat_v1 %} can access organization resources until the token expires. For more information about restricting access by {% data variables.product.pat_v1_plural %}, see "[Setting a {% data variables.product.pat_generic %} policy for your organization](/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)"{% ifversion ghec or ghes or ghae %} and "[Enforcing policies for {% data variables.product.pat_generic %}s in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-personal-access-tokens-in-your-enterprise)"{% endif %}. + +{% ifversion ghec %} Organization owners can also view and revoke {% data variables.product.pat_v1_plural %} if their organization requires SAML single-sign on. For more information, see "[Viewing and managing a user's SAML access to your enterprise](/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise#viewing-and-revoking-authorized-credentials)". For more information about using the REST API to do this, see "[List SAML SSO authorizations for an organization](/rest/orgs/orgs#list-saml-sso-authorizations-for-an-organization)" and "[Remove a SAML SSO authorization for an organization](/rest/orgs/orgs#remove-a-saml-sso-authorization-for-an-organization)."{% endif %} + +## Reviewing and revoking {% data variables.product.pat_v2 %}s + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Active tokens**. Any {% data variables.product.pat_v2 %}s that can access your organization will be displayed. +1. Click the name of the token that you want review or revoke. +1. Review the access and permissions that the token has. +1. To revoke access by the token to the organization, click **Revoke**. + +Alternatively, you can revoke multiple tokens at once: + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Active tokens**. Any {% data variables.product.pat_v2 %}s that can access your organization will be displayed. +1. Optionally, use the **Owner** dropdown to filter the tokens by the member who created the token. +1. Select each token that you want to revoke. +1. Select the **tokens selected...** dropdown menu and click **Revoke...**. diff --git a/translations/es-ES/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md b/content/organizations/managing-programmatic-access-to-your-organization/reviewing-your-organizations-installed-integrations.md similarity index 93% rename from translations/es-ES/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md rename to content/organizations/managing-programmatic-access-to-your-organization/reviewing-your-organizations-installed-integrations.md index a9be5867bc..d672e161f6 100644 --- a/translations/es-ES/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations.md +++ b/content/organizations/managing-programmatic-access-to-your-organization/reviewing-your-organizations-installed-integrations.md @@ -6,6 +6,7 @@ redirect_from: - /articles/reviewing-your-organizations-installed-integrations - /github/setting-up-and-managing-organizations-and-teams/reviewing-your-organizations-installed-integrations - /organizations/keeping-your-organization-secure/reviewing-your-organizations-installed-integrations + - /organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-your-organizations-installed-integrations versions: fpt: '*' ghes: '*' diff --git a/content/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization.md b/content/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization.md new file mode 100644 index 0000000000..d4d0b3f839 --- /dev/null +++ b/content/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization.md @@ -0,0 +1,57 @@ +--- +title: Setting a personal access token policy for your organization +intro: "Organization owners can control whether to allow {% data variables.product.pat_v2 %}s and {% data variables.product.pat_v1_plural %}, and can require approval for {% data variables.product.pat_v2 %}s." +versions: + feature: pat-v2 +shortTitle: Set a token policy +--- + +{% data reusables.user-settings.pat-v2-org-opt-in %} + +## Restricting access by {% data variables.product.pat_v2 %}s + +Organization owners can prevent {% data variables.product.pat_v2 %}s from accessing resources owned by the organization. {% data variables.product.pat_v2_caps %}s will still be able to read public resources within the organization. This setting only controls access by {% data variables.product.pat_v2 %}s, not {% data variables.product.pat_v1_plural %}. For more information about restricting access by {% data variables.product.pat_v1_plural %}, see "[Restricting access by {% data variables.product.pat_v1_plural %}](#restricting-access-by-personal-access-tokens-classic)" on this page. + +{% ifversion ghec or ghes or ghae %} If your organization is owned by an enterprise, and your enterprise owner has restricted access by {% data variables.product.pat_v2 %}s, then you cannot override the policy in your organization. For more information, see "[Enforcing policies for {% data variables.product.pat_generic %}s in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-personal-access-tokens-in-your-enterprise)."{% endif %} + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Settings**. +1. Under **{% data variables.product.pat_v2_caps %}s**, select the option that meets your needs: + - **Allow access via {% data variables.product.pat_v2 %}s**: {% data variables.product.pat_v2_caps %}s can access resources owned by the organization. + - **Restrict access via {% data variables.product.pat_v2 %}s**: {% data variables.product.pat_v2_caps %}s cannot access resources owned by the organization. SSH keys created by {% data variables.product.pat_v2 %}s will continue to work. +1. Click **Save**. + +## Enforcing an approval policy for {% data variables.product.pat_v2 %}s + +Organization owners can require approval for each {% data variables.product.pat_v2 %} that can access the organization. {% data variables.product.pat_v2_caps %}s will still be able to read public resources within the organization without approval. {% data variables.product.pat_v2_caps %}s created by organization owners will not need approval. + +{% ifversion ghec or ghes or ghae %} If your organization is owned by an enterprise, and your enterprise owner has set an approval policy for {% data variables.product.pat_v2 %}s, then you cannot override the policy in your organization. For more information, see "[Enforcing policies for {% data variables.product.pat_generic %}s in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-personal-access-tokens-in-your-enterprise)."{% endif %} + +{% note %} + +**Note**: Only {% data variables.product.pat_v2 %}s, not {% data variables.product.pat_v1_plural %}, are subject to approval. Unless the organization has restricted access by {% data variables.product.pat_v1_plural %}, any {% data variables.product.pat_v1 %} can access organization resources without prior approval. For more information, see "[Restricting access by {% data variables.product.pat_v1_plural %}](#restricting-access-by-personal-access-tokens-classic)" on this page. + +{% endnote %} + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Settings**. +1. Under **Require approval of {% data variables.product.pat_v2 %}s**, select the option that meets your needs: + - **Require administrator approval**: An organization owner must approve each {% data variables.product.pat_v2 %} that can access the organization. {% data variables.product.pat_v2_caps %}s created by organization owners will not need approval. + - **Do not require administrator approval**: {% data variables.product.pat_v2_caps %}s created by organization members can access resources in the organization without prior approval. +1. Click **Save**. + +## Restricting access by {% data variables.product.pat_v1_plural %} + +Organization owners can prevent {% data variables.product.pat_v1_plural %} from accessing resources owned by the organization. {% data variables.product.pat_v1_caps_plural %} will still be able to read public resources within the organization. This setting only controls access by {% data variables.product.pat_v1_plural %}, not {% data variables.product.pat_v2 %}s. For more information about restricting access by {% data variables.product.pat_v2 %}s, see "[Restricting access by {% data variables.product.pat_v2 %}s](#restricting-access-by-fine-grained-personal-access-tokens)" on this page. + +{% ifversion ghec or ghes or ghae %} If your organization is owned by an enterprise, and your enterprise owner has restricted access by {% data variables.product.pat_v1_plural %}, then you cannot override the policy in your organization. For more information, see "[Enforcing policies for {% data variables.product.pat_generic %}s in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-personal-access-tokens-in-your-enterprise)."{% endif %} + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the left sidebar, under **{% octicon "key" aria-label="The key icon" %} {% data variables.product.pat_generic_caps %}s**, click **Settings**. +1. Under **{% data variables.product.pat_v1_caps %}**, select the option that meets your needs: + - **Allow access via {% data variables.product.pat_v1_plural %}**: {% data variables.product.pat_v1_caps_plural %} can access resources owned by the organization. + - **Restrict access via {% data variables.product.pat_v1_plural %}**: {% data variables.product.pat_v1_caps_plural %} cannot access resources owned by the organization. SSH keys created by {% data variables.product.pat_v1_plural %} will continue to work. +1. Click **Save**. diff --git a/content/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on.md b/content/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on.md index 076f7265e3..a6056acced 100644 --- a/content/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on.md +++ b/content/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on.md @@ -30,9 +30,9 @@ For an organization, SAML SSO can be disabled, enabled but not enforced, or enab Members must periodically authenticate with your IdP to authenticate and gain access to your organization's resources. The duration of this login period is specified by your IdP and is generally 24 hours. This periodic login requirement limits the length of access and requires users to re-identify themselves to continue. -To access the organization's protected resources using the API and Git on the command line, members must authorize and authenticate with a personal access token or SSH key. For more information, see "[Authorizing a personal access token for use with SAML single sign-on](/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)" and "[Authorizing an SSH key for use with SAML single sign-on](/github/authenticating-to-github/authorizing-an-ssh-key-for-use-with-saml-single-sign-on)." +To access the organization's protected resources using the API and Git on the command line, members must authorize and authenticate with a {% data variables.product.pat_generic %} or SSH key. For more information, see "[Authorizing a {% data variables.product.pat_generic %} for use with SAML single sign-on](/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)" and "[Authorizing an SSH key for use with SAML single sign-on](/github/authenticating-to-github/authorizing-an-ssh-key-for-use-with-saml-single-sign-on)." -The first time a member uses SAML SSO to access your organization, {% data variables.product.prodname_dotcom %} automatically creates a record that links your organization, the member's account on {% data variables.product.product_location %}, and the member's account on your IdP. You can view and revoke the linked SAML identity, active sessions, and authorized credentials for members of your organization or enterprise account. For more information, see "[Viewing and managing a member's SAML access to your organization](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization)" and "[Viewing and managing a user's SAML access to your enterprise account](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise)." +The first time a member uses SAML SSO to access your organization, {% data variables.product.prodname_dotcom %} automatically creates a record that links your organization, the member's account on {% data variables.location.product_location %}, and the member's account on your IdP. You can view and revoke the linked SAML identity, active sessions, and authorized credentials for members of your organization or enterprise account. For more information, see "[Viewing and managing a member's SAML access to your organization](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization)" and "[Viewing and managing a user's SAML access to your enterprise account](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise)." If members are signed in with a SAML SSO session when they create a new repository, the default visibility of that repository is private. Otherwise, the default visibility is public. For more information on repository visibility, see "[About repositories](/repositories/creating-and-managing-repositories/about-repositories#about-repository-visibility)." diff --git a/content/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta.md b/content/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta.md index 9638ceaf1e..ce04ec7d36 100644 --- a/content/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta.md +++ b/content/organizations/managing-saml-single-sign-on-for-your-organization/configuring-saml-single-sign-on-and-scim-using-okta.md @@ -1,6 +1,6 @@ --- title: Configuring SAML single sign-on and SCIM using Okta -intro: 'You can use Security Assertion Markup Language (SAML) single sign-on (SSO) and System for Cross-domain Identity Management (SCIM) with Okta to automatically manage access to your organization on {% data variables.product.product_location %}.' +intro: 'You can use Security Assertion Markup Language (SAML) single sign-on (SSO) and System for Cross-domain Identity Management (SCIM) with Okta to automatically manage access to your organization on {% data variables.location.product_location %}.' redirect_from: - /github/setting-up-and-managing-organizations-and-teams/configuring-saml-single-sign-on-and-scim-using-okta permissions: Organization owners can configure SAML SSO and SCIM using Okta for an organization. @@ -14,20 +14,20 @@ shortTitle: Configure SAML & SCIM with Okta ## About SAML and SCIM with Okta -You can control access to your organization on {% data variables.product.product_location %} and other web applications from one central interface by configuring the organization to use SAML SSO and SCIM with Okta, an Identity Provider (IdP). +You can control access to your organization on {% data variables.location.product_location %} and other web applications from one central interface by configuring the organization to use SAML SSO and SCIM with Okta, an Identity Provider (IdP). {% data reusables.saml.ghec-only %} -SAML SSO controls and secures access to organization resources like repositories, issues, and pull requests. SCIM automatically adds, manages, and removes members' access to your organization on {% data variables.product.product_location %} when you make changes in Okta. For more information, see "[About identity and access management with SAML single sign-on](/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on)" and "[About SCIM for organizations](/organizations/managing-saml-single-sign-on-for-your-organization/about-scim-for-organizations)." +SAML SSO controls and secures access to organization resources like repositories, issues, and pull requests. SCIM automatically adds, manages, and removes members' access to your organization on {% data variables.location.product_location %} when you make changes in Okta. For more information, see "[About identity and access management with SAML single sign-on](/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on)" and "[About SCIM for organizations](/organizations/managing-saml-single-sign-on-for-your-organization/about-scim-for-organizations)." After you enable SCIM, the following provisioning features are available for any users that you assign your {% data variables.product.prodname_ghe_cloud %} application to in Okta. | Feature | Description | | --- | --- | -| Push New Users | When you create a new user in Okta, the user will receive an email to join your organization on {% data variables.product.product_location %}. | -| Push User Deactivation | When you deactivate a user in Okta, Okta will remove the user from your organization on {% data variables.product.product_location %}. | -| Push Profile Updates | When you update a user's profile in Okta, Okta will update the metadata for the user's membership in your organization on {% data variables.product.product_location %}. | -| Reactivate Users | When you reactivate a user in Okta, Okta will send an email invitation for the user to rejoin your organization on {% data variables.product.product_location %}. | +| Push New Users | When you create a new user in Okta, the user will receive an email to join your organization on {% data variables.location.product_location %}. | +| Push User Deactivation | When you deactivate a user in Okta, Okta will remove the user from your organization on {% data variables.location.product_location %}. | +| Push Profile Updates | When you update a user's profile in Okta, Okta will update the metadata for the user's membership in your organization on {% data variables.location.product_location %}. | +| Reactivate Users | When you reactivate a user in Okta, Okta will send an email invitation for the user to rejoin your organization on {% data variables.location.product_location %}. | Alternatively, you can configure SAML SSO for an enterprise using Okta. SCIM for enterprise accounts is only available with Enterprise Managed Users. For more information, see "[Configuring SAML single sign-on for your enterprise using Okta](/admin/identity-and-access-management/managing-iam-for-your-enterprise/configuring-saml-single-sign-on-for-your-enterprise-using-okta)" and "[Configuring SCIM provisioning for Enterprise Managed Users with Okta](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users-with-okta)." diff --git a/content/organizations/managing-saml-single-sign-on-for-your-organization/connecting-your-identity-provider-to-your-organization.md b/content/organizations/managing-saml-single-sign-on-for-your-organization/connecting-your-identity-provider-to-your-organization.md index 707edcc93a..a34395bb42 100644 --- a/content/organizations/managing-saml-single-sign-on-for-your-organization/connecting-your-identity-provider-to-your-organization.md +++ b/content/organizations/managing-saml-single-sign-on-for-your-organization/connecting-your-identity-provider-to-your-organization.md @@ -25,7 +25,7 @@ You can find the SAML and SCIM implementation details for your IdP in the IdP's - Okta [SAML](http://saml-doc.okta.com/SAML_Docs/How-to-Configure-SAML-2.0-for-Github-com.html) and [SCIM](http://developer.okta.com/standards/SCIM/) - OneLogin [SAML](https://onelogin.service-now.com/support?id=kb_article&sys_id=2929ddcfdbdc5700d5505eea4b9619c6) and [SCIM](https://onelogin.service-now.com/support?id=kb_article&sys_id=5aa91d03db109700d5505eea4b96197e) - PingOne [SAML](https://support.pingidentity.com/s/marketplace-integration/a7i1W0000004ID3QAM/github-connector) -- Shibboleth [SAML](https://wiki.shibboleth.net/confluence/display/IDP30/Home) +- Shibboleth [SAML](https://shibboleth.atlassian.net/wiki/spaces/IDP4/overview) {% note %} diff --git a/content/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management-for-your-organization.md b/content/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management-for-your-organization.md index db86f771c4..c98e6f9803 100644 --- a/content/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management-for-your-organization.md +++ b/content/organizations/managing-saml-single-sign-on-for-your-organization/troubleshooting-identity-and-access-management-for-your-organization.md @@ -79,7 +79,7 @@ This GraphQL query shows you the SAML `NameId`, the SCIM `UserName` and the {% d ``` ```shell -curl -X POST -H "Authorization: Bearer " -H "Content-Type: application/json" -d '{ "query": "{ organization(login: \"ORG\") { samlIdentityProvider { externalIdentities(first: 100) { pageInfo { endCursor startCursor hasNextPage } edges { cursor node { samlIdentity { nameId } scimIdentity {username} user { login } } } } } } }" }' https://api.github.com/graphql +curl -X POST -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" -d '{ "query": "{ organization(login: \"ORG\") { samlIdentityProvider { externalIdentities(first: 100) { pageInfo { endCursor startCursor hasNextPage } edges { cursor node { samlIdentity { nameId } scimIdentity {username} user { login } } } } } } }" }' https://api.github.com/graphql ``` For more information on using the GraphQL API, see: diff --git a/content/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md b/content/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md similarity index 84% rename from content/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md index 99f3938c99..2d18b5b055 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization.md @@ -4,6 +4,7 @@ intro: You can allow people who aren't members of your organization to access re redirect_from: - /articles/adding-outside-collaborators-to-repositories-in-your-organization - /github/setting-up-and-managing-organizations-and-teams/adding-outside-collaborators-to-repositories-in-your-organization + - /organizations/managing-access-to-your-organizations-repositories/adding-outside-collaborators-to-repositories-in-your-organization versions: fpt: '*' ghes: '*' @@ -29,7 +30,7 @@ An organization owner can restrict the ability to invite collaborators. For more {% endif %} {% ifversion ghes %} -Before you can add someone as an outside collaborator on a repository, the person must have a personal account on {% data variables.product.product_location %}. If your enterprise uses an external authentication system such as SAML or LDAP, the person you want to add must sign in through that system to create an account. If the person does not have access to the authentication system and built-in authentication is enabled for your enterprise, a site administrator can create an account for the person. For more information, see "[Configuring built-in authentication](/admin/identity-and-access-management/using-built-in-authentication/configuring-built-in-authentication)." +Before you can add someone as an outside collaborator on a repository, the person must have a personal account on {% data variables.location.product_location %}. If your enterprise uses an external authentication system such as SAML or LDAP, the person you want to add must sign in through that system to create an account. If the person does not have access to the authentication system and built-in authentication is enabled for your enterprise, a site administrator can create an account for the person. For more information, see "[Configuring built-in authentication](/admin/identity-and-access-management/using-built-in-authentication/configuring-built-in-authentication)." {% endif %} {% ifversion not ghae %} diff --git a/content/organizations/managing-access-to-your-organizations-repositories/canceling-an-invitation-to-become-an-outside-collaborator-in-your-organization.md b/content/organizations/managing-user-access-to-your-organizations-repositories/canceling-an-invitation-to-become-an-outside-collaborator-in-your-organization.md similarity index 91% rename from content/organizations/managing-access-to-your-organizations-repositories/canceling-an-invitation-to-become-an-outside-collaborator-in-your-organization.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/canceling-an-invitation-to-become-an-outside-collaborator-in-your-organization.md index b9132709d3..0168474dd6 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/canceling-an-invitation-to-become-an-outside-collaborator-in-your-organization.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/canceling-an-invitation-to-become-an-outside-collaborator-in-your-organization.md @@ -4,6 +4,7 @@ intro: You can cancel all invitations for a person to become an outside collabor permissions: Organization owners can cancel an invitation to become an outside collaborator in the organization. redirect_from: - /github/setting-up-and-managing-organizations-and-teams/canceling-an-invitation-to-become-an-outside-collaborator-in-your-organization + - /organizations/managing-access-to-your-organizations-repositories/canceling-an-invitation-to-become-an-outside-collaborator-in-your-organization versions: fpt: '*' ghec: '*' diff --git a/content/organizations/managing-access-to-your-organizations-repositories/converting-an-organization-member-to-an-outside-collaborator.md b/content/organizations/managing-user-access-to-your-organizations-repositories/converting-an-organization-member-to-an-outside-collaborator.md similarity index 95% rename from content/organizations/managing-access-to-your-organizations-repositories/converting-an-organization-member-to-an-outside-collaborator.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/converting-an-organization-member-to-an-outside-collaborator.md index 3c09d17585..b360a2442f 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/converting-an-organization-member-to-an-outside-collaborator.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/converting-an-organization-member-to-an-outside-collaborator.md @@ -1,10 +1,11 @@ --- title: Converting an organization member to an outside collaborator intro: 'If a current member of your organization only needs access to certain repositories, such as consultants or temporary employees, you can convert them to an outside collaborator.' -permissions: 'Organization owners can convert an organization member to an outside collaborator.' +permissions: Organization owners can convert an organization member to an outside collaborator. redirect_from: - /articles/converting-an-organization-member-to-an-outside-collaborator - /github/setting-up-and-managing-organizations-and-teams/converting-an-organization-member-to-an-outside-collaborator + - /organizations/managing-access-to-your-organizations-repositories/converting-an-organization-member-to-an-outside-collaborator versions: fpt: '*' ghes: '*' diff --git a/content/organizations/managing-access-to-your-organizations-repositories/converting-an-outside-collaborator-to-an-organization-member.md b/content/organizations/managing-user-access-to-your-organizations-repositories/converting-an-outside-collaborator-to-an-organization-member.md similarity index 95% rename from content/organizations/managing-access-to-your-organizations-repositories/converting-an-outside-collaborator-to-an-organization-member.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/converting-an-outside-collaborator-to-an-organization-member.md index 7332650e3b..a0300fa5a0 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/converting-an-outside-collaborator-to-an-organization-member.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/converting-an-outside-collaborator-to-an-organization-member.md @@ -4,6 +4,7 @@ intro: 'If you would like to give an outside collaborator on your organization'' redirect_from: - /articles/converting-an-outside-collaborator-to-an-organization-member - /github/setting-up-and-managing-organizations-and-teams/converting-an-outside-collaborator-to-an-organization-member + - /organizations/managing-access-to-your-organizations-repositories/converting-an-outside-collaborator-to-an-organization-member versions: fpt: '*' ghes: '*' diff --git a/content/organizations/managing-access-to-your-organizations-repositories/index.md b/content/organizations/managing-user-access-to-your-organizations-repositories/index.md similarity index 88% rename from content/organizations/managing-access-to-your-organizations-repositories/index.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/index.md index 94a30b7368..f4a331d164 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/index.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/index.md @@ -1,11 +1,12 @@ --- -title: Managing access to your organization's repositories +title: Managing user access to your organization's repositories intro: Organization owners can manage individual and team access to the organization's repositories. Team maintainers can also manage a team's repository access. redirect_from: - /articles/permission-levels-for-an-organization-repository - /articles/managing-access-to-your-organization-s-repositories - /articles/managing-access-to-your-organizations-repositories - /github/setting-up-and-managing-organizations-and-teams/managing-access-to-your-organizations-repositories + - /organizations/managing-access-to-your-organizations-repositories versions: fpt: '*' ghes: '*' @@ -26,6 +27,6 @@ children: - /converting-an-organization-member-to-an-outside-collaborator - /converting-an-outside-collaborator-to-an-organization-member - /reinstating-a-former-outside-collaborators-access-to-your-organization -shortTitle: Manage access to repositories +shortTitle: Manage user access to repos --- diff --git a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md similarity index 96% rename from translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md index 24fcd16b9f..dadefa9d9b 100644 --- a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository.md @@ -6,6 +6,7 @@ redirect_from: - /articles/managing-an-individual-s-access-to-an-organization-repository - /articles/managing-an-individuals-access-to-an-organization-repository - /github/setting-up-and-managing-organizations-and-teams/managing-an-individuals-access-to-an-organization-repository + - /organizations/managing-access-to-your-organizations-repositories/managing-an-individuals-access-to-an-organization-repository versions: fpt: '*' ghes: '*' diff --git a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md similarity index 97% rename from translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md index 039d6e4860..21961fa9b9 100644 --- a/translations/es-ES/content/organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository.md @@ -5,6 +5,7 @@ redirect_from: - /articles/managing-team-access-to-an-organization-repository-early-access-program - /articles/managing-team-access-to-an-organization-repository - /github/setting-up-and-managing-organizations-and-teams/managing-team-access-to-an-organization-repository + - /organizations/managing-access-to-your-organizations-repositories/managing-team-access-to-an-organization-repository versions: fpt: '*' ghes: '*' diff --git a/content/organizations/managing-access-to-your-organizations-repositories/reinstating-a-former-outside-collaborators-access-to-your-organization.md b/content/organizations/managing-user-access-to-your-organizations-repositories/reinstating-a-former-outside-collaborators-access-to-your-organization.md similarity index 90% rename from content/organizations/managing-access-to-your-organizations-repositories/reinstating-a-former-outside-collaborators-access-to-your-organization.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/reinstating-a-former-outside-collaborators-access-to-your-organization.md index dae3f85bf3..61ee135558 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/reinstating-a-former-outside-collaborators-access-to-your-organization.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/reinstating-a-former-outside-collaborators-access-to-your-organization.md @@ -5,6 +5,7 @@ redirect_from: - /articles/reinstating-a-former-outside-collaborator-s-access-to-your-organization - /articles/reinstating-a-former-outside-collaborators-access-to-your-organization - /github/setting-up-and-managing-organizations-and-teams/reinstating-a-former-outside-collaborators-access-to-your-organization + - /organizations/managing-access-to-your-organizations-repositories/reinstating-a-former-outside-collaborators-access-to-your-organization versions: fpt: '*' ghes: '*' @@ -34,7 +35,7 @@ When you reinstate a former outside collaborator, you can restore: **Tips**: - Only organization owners can reinstate outside collaborators' access to an organization.{% ifversion prevent-org-admin-add-outside-collaborator %} Enterprise owners may further restrict the ability to reinstate outside collaborators' access to enterprise owners only.{% endif %} For more information, see "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)." - - The reinstating a member flow on {% data variables.product.product_location %} may use the term "member" to describe reinstating an outside collaborator but if you reinstate this person and keep their previous privileges, they will only have their previous [outside collaborator permissions](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#outside-collaborators).{% ifversion fpt or ghec %} + - The reinstating a member flow on {% data variables.location.product_location %} may use the term "member" to describe reinstating an outside collaborator but if you reinstate this person and keep their previous privileges, they will only have their previous [outside collaborator permissions](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#outside-collaborators).{% ifversion fpt or ghec %} - If your organization has a paid per-user subscription, an unused license must be available before you can invite a new member to join the organization or reinstate a former organization member. For more information, see "[About per-user pricing](/articles/about-per-user-pricing)."{% endif %} {% endtip %} diff --git a/translations/pt-BR/content/organizations/managing-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository.md b/content/organizations/managing-user-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository.md similarity index 97% rename from translations/pt-BR/content/organizations/managing-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository.md index 2460a6e4a0..ddaf0f55fc 100644 --- a/translations/pt-BR/content/organizations/managing-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository.md @@ -4,6 +4,7 @@ intro: Owners and repository admins can remove an outside collaborator's access redirect_from: - /articles/removing-an-outside-collaborator-from-an-organization-repository - /github/setting-up-and-managing-organizations-and-teams/removing-an-outside-collaborator-from-an-organization-repository + - /organizations/managing-access-to-your-organizations-repositories/removing-an-outside-collaborator-from-an-organization-repository versions: fpt: '*' ghes: '*' diff --git a/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md b/content/organizations/managing-user-access-to-your-organizations-repositories/repository-roles-for-an-organization.md similarity index 99% rename from content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/repository-roles-for-an-organization.md index 84d478f3b6..57cae69dea 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/repository-roles-for-an-organization.md @@ -7,6 +7,7 @@ redirect_from: - /articles/repository-permission-levels-for-an-organization - /github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization - /organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization + - /organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization versions: fpt: '*' ghes: '*' diff --git a/content/organizations/managing-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization.md b/content/organizations/managing-user-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization.md similarity index 95% rename from content/organizations/managing-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization.md index 37d6bb05ca..32aceac691 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization.md @@ -4,6 +4,7 @@ intro: You can set base permissions for the repositories that an organization ow permissions: Organization owners can set base permissions for an organization. redirect_from: - /github/setting-up-and-managing-organizations-and-teams/setting-base-permissions-for-an-organization + - /organizations/managing-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization versions: fpt: '*' ghes: '*' diff --git a/content/organizations/managing-access-to-your-organizations-repositories/viewing-people-with-access-to-your-repository.md b/content/organizations/managing-user-access-to-your-organizations-repositories/viewing-people-with-access-to-your-repository.md similarity index 96% rename from content/organizations/managing-access-to-your-organizations-repositories/viewing-people-with-access-to-your-repository.md rename to content/organizations/managing-user-access-to-your-organizations-repositories/viewing-people-with-access-to-your-repository.md index 6c437bf3f1..4ef70d2e32 100644 --- a/content/organizations/managing-access-to-your-organizations-repositories/viewing-people-with-access-to-your-repository.md +++ b/content/organizations/managing-user-access-to-your-organizations-repositories/viewing-people-with-access-to-your-repository.md @@ -4,6 +4,7 @@ intro: 'You can view{% ifversion ghec or ghes or ghae %} and export{% endif %} a redirect_from: - /articles/viewing-people-with-access-to-your-repository - /github/setting-up-and-managing-organizations-and-teams/viewing-people-with-access-to-your-repository + - /organizations/managing-access-to-your-organizations-repositories/viewing-people-with-access-to-your-repository versions: fpt: '*' ghes: '*' diff --git a/content/organizations/organizing-members-into-teams/about-teams.md b/content/organizations/organizing-members-into-teams/about-teams.md index a48986bd53..02c9f5a658 100644 --- a/content/organizations/organizing-members-into-teams/about-teams.md +++ b/content/organizations/organizing-members-into-teams/about-teams.md @@ -27,7 +27,7 @@ For more information, see: {% ifversion ghes %} -You can also use LDAP Sync to synchronize {% data variables.product.product_location %} team members and team roles against your established LDAP groups. This lets you establish role-based access control for users from your LDAP server instead of manually within {% data variables.product.product_location %}. For more information, see "[Enabling LDAP Sync](/enterprise/admin/authentication/using-ldap#enabling-ldap-sync)." +You can also use LDAP Sync to synchronize {% data variables.location.product_location %} team members and team roles against your established LDAP groups. This lets you establish role-based access control for users from your LDAP server instead of manually within {% data variables.location.product_location %}. For more information, see "[Enabling LDAP Sync](/enterprise/admin/authentication/using-ldap#enabling-ldap-sync)." {% endif %} diff --git a/content/organizations/organizing-members-into-teams/synchronizing-a-team-with-an-identity-provider-group.md b/content/organizations/organizing-members-into-teams/synchronizing-a-team-with-an-identity-provider-group.md index b7a52fdaae..e4b9dcfbf5 100644 --- a/content/organizations/organizing-members-into-teams/synchronizing-a-team-with-an-identity-provider-group.md +++ b/content/organizations/organizing-members-into-teams/synchronizing-a-team-with-an-identity-provider-group.md @@ -68,7 +68,7 @@ To avoid unintentionally removing team members, visit the administrative portal You must authenticate using SAML SSO. For more information, see "[Authenticating with SAML single sign-on](/articles/authenticating-with-saml-single-sign-on)." {% elsif ghae %} -Before you can connect a {% data variables.product.product_name %} team with an IdP group, you must first configure user provisioning for {% data variables.product.product_location %} using a supported System for Cross-domain Identity Management (SCIM). For more information, see "[Configuring user provisioning for your enterprise](/admin/authentication/configuring-user-provisioning-for-your-enterprise)." +Before you can connect a {% data variables.product.product_name %} team with an IdP group, you must first configure user provisioning for {% data variables.location.product_location %} using a supported System for Cross-domain Identity Management (SCIM). For more information, see "[Configuring user provisioning for your enterprise](/admin/authentication/configuring-user-provisioning-for-your-enterprise)." Once user provisioning for {% data variables.product.product_name %} is configured using SCIM, you can assign the {% data variables.product.product_name %} application to every IdP group that you want to use on {% data variables.product.product_name %}. For more information, see [Configure automatic user provisioning to GitHub AE](https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/github-ae-provisioning-tutorial#step-5-configure-automatic-user-provisioning-to-github-ae) in the Microsoft Docs. {% endif %} diff --git a/content/packages/learn-github-packages/about-permissions-for-github-packages.md b/content/packages/learn-github-packages/about-permissions-for-github-packages.md index 68dd781bd9..8d4025e3d6 100644 --- a/content/packages/learn-github-packages/about-permissions-for-github-packages.md +++ b/content/packages/learn-github-packages/about-permissions-for-github-packages.md @@ -45,11 +45,13 @@ For more information, see "[Configuring a package's access control and visibilit ## About scopes and permissions for package registries -To use or manage a package hosted by a package registry, you must use a token with the appropriate scope, and your personal account must have appropriate permissions. +{% data reusables.package_registry.packages-classic-pat-only %} + +To use or manage a package hosted by a package registry, you must use a {% data variables.product.pat_v1 %} with the appropriate scope, and your personal account must have appropriate permissions. For example: -- To download and install packages from a repository, your token must have the `read:packages` scope, and your user account must have read permission. -- {% ifversion fpt or ghes or ghec %}To delete a package on {% data variables.product.product_name %}, your token must at least have the `delete:packages` and `read:packages` scope. The `repo` scope is also required for repo-scoped packages. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)."{% elsif ghae %}To delete a specified version of a package on {% data variables.product.product_name %}, your token must have the `delete:packages` and `repo` scope. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)."{% endif %} +- To download and install packages from a repository, your {% data variables.product.pat_v1 %} must have the `read:packages` scope, and your user account must have read permission. +- {% ifversion fpt or ghes or ghec %}To delete a package on {% data variables.product.product_name %}, your {% data variables.product.pat_v1 %} must at least have the `delete:packages` and `read:packages` scope. The `repo` scope is also required for repo-scoped packages. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)."{% elsif ghae %}To delete a specified version of a package on {% data variables.product.product_name %}, your {% data variables.product.pat_v1 %} must have the `delete:packages` and `repo` scope. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)."{% endif %} | Scope | Description | Required permission | | --- | --- | --- | @@ -58,12 +60,12 @@ For example: | `delete:packages` | {% ifversion fpt or ghes or ghec %} Delete packages from {% data variables.product.prodname_registry %} {% elsif ghae %} Delete specified versions of packages from {% data variables.product.prodname_registry %} {% endif %} | admin | | `repo` | Upload and delete packages (along with `write:packages`, or `delete:packages`) | write or admin | -When you create a {% data variables.product.prodname_actions %} workflow, you can use the `GITHUB_TOKEN` to publish and install packages in {% data variables.product.prodname_registry %} without needing to store and manage a personal access token. +When you create a {% data variables.product.prodname_actions %} workflow, you can use the `GITHUB_TOKEN` to publish and install packages in {% data variables.product.prodname_registry %} without needing to store and manage a {% data variables.product.pat_generic %}. For more information, see:{% ifversion fpt or ghec %} - "[Configuring a package’s access control and visibility](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)"{% endif %} - "[Publishing and installing a package with {% data variables.product.prodname_actions %}](/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions)" -- "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token/)" +- "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token/)" - "[Available scopes](/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/#available-scopes)" ## Maintaining access to packages in {% data variables.product.prodname_actions %} workflows @@ -75,7 +77,7 @@ For more conceptual background on {% data variables.product.prodname_actions %} ### Access tokens - To publish packages associated with the workflow repository, use `GITHUB_TOKEN`. -- To install packages associated with other private repositories that `GITHUB_TOKEN` can't access, use a personal access token +- To install packages associated with other private repositories that `GITHUB_TOKEN` can't access, use a {% data variables.product.pat_v1 %} For more information about `GITHUB_TOKEN` used in {% data variables.product.prodname_actions %} workflows, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#using-the-github_token-in-a-workflow)." diff --git a/content/packages/learn-github-packages/connecting-a-repository-to-a-package.md b/content/packages/learn-github-packages/connecting-a-repository-to-a-package.md index fcdeb9ed53..db786ab0a8 100644 --- a/content/packages/learn-github-packages/connecting-a-repository-to-a-package.md +++ b/content/packages/learn-github-packages/connecting-a-repository-to-a-package.md @@ -1,6 +1,6 @@ --- title: Connecting a repository to a package -intro: 'You can connect a repository to a container image on {% data variables.product.product_location %}.' +intro: 'You can connect a repository to a container image on {% data variables.location.product_location %}.' product: '{% data reusables.gated-features.packages %}' redirect_from: - /packages/managing-container-images-with-github-container-registry/connecting-a-repository-to-a-container-image @@ -38,7 +38,7 @@ By connecting a repository to a package, the package landing page will show info ```shell LABEL org.opencontainers.image.source=https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPO ``` - For example, if you're the user `monalisa` and own `my-repo`, and {% data variables.product.product_location %} hostname is `github.companyname.com`, you would add this line to your Dockerfile: + For example, if you're the user `monalisa` and own `my-repo`, and {% data variables.location.product_location %} hostname is `github.companyname.com`, you would add this line to your Dockerfile: ```shell LABEL org.opencontainers.image.source=https://{% ifversion fpt or ghec %}github.com{% else %}{% data reusables.package_registry.container-registry-example-hostname %}{% endif %}/monalisa/my-repo ``` diff --git a/content/packages/learn-github-packages/deleting-and-restoring-a-package.md b/content/packages/learn-github-packages/deleting-and-restoring-a-package.md index f3595a34ff..cb8b157547 100644 --- a/content/packages/learn-github-packages/deleting-and-restoring-a-package.md +++ b/content/packages/learn-github-packages/deleting-and-restoring-a-package.md @@ -40,6 +40,8 @@ On {% data variables.product.prodname_dotcom %}, you can also restore an entire {% ifversion fpt or ghec or ghes %} ## Packages API support +{% data reusables.package_registry.packages-classic-pat-only %} + {% ifversion fpt or ghec %} You can use the REST API to manage your packages. For more information, see the "[{% data variables.product.prodname_registry %} API](/rest/reference/packages)." @@ -92,7 +94,7 @@ For packages that inherit their permissions and access from repositories, you ca {% data reusables.package_registry.no-graphql-to-delete-packages %}{% ifversion fpt or ghec %} You can however use the REST API. For more information, see the "[{% data variables.product.prodname_registry %} API](/rest/reference/packages)."{% endif %} -Use the `deletePackageVersion` mutation in the GraphQL API. You must use a token with the `read:packages`, `delete:packages`, and `repo` scopes. For more information about tokens, see "[About {% data variables.product.prodname_registry %}](/packages/publishing-and-managing-packages/about-github-packages#authenticating-to-github-packages)." +Use the `deletePackageVersion` mutation in the GraphQL API. You must use a {% data variables.product.pat_v1 %} with the `read:packages`, `delete:packages`, and `repo` scopes. For more information about {% data variables.product.pat_v1_plural %}, see "[About {% data variables.product.prodname_registry %}](/packages/publishing-and-managing-packages/about-github-packages#authenticating-to-github-packages)." The following example demonstrates how to delete a package version, using a `packageVersionId` of `MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg`. @@ -104,7 +106,7 @@ curl -X POST \ HOSTNAME/graphql ``` -To find all of the private packages you have published to {% data variables.product.prodname_registry %}, along with the version IDs for the packages, you can use the `packages` connection through the `repository` object. You will need a token with the `read:packages` and `repo` scopes. For more information, see the [`packages`](/graphql/reference/objects#repository) connection or the [`PackageOwner`](/graphql/reference/interfaces#packageowner) interface. +To find all of the private packages you have published to {% data variables.product.prodname_registry %}, along with the version IDs for the packages, you can use the `packages` connection through the `repository` object. You will need a {% data variables.product.pat_v1 %} with the `read:packages` and `repo` scopes. For more information, see the [`packages`](/graphql/reference/objects#repository) connection or the [`PackageOwner`](/graphql/reference/interfaces#packageowner) interface. For more information about the `deletePackageVersion` mutation, see "[`deletePackageVersion`](/graphql/reference/mutations#deletepackageversion)." diff --git a/content/packages/learn-github-packages/installing-a-package.md b/content/packages/learn-github-packages/installing-a-package.md index a3523e6ab3..da7cd8260f 100644 --- a/content/packages/learn-github-packages/installing-a-package.md +++ b/content/packages/learn-github-packages/installing-a-package.md @@ -19,7 +19,7 @@ versions: ## About package installation -You can search on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} to find packages in {% data variables.product.prodname_registry %} that you can install in your own project. For more information, see "[Searching {% data variables.product.prodname_registry %} for packages](/search-github/searching-on-github/searching-for-packages)." +You can search on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} to find packages in {% data variables.product.prodname_registry %} that you can install in your own project. For more information, see "[Searching {% data variables.product.prodname_registry %} for packages](/search-github/searching-on-github/searching-for-packages)." After you find a package, you can read the package's description and installation and usage instructions on the package page. diff --git a/content/packages/learn-github-packages/introduction-to-github-packages.md b/content/packages/learn-github-packages/introduction-to-github-packages.md index 530f6d7efe..4537c6fe1d 100644 --- a/content/packages/learn-github-packages/introduction-to-github-packages.md +++ b/content/packages/learn-github-packages/introduction-to-github-packages.md @@ -101,7 +101,7 @@ For more information about Docker and the {% data variables.product.prodname_con ## Managing packages {% ifversion fpt or ghec %} -You can delete a package in the {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} user interface or using the REST API. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)" and the "[{% data variables.product.prodname_registry %} API](/rest/reference/packages)." +You can delete a package in the {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} user interface or using the REST API. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)" and the "[{% data variables.product.prodname_registry %} API](/rest/reference/packages)." {% data reusables.package_registry.no-graphql-to-delete-packages %} {% endif %} @@ -114,7 +114,7 @@ You can delete a private or public package in the {% data variables.product.prod You can delete a version of a package in the {% data variables.product.product_name %} user interface or using the GraphQL API. {% endif %} -When you use the GraphQL API to query and delete private packages, you must use the same token you use to authenticate to {% data variables.product.prodname_registry %}. +When you use the GraphQL API to query and delete private packages, you must use the same {% data variables.product.pat_v1 %} you use to authenticate to {% data variables.product.prodname_registry %}. For more information, see {% ifversion ghes or ghae %}"[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)" and {% endif %}"[Forming calls with GraphQL](/graphql/guides/forming-calls-with-graphql)." diff --git a/content/packages/learn-github-packages/publishing-a-package.md b/content/packages/learn-github-packages/publishing-a-package.md index d0f92d9ccb..57496eecf2 100644 --- a/content/packages/learn-github-packages/publishing-a-package.md +++ b/content/packages/learn-github-packages/publishing-a-package.md @@ -28,10 +28,12 @@ If a new version of a package fixes a security vulnerability, you should publish ## Publishing a package +{% data reusables.package_registry.packages-classic-pat-only %} + You can publish a package to {% data variables.product.prodname_registry %} using any {% ifversion fpt or ghae or ghec %}supported package client{% else %}package type enabled for your instance{% endif %} by following the same general guidelines. -1. Create or use an existing access token with the appropriate scopes for the task you want to accomplish. For more information, see "[About permissions for {% data variables.product.prodname_registry %}](/packages/learn-github-packages/about-permissions-for-github-packages)." -2. Authenticate to {% data variables.product.prodname_registry %} using your access token and the instructions for your package client. +1. Create or use an existing {% data variables.product.pat_v1 %} with the appropriate scopes for the task you want to accomplish. For more information, see "[About permissions for {% data variables.product.prodname_registry %}](/packages/learn-github-packages/about-permissions-for-github-packages)." +2. Authenticate to {% data variables.product.prodname_registry %} using your {% data variables.product.pat_v1 %} and the instructions for your package client. 3. Publish the package using the instructions for your package client. For instructions specific to your package client, see "[Working with a GitHub Packages registry](/packages/working-with-a-github-packages-registry)." diff --git a/content/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions.md b/content/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions.md index 34d324af49..a4dbfcc69a 100644 --- a/content/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions.md +++ b/content/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions.md @@ -32,7 +32,7 @@ You can extend the CI and CD capabilities of your repository by publishing or in ### Authenticating to package registries on {% data variables.product.prodname_dotcom %} -{% ifversion fpt or ghec %}If you want your workflow to authenticate to {% data variables.product.prodname_registry %} to access a package registry other than the {% data variables.product.prodname_container_registry %} on {% data variables.product.product_location %}, then{% else %}To authenticate to package registries on {% data variables.product.product_name %},{% endif %} we recommend using the `GITHUB_TOKEN` that {% data variables.product.product_name %} automatically creates for your repository when you enable {% data variables.product.prodname_actions %} instead of a personal access token for authentication. You should set the permissions for this access token in the workflow file to grant read access for the `contents` scope and write access for the `packages` scope. For forks, the `GITHUB_TOKEN` is granted read access for the parent repository. For more information, see "[Authenticating with the GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)." +{% ifversion fpt or ghec %}If you want your workflow to authenticate to {% data variables.product.prodname_registry %} to access a package registry other than the {% data variables.product.prodname_container_registry %} on {% data variables.location.product_location %}, then{% else %}To authenticate to package registries on {% data variables.product.product_name %},{% endif %} we recommend using the `GITHUB_TOKEN` that {% data variables.product.product_name %} automatically creates for your repository when you enable {% data variables.product.prodname_actions %} instead of a {% data variables.product.pat_generic %} for authentication. You should set the permissions for this access token in the workflow file to grant read access for the `contents` scope and write access for the `packages` scope. For forks, the `GITHUB_TOKEN` is granted read access for the parent repository. For more information, see "[Authenticating with the GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)." You can reference the `GITHUB_TOKEN` in your workflow file using the {% raw %}`{{secrets.GITHUB_TOKEN}}`{% endraw %} context. For more information, see "[Authenticating with the GITHUB_TOKEN](/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token)." @@ -53,7 +53,7 @@ When you enable GitHub Actions, GitHub installs a GitHub App on your repository. The {% data variables.packages.prodname_ghcr_and_npm_registry_full %} allows users to create and administer packages as free-standing resources at the organization level. Packages can be owned by an organization or personal account and you can customize access to each of your packages separately from repository permissions. -All workflows accessing the {% data variables.packages.prodname_ghcr_and_npm_registry %} should use the `GITHUB_TOKEN` instead of a personal access token. For more information about security best practices, see "[Security hardening for GitHub Actions](/actions/learn-github-actions/security-hardening-for-github-actions#using-secrets)." +All workflows accessing the {% data variables.packages.prodname_ghcr_and_npm_registry %} should use the `GITHUB_TOKEN` instead of a {% data variables.product.pat_generic %}. For more information about security best practices, see "[Security hardening for GitHub Actions](/actions/learn-github-actions/security-hardening-for-github-actions#using-secrets)." ## Default permissions and access settings for containers modified through workflows @@ -484,13 +484,13 @@ Installing packages hosted by {% data variables.product.prodname_registry %} thr {% data reusables.package_registry.actions-configuration %} {% ifversion fpt or ghec %} -## Upgrading a workflow that accesses a registry using a PAT +## Upgrading a workflow that accesses a registry using a {% data variables.product.pat_generic %} -The {% data variables.packages.prodname_ghcr_and_npm_registry %} support the `GITHUB_TOKEN` for easy and secure authentication in your workflows. If your workflow is using a personal access token (PAT) to authenticate to the registry, then we highly recommend you update your workflow to use the `GITHUB_TOKEN`. +The {% data variables.packages.prodname_ghcr_and_npm_registry %} support the `GITHUB_TOKEN` for easy and secure authentication in your workflows. If your workflow is using a {% data variables.product.pat_generic %} to authenticate to the registry, then we highly recommend you update your workflow to use the `GITHUB_TOKEN`. For more information about the `GITHUB_TOKEN`, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#using-the-github_token-in-a-workflow)." -Using the `GITHUB_TOKEN` instead of a PAT, which includes the `repo` scope, increases the security of your repository as you don't need to use a long-lived PAT that offers unnecessary access to the repository where your workflow is run. For more information about security best practices, see "[Security hardening for GitHub Actions](/actions/learn-github-actions/security-hardening-for-github-actions#using-secrets)." +Using the `GITHUB_TOKEN` instead of a {% data variables.product.pat_v1 %}, which includes the `repo` scope, increases the security of your repository as you don't need to use a long-lived {% data variables.product.pat_generic %} that offers unnecessary access to the repository where your workflow is run. For more information about security best practices, see "[Security hardening for GitHub Actions](/actions/learn-github-actions/security-hardening-for-github-actions#using-secrets)." 1. Navigate to your package landing page. 1. In the left sidebar, click **Actions access**. @@ -504,7 +504,7 @@ Using the `GITHUB_TOKEN` instead of a PAT, which includes the `repo` scope, incr {% endnote %} 1. Optionally, using the "role" drop-down menu, select the default access level that you'd like the repository to have to your container image. ![Permission access levels to give to repositories](/assets/images/help/package-registry/repository-permission-options-for-package-access-through-actions.png) -1. Open your workflow file. On the line where you log in to the registry, replace your PAT with {% raw %}`${{ secrets.GITHUB_TOKEN }}`{% endraw %}. +1. Open your workflow file. On the line where you log in to the registry, replace your {% data variables.product.pat_generic %} with {% raw %}`${{ secrets.GITHUB_TOKEN }}`{% endraw %}. For example, this workflow publishes a Docker image to the {% data variables.product.prodname_container_registry %} and uses {% raw %}`${{ secrets.GITHUB_TOKEN }}`{% endraw %} to authenticate. @@ -544,7 +544,7 @@ jobs: run: docker build . --file Dockerfile --tag $IMAGE_NAME --label "runnumber=${GITHUB_RUN_ID}" - name: Log in to registry - # This is where you will update the PAT to GITHUB_TOKEN + # This is where you will update the {% data variables.product.pat_generic %} to GITHUB_TOKEN run: echo "{% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Push image diff --git a/content/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry.md b/content/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry.md index b21d1a89c5..400f954e6d 100644 --- a/content/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry.md +++ b/content/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry.md @@ -1,6 +1,6 @@ --- title: Migrating to the Container registry from the Docker registry -intro: '{% ifversion docker-ghcr-enterprise-migration %}An enterprise owner can{% else %}{% data variables.product.company_short %} will{% endif %} migrate Docker images previously stored in the Docker registry on {% data variables.product.product_location %} to the {% data variables.product.prodname_container_registry %}.' +intro: '{% ifversion docker-ghcr-enterprise-migration %}An enterprise owner can{% else %}{% data variables.product.company_short %} will{% endif %} migrate Docker images previously stored in the Docker registry on {% data variables.location.product_location %} to the {% data variables.product.prodname_container_registry %}.' product: '{% data reusables.gated-features.packages %}' redirect_from: - /packages/getting-started-with-github-container-registry/migrating-to-github-container-registry-for-docker-images diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry.md index 724f57e18d..733136372b 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry.md @@ -27,15 +27,15 @@ shortTitle: Apache Maven registry {% data reusables.package_registry.authenticate-packages-github-token %} -### Authenticating with a personal access token +### Authenticating with a {% data variables.product.pat_generic %} {% data reusables.package_registry.required-scopes %} -You can authenticate to {% data variables.product.prodname_registry %} with Apache Maven by editing your *~/.m2/settings.xml* file to include your personal access token. Create a new *~/.m2/settings.xml* file if one doesn't exist. +You can authenticate to {% data variables.product.prodname_registry %} with Apache Maven by editing your *~/.m2/settings.xml* file to include your {% data variables.product.pat_v1 %}. Create a new *~/.m2/settings.xml* file if one doesn't exist. -In the `servers` tag, add a child `server` tag with an `id`, replacing *USERNAME* with your {% data variables.product.prodname_dotcom %} username, and *TOKEN* with your personal access token. +In the `servers` tag, add a child `server` tag with an `id`, replacing *USERNAME* with your {% data variables.product.prodname_dotcom %} username, and *TOKEN* with your {% data variables.product.pat_generic %}. -In the `repositories` tag, configure a repository by mapping the `id` of the repository to the `id` you added in the `server` tag containing your credentials. Replace {% ifversion ghes or ghae %}*HOSTNAME* with the host name of {% data variables.product.product_location %}, and{% endif %} *OWNER* with the name of the user or organization account that owns the repository. Because uppercase letters aren't supported, you must use lowercase letters for the repository owner even if the {% data variables.product.prodname_dotcom %} user or organization name contains uppercase letters. +In the `repositories` tag, configure a repository by mapping the `id` of the repository to the `id` you added in the `server` tag containing your credentials. Replace {% ifversion ghes or ghae %}*HOSTNAME* with the host name of {% data variables.location.product_location %}, and{% endif %} *OWNER* with the name of the user or organization account that owns the repository. Because uppercase letters aren't supported, you must use lowercase letters for the repository owner even if the {% data variables.product.prodname_dotcom %} user or organization name contains uppercase letters. If you want to interact with multiple repositories, you can add each repository to separate `repository` children in the `repositories` tag, mapping the `id` of each to the credentials in the `servers` tag. @@ -135,7 +135,7 @@ If you would like to publish multiple packages to the same repository, you can i For more information on creating a package, see the [maven.apache.org documentation](https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html). -1. Edit the `distributionManagement` element of the *pom.xml* file located in your package directory, replacing {% ifversion ghes or ghae %}*HOSTNAME* with the host name of {% data variables.product.product_location %}, {% endif %}`OWNER` with the name of the user or organization account that owns the repository and `REPOSITORY` with the name of the repository containing your project.{% ifversion ghes %} +1. Edit the `distributionManagement` element of the *pom.xml* file located in your package directory, replacing {% ifversion ghes or ghae %}*HOSTNAME* with the host name of {% data variables.location.product_location %}, {% endif %}`OWNER` with the name of the user or organization account that owns the repository and `REPOSITORY` with the name of the repository containing your project.{% ifversion ghes %} If your instance has subdomain isolation enabled:{% endif %} ```xml diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-container-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-container-registry.md index edf9540d4a..6f00ec0d2e 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-container-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-container-registry.md @@ -46,7 +46,7 @@ When installing or publishing a Docker image, the {% data variables.product.prod To authenticate to the {% data variables.product.prodname_container_registry %} (`ghcr.io`) within a {% data variables.product.prodname_actions %} workflow, use the `GITHUB_TOKEN` for the best security and experience. {% data reusables.package_registry.authenticate_with_pat_for_v2_registry %} {% endif %} -{% ifversion ghes %}Ensure that you replace `HOSTNAME` with {% data variables.product.product_location_enterprise %} hostname or IP address in the examples below.{% endif %} +{% ifversion ghes %}Ensure that you replace `HOSTNAME` with {% data variables.location.product_location_enterprise %} hostname or IP address in the examples below.{% endif %} {% data reusables.package_registry.authenticate-to-container-registry-steps %} diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md index 86d916e35e..b0fa5478a9 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-docker-registry.md @@ -42,13 +42,13 @@ When installing or publishing a Docker image, the Docker registry does not curre {% data reusables.package_registry.authenticate-packages-github-token %} -### Authenticating with a personal access token +### Authenticating with a {% data variables.product.pat_generic %} {% data reusables.package_registry.required-scopes %} You can authenticate to {% data variables.product.prodname_registry %} with Docker using the `docker` login command. -To keep your credentials secure, we recommend you save your personal access token in a local file on your computer and use Docker's `--password-stdin` flag, which reads your token from a local file. +To keep your credentials secure, we recommend you save your {% data variables.product.pat_generic %} in a local file on your computer and use Docker's `--password-stdin` flag, which reads your token from a local file. {% ifversion fpt or ghec %} {% raw %} @@ -79,7 +79,7 @@ If your instance has subdomain isolation disabled: {% endif %} -To use this example login command, replace `USERNAME` with your {% data variables.product.product_name %} username{% ifversion ghes or ghae %}, `HOSTNAME` with the URL for {% data variables.product.product_location %},{% endif %} and `~/TOKEN.txt` with the file path to your personal access token for {% data variables.product.product_name %}. +To use this example login command, replace `USERNAME` with your {% data variables.product.product_name %} username{% ifversion ghes or ghae %}, `HOSTNAME` with the URL for {% data variables.location.product_location %},{% endif %} and `~/TOKEN.txt` with the file path to your {% data variables.product.pat_generic %} for {% data variables.product.product_name %}. For more information, see "[Docker login](https://docs.docker.com/engine/reference/commandline/login/#provide-a-password-using-stdin)." @@ -104,7 +104,7 @@ For more information, see "[Docker login](https://docs.docker.com/engine/referen > REPOSITORY TAG IMAGE ID CREATED SIZE > IMAGE_NAME VERSION IMAGE_ID 4 weeks ago 1.11MB ``` -2. Using the Docker image ID, tag the docker image, replacing *OWNER* with the name of the user or organization account that owns the repository, *REPOSITORY* with the name of the repository containing your project, *IMAGE_NAME* with name of the package or image,{% ifversion ghes or ghae %} *HOSTNAME* with the hostname of {% data variables.product.product_location %},{% endif %} and *VERSION* with package version at build time. +2. Using the Docker image ID, tag the docker image, replacing *OWNER* with the name of the user or organization account that owns the repository, *REPOSITORY* with the name of the repository containing your project, *IMAGE_NAME* with name of the package or image,{% ifversion ghes or ghae %} *HOSTNAME* with the hostname of {% data variables.location.product_location %},{% endif %} and *VERSION* with package version at build time. {% ifversion fpt or ghec %} ```shell $ docker tag IMAGE_ID docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION @@ -123,7 +123,7 @@ For more information, see "[Docker login](https://docs.docker.com/engine/referen ``` {% endif %} {% endif %} -3. If you haven't already built a docker image for the package, build the image, replacing *OWNER* with the name of the user or organization account that owns the repository, *REPOSITORY* with the name of the repository containing your project, *IMAGE_NAME* with name of the package or image, *VERSION* with package version at build time,{% ifversion ghes or ghae %} *HOSTNAME* with the hostname of {% data variables.product.product_location %},{% endif %} and *PATH* to the image if it isn't in the current working directory. +3. If you haven't already built a docker image for the package, build the image, replacing *OWNER* with the name of the user or organization account that owns the repository, *REPOSITORY* with the name of the repository containing your project, *IMAGE_NAME* with name of the package or image, *VERSION* with package version at build time,{% ifversion ghes or ghae %} *HOSTNAME* with the hostname of {% data variables.location.product_location %},{% endif %} and *PATH* to the image if it isn't in the current working directory. {% ifversion fpt or ghec %} ```shell $ docker build -t docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH @@ -233,7 +233,7 @@ $ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0 {% data reusables.package_registry.docker_registry_deprecation_status %} -You can use the `docker pull` command to install a docker image from {% data variables.product.prodname_registry %}, replacing *OWNER* with the name of the user or organization account that owns the repository, *REPOSITORY* with the name of the repository containing your project, *IMAGE_NAME* with name of the package or image,{% ifversion ghes or ghae %} *HOSTNAME* with the host name of {% data variables.product.product_location %}, {% endif %} and *TAG_NAME* with tag for the image you want to install. +You can use the `docker pull` command to install a docker image from {% data variables.product.prodname_registry %}, replacing *OWNER* with the name of the user or organization account that owns the repository, *REPOSITORY* with the name of the repository containing your project, *IMAGE_NAME* with name of the package or image,{% ifversion ghes or ghae %} *HOSTNAME* with the host name of {% data variables.location.product_location %}, {% endif %} and *TAG_NAME* with tag for the image you want to install. {% ifversion fpt or ghec %} ```shell diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md index 2646465644..e903fc567f 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry.md @@ -27,19 +27,19 @@ shortTitle: Gradle registry {% data reusables.package_registry.authenticate-packages-github-token %} For more information about using `GITHUB_TOKEN` with Gradle, see "[Publishing Java packages with Gradle](/actions/guides/publishing-java-packages-with-gradle#publishing-packages-to-github-packages)." -### Authenticating with a personal access token +### Authenticating with a {% data variables.product.pat_generic %} {% data reusables.package_registry.required-scopes %} -You can authenticate to {% data variables.product.prodname_registry %} with Gradle using either Gradle Groovy or Kotlin DSL by editing your *build.gradle* file (Gradle Groovy) or *build.gradle.kts* file (Kotlin DSL) file to include your personal access token. You can also configure Gradle Groovy and Kotlin DSL to recognize a single package or multiple packages in a repository. +You can authenticate to {% data variables.product.prodname_registry %} with Gradle using either Gradle Groovy or Kotlin DSL by editing your *build.gradle* file (Gradle Groovy) or *build.gradle.kts* file (Kotlin DSL) file to include your {% data variables.product.pat_v1 %}. You can also configure Gradle Groovy and Kotlin DSL to recognize a single package or multiple packages in a repository. {% ifversion ghes %} Replace *REGISTRY-URL* with the URL for your instance's Maven registry. If your instance has subdomain isolation enabled, use `maven.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/maven`. In either case, replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance. {% elsif ghae %} -Replace *REGISTRY-URL* with the URL for your enterprise's Maven registry, `maven.HOSTNAME`. Replace *HOSTNAME* with the host name of {% data variables.product.product_location %}. +Replace *REGISTRY-URL* with the URL for your enterprise's Maven registry, `maven.HOSTNAME`. Replace *HOSTNAME* with the host name of {% data variables.location.product_location %}. {% endif %} -Replace *USERNAME* with your {% data variables.product.prodname_dotcom %} username, *TOKEN* with your personal access token, *REPOSITORY* with the name of the repository containing the package you want to publish, and *OWNER* with the name of the user or organization account on {% data variables.product.prodname_dotcom %} that owns the repository. Because uppercase letters aren't supported, you must use lowercase letters for the repository owner even if the {% data variables.product.prodname_dotcom %} user or organization name contains uppercase letters. +Replace *USERNAME* with your {% data variables.product.prodname_dotcom %} username, *TOKEN* with your {% data variables.product.pat_v1 %}, *REPOSITORY* with the name of the repository containing the package you want to publish, and *OWNER* with the name of the user or organization account on {% data variables.product.prodname_dotcom %} that owns the repository. Because uppercase letters aren't supported, you must use lowercase letters for the repository owner even if the {% data variables.product.prodname_dotcom %} user or organization name contains uppercase letters. {% note %} diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md index cc0d74151d..f17d1a1b94 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md @@ -42,13 +42,13 @@ If you reach this limit, consider deleting package versions or contact Support f You can also choose to give access permissions to packages independently for {% data variables.product.prodname_codespaces %} and {% data variables.product.prodname_actions %}. For more information, see "[Ensuring Codespaces access to your package](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#ensuring-codespaces-access-to-your-package) and [Ensuring workflow access to your package](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#ensuring-workflow-access-to-your-package)." {% endif %} -### Authenticating with a personal access token +### Authenticating with a {% data variables.product.pat_generic %} {% data reusables.package_registry.required-scopes %} -You can authenticate to {% data variables.product.prodname_registry %} with npm by either editing your per-user *~/.npmrc* file to include your personal access token or by logging in to npm on the command line using your username and personal access token. +You can authenticate to {% data variables.product.prodname_registry %} with npm by either editing your per-user *~/.npmrc* file to include your {% data variables.product.pat_v1 %} or by logging in to npm on the command line using your username and {% data variables.product.pat_generic %}. -To authenticate by adding your personal access token to your *~/.npmrc* file, edit the *~/.npmrc* file for your project to include the following line, replacing {% ifversion ghes or ghae %}*HOSTNAME* with the host name of {% data variables.product.product_location %} and {% endif %}*TOKEN* with your personal access token. Create a new *~/.npmrc* file if one doesn't exist. +To authenticate by adding your {% data variables.product.pat_v1 %} to your *~/.npmrc* file, edit the *~/.npmrc* file for your project to include the following line, replacing {% ifversion ghes or ghae %}*HOSTNAME* with the host name of {% data variables.location.product_location %} and {% endif %}*TOKEN* with your {% data variables.product.pat_generic %}. Create a new *~/.npmrc* file if one doesn't exist. {% ifversion ghes %} If your instance has subdomain isolation enabled: @@ -66,7 +66,7 @@ If your instance has subdomain isolation disabled: ``` {% endif %} -To authenticate by logging in to npm, use the `npm login` command, replacing *USERNAME* with your {% data variables.product.prodname_dotcom %} username, *TOKEN* with your personal access token, and *PUBLIC-EMAIL-ADDRESS* with your email address. +To authenticate by logging in to npm, use the `npm login` command, replacing *USERNAME* with your {% data variables.product.prodname_dotcom %} username, *TOKEN* with your {% data variables.product.pat_v1 %}, and *PUBLIC-EMAIL-ADDRESS* with your email address. If {% data variables.product.prodname_registry %} is not your default package registry for using npm and you want to use the `npm audit` command, we recommend you use the `--scope` flag with the owner of the package when you authenticate to {% data variables.product.prodname_registry %}. @@ -206,7 +206,7 @@ By default, you can only use npm packages hosted on your enterprise, and you wil ### Installing packages from other organizations -By default, you can only use {% data variables.product.prodname_registry %} packages from one organization. If you'd like to route package requests to multiple organizations and users, you can add additional lines to your *.npmrc* file, replacing {% ifversion ghes or ghae %}*HOSTNAME* with the host name of {% data variables.product.product_location %} and {% endif %}*OWNER* with the name of the user or organization account that owns the repository containing your project. +By default, you can only use {% data variables.product.prodname_registry %} packages from one organization. If you'd like to route package requests to multiple organizations and users, you can add additional lines to your *.npmrc* file, replacing {% ifversion ghes or ghae %}*HOSTNAME* with the host name of {% data variables.location.product_location %} and {% endif %}*OWNER* with the name of the user or organization account that owns the repository containing your project. {% ifversion ghes %} If your instance has subdomain isolation enabled: diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md index 2693ca8d8b..9e13e1e527 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry.md @@ -28,7 +28,7 @@ shortTitle: NuGet registry ### Authenticating with `GITHUB_TOKEN` in {% data variables.product.prodname_actions %} -Use the following command to authenticate to {% data variables.product.prodname_registry %} in a {% data variables.product.prodname_actions %} workflow using the `GITHUB_TOKEN` instead of hardcoding a token in a nuget.config file in the repository: +Use the following command to authenticate to {% data variables.product.prodname_registry %} in a {% data variables.product.prodname_actions %} workflow using the `GITHUB_TOKEN` instead of hardcoding a {% data variables.product.pat_generic %} in a nuget.config file in the repository: ```shell dotnet nuget add source --username USERNAME --password {%raw%}${{ secrets.GITHUB_TOKEN }}{% endraw %} --store-password-in-clear-text --name github "https://{% ifversion fpt or ghec %}nuget.pkg.github.com{% else %}nuget.HOSTNAME{% endif %}/OWNER/index.json" @@ -36,7 +36,7 @@ dotnet nuget add source --username USERNAME --password {%raw%}${{ secrets.GITHUB {% data reusables.package_registry.authenticate-packages-github-token %} -### Authenticating with a personal access token +### Authenticating with a {% data variables.product.pat_generic %} {% data reusables.package_registry.required-scopes %} @@ -44,9 +44,9 @@ To authenticate to {% data variables.product.prodname_registry %} with the `dotn You must replace: - `USERNAME` with the name of your personal account on {% data variables.product.prodname_dotcom %}. -- `TOKEN` with your personal access token. +- `TOKEN` with your {% data variables.product.pat_v1 %}. - `OWNER` with the name of the user or organization account that owns the repository containing your project.{% ifversion ghes or ghae %} -- `HOSTNAME` with the host name for {% data variables.product.product_location %}.{% endif %} +- `HOSTNAME` with the host name for {% data variables.location.product_location %}.{% endif %} {% ifversion ghes %}If your instance has subdomain isolation enabled: {% endif %} @@ -89,11 +89,11 @@ If your instance has subdomain isolation disabled: ## Publishing a package -You can publish a package to {% data variables.product.prodname_registry %} by authenticating with a *nuget.config* file, or by using the `--api-key` command line option with your {% data variables.product.prodname_dotcom %} personal access token (PAT). +You can publish a package to {% data variables.product.prodname_registry %} by authenticating with a *nuget.config* file, or by using the `--api-key` command line option with your {% data variables.product.prodname_dotcom %} {% data variables.product.pat_v1 %}. -### Publishing a package using a GitHub PAT as your API key +### Publishing a package using a GitHub {% data variables.product.pat_generic %} as your API key -If you don't already have a PAT to use for your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +If you don't already have a PAT to use for your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." 1. Create a new project. ```shell @@ -104,7 +104,7 @@ If you don't already have a PAT to use for your account on {% ifversion ghae %}{ dotnet pack --configuration Release ``` -3. Publish the package using your PAT as the API key. +3. Publish the package using your {% data variables.product.pat_generic %} as the API key. ```shell dotnet nuget push "bin/Release/OctocatApp.1.0.0.nupkg" --api-key YOUR_GITHUB_PAT --source "github" ``` @@ -124,7 +124,7 @@ When publishing, you need to use the same value for `OWNER` in your *csproj* fil - `OWNER` with the name of the user or organization account that owns the repository containing your project. - `REPOSITORY` with the name of the repository containing the package you want to publish. - `1.0.0` with the version number of the package.{% ifversion ghes or ghae %} - - `HOSTNAME` with the host name for {% data variables.product.product_location %}.{% endif %} + - `HOSTNAME` with the host name for {% data variables.location.product_location %}.{% endif %} ``` xml @@ -232,7 +232,7 @@ Your NuGet package may fail to push if the `RepositoryUrl` in *.csproj* is not s If you're using a nuspec file, ensure that it has a `repository` element with the required `type` and `url` attributes. -If you're using a `GITHUB_TOKEN` to authenticate to a {% data variables.product.prodname_registry %} registry within a {% data variables.product.prodname_actions %} workflow, the token cannot access private repository-based packages in a different repository other than where the workflow is running in. To access packages associated with other repositories, instead generate a PAT with the `read:packages` scope and pass this token in as a secret. +If you're using a `GITHUB_TOKEN` to authenticate to a {% data variables.product.prodname_registry %} registry within a {% data variables.product.prodname_actions %} workflow, the token cannot access private repository-based packages in a different repository other than where the workflow is running in. To access packages associated with other repositories, instead generate a {% data variables.product.pat_v1 %} with the `read:packages` scope and pass this token in as a secret. ## Further reading diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md index 533df4844e..e179d7aa58 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-rubygems-registry.md @@ -48,15 +48,15 @@ shortTitle: RubyGems registry {% data reusables.package_registry.authenticate-packages-github-token %} -### Authenticating with a personal access token +### Authenticating with a {% data variables.product.pat_generic %} {% data reusables.package_registry.required-scopes %} You can authenticate to {% data variables.product.prodname_registry %} with RubyGems by editing the *~/.gem/credentials* file for publishing gems, editing the *~/.gemrc* file for installing a single gem, or using Bundler for tracking and installing one or more gems. -To publish new gems, you need to authenticate to {% data variables.product.prodname_registry %} with RubyGems by editing your *~/.gem/credentials* file to include your personal access token. Create a new *~/.gem/credentials* file if this file doesn't exist. +To publish new gems, you need to authenticate to {% data variables.product.prodname_registry %} with RubyGems by editing your *~/.gem/credentials* file to include your {% data variables.product.pat_v1 %}. Create a new *~/.gem/credentials* file if this file doesn't exist. -For example, you would create or edit a *~/.gem/credentials* to include the following, replacing *TOKEN* with your personal access token. +For example, you would create or edit a *~/.gem/credentials* to include the following, replacing *TOKEN* with your {% data variables.product.pat_generic %}. ```shell --- @@ -65,11 +65,11 @@ For example, you would create or edit a *~/.gem/credentials* to include the foll To install gems, you need to authenticate to {% data variables.product.prodname_registry %} by editing the *~/.gemrc* file for your project to include `https://USERNAME:TOKEN@{% ifversion fpt or ghec %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/`. You must replace: - `USERNAME` with your {% data variables.product.prodname_dotcom %} username. - - `TOKEN` with your personal access token. + - `TOKEN` with your {% data variables.product.pat_v1 %}. - `OWNER` with the name of the user or organization account that owns the repository containing your project.{% ifversion ghes %} - `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the hostname of your {% data variables.product.prodname_ghe_server %} instance. {% elsif ghae %} - - `REGISTRY-URL` with the URL for your instance's Rubygems registry, `rubygems.HOSTNAME`. Replace *HOSTNAME* with the hostname of {% data variables.product.product_location %}. + - `REGISTRY-URL` with the URL for your instance's Rubygems registry, `rubygems.HOSTNAME`. Replace *HOSTNAME* with the hostname of {% data variables.location.product_location %}. {% endif %} If you don't have a *~/.gemrc* file, create a new *~/.gemrc* file using this example. @@ -86,7 +86,7 @@ If you don't have a *~/.gemrc* file, create a new *~/.gemrc* file using this exa ``` -To authenticate with Bundler, configure Bundler to use your personal access token, replacing *USERNAME* with your {% data variables.product.prodname_dotcom %} username, *TOKEN* with your personal access token, and *OWNER* with the name of the user or organization account that owns the repository containing your project.{% ifversion ghes %} Replace `REGISTRY-URL` with the URL for your instance's RubyGems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the hostname of your {% data variables.product.prodname_ghe_server %} instance.{% elsif ghae %}Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry, `rubygems.HOSTNAME`. Replace *HOSTNAME* with the hostname of {% data variables.product.product_location %}.{% endif %} +To authenticate with Bundler, configure Bundler to use your {% data variables.product.pat_v1 %}, replacing *USERNAME* with your {% data variables.product.prodname_dotcom %} username, *TOKEN* with your {% data variables.product.pat_generic %}, and *OWNER* with the name of the user or organization account that owns the repository containing your project.{% ifversion ghes %} Replace `REGISTRY-URL` with the URL for your instance's RubyGems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the hostname of your {% data variables.product.prodname_ghe_server %} instance.{% elsif ghae %}Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry, `rubygems.HOSTNAME`. Replace *HOSTNAME* with the hostname of {% data variables.location.product_location %}.{% endif %} ```shell $ bundle config https://{% ifversion fpt or ghec %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER USERNAME:TOKEN @@ -103,7 +103,7 @@ $ bundle config https://{% ifversion fpt or ghec %}rubygems.pkg.github.com{% els ```shell gem build OCTO-GEM.gemspec ``` -3. Publish a package to {% data variables.product.prodname_registry %}, replacing `OWNER` with the name of the user or organization account that owns the repository containing your project and `OCTO-GEM` with the name of your gem package.{% ifversion ghes %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% elsif ghae %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry, `rubygems.HOSTNAME`. Replace *HOSTNAME* with the hostname of {% data variables.product.product_location %}.{% endif %} +3. Publish a package to {% data variables.product.prodname_registry %}, replacing `OWNER` with the name of the user or organization account that owns the repository containing your project and `OCTO-GEM` with the name of your gem package.{% ifversion ghes %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% elsif ghae %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry, `rubygems.HOSTNAME`. Replace *HOSTNAME* with the hostname of {% data variables.location.product_location %}.{% endif %} ```shell $ gem push --key github \ @@ -113,7 +113,7 @@ $ bundle config https://{% ifversion fpt or ghec %}rubygems.pkg.github.com{% els ## Publishing multiple packages to the same repository -To publish multiple gems to the same repository, you can include the URL to the {% data variables.product.prodname_dotcom %} repository in the `github_repo` field in `gem.metadata`. If you include this field, {% data variables.product.prodname_dotcom %} matches the repository based on this value, instead of using the gem name.{% ifversion ghes or ghae %} Replace *HOSTNAME* with the host name of {% data variables.product.product_location %}.{% endif %} +To publish multiple gems to the same repository, you can include the URL to the {% data variables.product.prodname_dotcom %} repository in the `github_repo` field in `gem.metadata`. If you include this field, {% data variables.product.prodname_dotcom %} matches the repository based on this value, instead of using the gem name.{% ifversion ghes or ghae %} Replace *HOSTNAME* with the host name of {% data variables.location.product_location %}.{% endif %} ```ruby gem.metadata = { "github_repo" => "ssh://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPOSITORY" } @@ -124,7 +124,7 @@ gem.metadata = { "github_repo" => "ssh://{% ifversion fpt or ghec %}github.com{% You can use gems from {% data variables.product.prodname_registry %} much like you use gems from *rubygems.org*. You need to authenticate to {% data variables.product.prodname_registry %} by adding your {% data variables.product.prodname_dotcom %} user or organization as a source in the *~/.gemrc* file or by using Bundler and editing your *Gemfile*. {% data reusables.package_registry.authenticate-step %} -1. For Bundler, add your {% data variables.product.prodname_dotcom %} user or organization as a source in your *Gemfile* to fetch gems from this new source. For example, you can add a new `source` block to your *Gemfile* that uses {% data variables.product.prodname_registry %} only for the packages you specify, replacing *GEM NAME* with the package you want to install from {% data variables.product.prodname_registry %} and *OWNER* with the user or organization that owns the repository containing the gem you want to install.{% ifversion ghes %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% elsif ghae %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry, `rubygems.HOSTNAME`. Replace *HOSTNAME* with the hostname of {% data variables.product.product_location %}.{% endif %} +1. For Bundler, add your {% data variables.product.prodname_dotcom %} user or organization as a source in your *Gemfile* to fetch gems from this new source. For example, you can add a new `source` block to your *Gemfile* that uses {% data variables.product.prodname_registry %} only for the packages you specify, replacing *GEM NAME* with the package you want to install from {% data variables.product.prodname_registry %} and *OWNER* with the user or organization that owns the repository containing the gem you want to install.{% ifversion ghes %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% elsif ghae %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry, `rubygems.HOSTNAME`. Replace *HOSTNAME* with the hostname of {% data variables.location.product_location %}.{% endif %} ```ruby source "https://rubygems.org" diff --git a/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md b/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md index ab3c1ff7c6..264d7bd5dc 100644 --- a/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md +++ b/content/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages.md @@ -31,6 +31,7 @@ You can set up either or both of apex and `www` subdomain configurations for you We recommend always using a `www` subdomain, even if you also use an apex domain. When you create a new site with an apex domain, we automatically attempt to secure the `www` subdomain for use when serving your site's content, but you need to make the DNS changes to use the `www` subdomain. If you configure a `www` subdomain, we automatically attempt to secure the associated apex domain. For more information, see "[Managing a custom domain for your {% data variables.product.prodname_pages %} site](/articles/managing-a-custom-domain-for-your-github-pages-site)." After you configure a custom domain for a user or organization site, the custom domain will replace the `.github.io` or `.github.io` portion of the URL for any project sites owned by the account that do not have a custom domain configured. For example, if the custom domain for your user site is `www.octocat.com`, and you have a project site with no custom domain configured that is published from a repository called `octo-project`, the {% data variables.product.prodname_pages %} site for that repository will be available at `www.octocat.com/octo-project`. +For more information about each type of site and handling custom domains, see "[Types of {% data variables.product.prodname_pages %} sites](/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites)." ## Using a subdomain for your {% data variables.product.prodname_pages %} site diff --git a/content/pages/getting-started-with-github-pages/about-github-pages.md b/content/pages/getting-started-with-github-pages/about-github-pages.md index 4c27a5f885..960da5c7d3 100644 --- a/content/pages/getting-started-with-github-pages/about-github-pages.md +++ b/content/pages/getting-started-with-github-pages/about-github-pages.md @@ -1,6 +1,6 @@ --- title: About GitHub Pages -intro: 'You can use {% data variables.product.prodname_pages %} to host a website about yourself, your organization, or your project directly from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}.' +intro: 'You can use {% data variables.product.prodname_pages %} to host a website about yourself, your organization, or your project directly from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}.' redirect_from: - /articles/what-are-github-pages - /articles/what-is-github-pages @@ -40,7 +40,7 @@ Organization owners can disable the publication of {% data variables.product.pro ## Types of {% data variables.product.prodname_pages %} sites -There are three types of {% data variables.product.prodname_pages %} sites: project, user, and organization. Project sites are connected to a specific project hosted on {% data variables.product.product_name %}, such as a JavaScript library or a recipe collection. User and organization sites are connected to a specific account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. +There are three types of {% data variables.product.prodname_pages %} sites: project, user, and organization. Project sites are connected to a specific project hosted on {% data variables.product.product_name %}, such as a JavaScript library or a recipe collection. User and organization sites are connected to a specific account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. To publish a user site, you must create a repository owned by your personal account that's named {% ifversion fpt or ghec %}`.github.io`{% else %}`.`{% endif %}. To publish an organization site, you must create a repository owned by an organization that's named {% ifversion fpt or ghec %}`.github.io`{% else %}`.`{% endif %}. {% ifversion fpt or ghec %}Unless you're using a custom domain, user and organization sites are available at `http(s)://.github.io` or `http(s)://.github.io`.{% elsif ghae %}User and organization sites are available at `http(s)://pages./` or `http(s)://pages./`.{% endif %} @@ -57,7 +57,7 @@ For more information about how custom domains affect the URL for your site, see You can only create one user or organization site for each account on {% data variables.product.product_name %}. Project sites, whether owned by an organization or a personal account, are unlimited. {% ifversion ghes %} -The URL where your site is available depends on whether subdomain isolation is enabled for {% data variables.product.product_location %}. +The URL where your site is available depends on whether subdomain isolation is enabled for {% data variables.location.product_location %}. | Type of site | Subdomain isolation enabled | Subdomain isolation disabled | | ------------ | --------------------------- | ---------------------------- | @@ -79,7 +79,7 @@ For more information, see "[Configuring a publishing source for your GitHub Page {% ifversion ghec %} ## Limitations for {% data variables.product.prodname_emus %} -If you're a {% data variables.product.prodname_managed_user %}, your use of {% data variables.product.prodname_pages %} is limited. +If you're a {% data variables.enterprise.prodname_managed_user %}, your use of {% data variables.product.prodname_pages %} is limited. - {% data variables.product.prodname_pages %} sites can only be published from repositories owned by organizations. - {% data variables.product.prodname_pages %} sites are only visible to other members of the enterprise. diff --git a/content/pages/index.md b/content/pages/index.md index 9b5f192f7f..5c8d0c692f 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -1,7 +1,7 @@ --- title: GitHub Pages Documentation shortTitle: GitHub Pages -intro: 'Learn how to create a website directly from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. Explore website building tools like Jekyll and troubleshoot issues with your {% data variables.product.prodname_pages %} site.' +intro: 'Learn how to create a website directly from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. Explore website building tools like Jekyll and troubleshoot issues with your {% data variables.product.prodname_pages %} site.' introLinks: quickstart: /pages/quickstart overview: /pages/getting-started-with-github-pages/about-github-pages diff --git a/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md b/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md index 1ec7888ad0..389f6ada15 100644 --- a/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md +++ b/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md @@ -103,7 +103,7 @@ Before you can use Jekyll to create a {% data variables.product.prodname_pages % git add . git commit -m 'Initial GitHub pages site with Jekyll' ``` -1. Add your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} as a remote, replacing {% ifversion ghes or ghae %}_HOSTNAME_ with your enterprise's hostname,{% endif %} _USER_ with the account that owns the repository{% ifversion ghes or ghae %},{% endif %} and _REPOSITORY_ with the name of the repository. +1. Add your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} as a remote, replacing {% ifversion ghes or ghae %}_HOSTNAME_ with your enterprise's hostname,{% endif %} _USER_ with the account that owns the repository{% ifversion ghes or ghae %},{% endif %} and _REPOSITORY_ with the name of the repository. ```shell {% ifversion fpt or ghec %} $ git remote add origin https://github.com/USER/REPOSITORY.git diff --git a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md index 7c7c6cb6da..32c3ec760b 100644 --- a/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md +++ b/content/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges.md @@ -60,17 +60,17 @@ Because this commit is only on the base branch and not the head branch, the comm {% data reusables.pull_requests.rebase_and_merge_summary %} -You aren't able to automatically rebase and merge on {% data variables.product.product_location %} when: +You aren't able to automatically rebase and merge on {% data variables.location.product_location %} when: - The pull request has merge conflicts. - Rebasing the commits from the base branch into the head branch runs into conflicts. - Rebasing the commits is considered "unsafe," such as when a rebase is possible without merge conflicts but would produce a different result than a merge would. -If you still want to rebase the commits but can't rebase and merge automatically on {% data variables.product.product_location %} you must: +If you still want to rebase the commits but can't rebase and merge automatically on {% data variables.location.product_location %} you must: - Rebase the topic branch (or head branch) onto the base branch locally on the command line - [Resolve any merge conflicts on the command line](/articles/resolving-a-merge-conflict-using-the-command-line/). - Force-push the rebased commits to the pull request's topic branch (or remote head branch). -Anyone with write permissions in the repository, can then [merge the changes](/articles/merging-a-pull-request/) using the rebase and merge button on {% data variables.product.product_location %}. +Anyone with write permissions in the repository, can then [merge the changes](/articles/merging-a-pull-request/) using the rebase and merge button on {% data variables.location.product_location %}. ## Indirect merges diff --git a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md index 0480d3a39c..3d3b8216ae 100644 --- a/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/committing-changes-to-a-pull-request-branch-created-from-a-fork.md @@ -25,7 +25,7 @@ Only the user who created the pull request can give you permission to push commi {% note %} -**Note:** You can also make commits to a pull request branch from a fork of your repository through {% data variables.product.product_location %} by creating your own copy (or fork) of the fork of your repository and committing changes to the same head branch that the original pull request changes were created on. For some general guidelines, see "[Creating a pull request from a fork](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)." +**Note:** You can also make commits to a pull request branch from a fork of your repository through {% data variables.location.product_location %} by creating your own copy (or fork) of the fork of your repository and committing changes to the same head branch that the original pull request changes were created on. For some general guidelines, see "[Creating a pull request from a fork](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)." {% endnote %} @@ -88,7 +88,7 @@ Only the user who created the pull request can give you permission to push commi > 12da2e9..250e946 TEST-BRANCH -> TEST-BRANCH ``` -Your new commits will be reflected on the original pull request on {% data variables.product.product_location %}. +Your new commits will be reflected on the original pull request on {% data variables.location.product_location %}. ## Further Reading diff --git a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md index ed8a455560..5ecd5f08d3 100644 --- a/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md +++ b/content/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-dependency-changes-in-a-pull-request.md @@ -30,7 +30,7 @@ shortTitle: Review dependency changes {% ifversion ghec %}Before you can use dependency review in a private repository, you must enable the dependency graph. For more information, see "[Exploring the dependencies of a repository](/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository#enabling-and-disabling-the-dependency-graph-for-a-private-repository)."{% endif %} -{% ifversion ghes %} Before you can use dependency review, you must enable the dependency graph and connect {% data variables.product.product_location %} to {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Enabling alerts for vulnerable dependencies on {% data variables.product.prodname_ghe_server %}](/admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud/enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server)."{% endif %} +{% ifversion ghes %} Before you can use dependency review, you must enable the dependency graph and connect {% data variables.location.product_location %} to {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Enabling alerts for vulnerable dependencies on {% data variables.product.prodname_ghe_server %}](/admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud/enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server)."{% endif %} Dependency review allows you to "shift left". You can use the provided predictive information to catch vulnerable dependencies before they hit production. For more information, see "[About dependency review](/code-security/supply-chain-security/about-dependency-review)." diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md index 6a9ee0d344..a881dd52d4 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks.md @@ -23,7 +23,7 @@ Forking a repository is similar to copying a repository, with two major differen {% ifversion fpt or ghec %} -If you're a member of a {% data variables.product.prodname_emu_enterprise %}, there are further restrictions on the repositories you can fork. {% data reusables.enterprise-accounts.emu-forks %} For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} +If you're a member of a {% data variables.enterprise.prodname_emu_enterprise %}, there are further restrictions on the repositories you can fork. {% data reusables.enterprise-accounts.emu-forks %} For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} {% endif %} diff --git a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md index 4916aeb3cd..d97744b5d7 100644 --- a/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md +++ b/content/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork.md @@ -100,6 +100,6 @@ Before you can sync your fork with an upstream repository, you must [configure a {% tip %} -**Tip**: Syncing your fork only updates your local copy of the repository. To update your fork on {% data variables.product.product_location %}, you must [push your changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/). +**Tip**: Syncing your fork only updates your local copy of the repository. To update your fork on {% data variables.location.product_location %}, you must [push your changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/). {% endtip %} diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md index aade27112e..4cbd1eee7d 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message.md @@ -20,7 +20,7 @@ In Git, the text of the commit message is part of the commit. Changing the commi ## Commit has not been pushed online -If the commit only exists in your local repository and has not been pushed to {% data variables.product.product_location %}, you can amend the commit message with the `git commit --amend` command. +If the commit only exists in your local repository and has not been pushed to {% data variables.location.product_location %}, you can amend the commit message with the `git commit --amend` command. 1. On the command line, navigate to the repository that contains the commit you want to amend. 2. Type `git commit --amend` and press **Enter**. @@ -30,7 +30,7 @@ If the commit only exists in your local repository and has not been pushed to {% - You can create commits on behalf of your organization by adding a trailer to the commit. For more information, see "[Creating a commit on behalf of an organization](/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization)" {% endif %} -The new commit and message will appear on {% data variables.product.product_location %} the next time you push. +The new commit and message will appear on {% data variables.location.product_location %} the next time you push. {% tip %} @@ -40,7 +40,7 @@ You can change the default text editor for Git by changing the `core.editor` set ## Amending older or multiple commit messages -If you have already pushed the commit to {% data variables.product.product_location %}, you will have to force push a commit with an amended message. +If you have already pushed the commit to {% data variables.location.product_location %}, you will have to force push a commit with an amended message. {% warning %} diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md index e25a47c844..e4cf27cb8f 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-on-behalf-of-an-organization.md @@ -50,7 +50,7 @@ Organizations can use the `name@organization.com` email as a public point of con on-behalf-of: @ORG NAME@ORGANIZATION.COM" ``` -The new commit, message, and badge will appear on {% data variables.product.product_location %} the next time you push. For more information, see "[Pushing changes to a remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)." +The new commit, message, and badge will appear on {% data variables.location.product_location %} the next time you push. For more information, see "[Pushing changes to a remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)." ## Creating commits with an `on-behalf-of` badge on {% data variables.product.product_name %} @@ -64,7 +64,7 @@ After you've made changes in a file using the web editor on {% data variables.pr ![Commit message on-behalf-of trailer example in second commit message text box](/assets/images/help/repository/write-commit-message-on-behalf-of-trailer.png) 4. Click **Commit changes** or **Propose changes**. -The new commit, message, and badge will appear on {% data variables.product.product_location %}. +The new commit, message, and badge will appear on {% data variables.location.product_location %}. ## Further reading diff --git a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md index 97444af18d..a1ac806368 100644 --- a/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md +++ b/content/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors.md @@ -14,7 +14,7 @@ shortTitle: With multiple authors --- ## Required co-author information -Before you can add a co-author to a commit, you must know the appropriate email to use for each co-author. For the co-author's commit to count as a contribution, you must use the email associated with their account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. +Before you can add a co-author to a commit, you must know the appropriate email to use for each co-author. For the co-author's commit to count as a contribution, you must use the email associated with their account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. {% ifversion fpt or ghec %} @@ -43,7 +43,7 @@ You can use {% data variables.product.prodname_desktop %} to create a commit wit {% data reusables.pull_requests.collect-co-author-commit-git-config-info %} 1. Type your commit message and a short, meaningful description of your changes. After your commit description, instead of a closing quotation, add two empty lines. - ```shell + ``` $ git commit -m "Refactor usability tests. > > @@ -57,15 +57,15 @@ You can use {% data variables.product.prodname_desktop %} to create a commit wit 3. On the next line of the commit message, type `Co-authored-by: name ` with specific information for each co-author. After the co-author information, add a closing quotation mark. If you're adding multiple co-authors, give each co-author their own line and `Co-authored-by:` commit trailer. - ```shell + ``` $ git commit -m "Refactor usability tests. > > - Co-authored-by: NAME NAME@EXAMPLE.COM - Co-authored-by: AUTHOR-NAME ANOTHER-NAME@EXAMPLE.COM" + Co-authored-by: NAME + Co-authored-by: AUTHOR-NAME " ``` -The new commit and message will appear on {% data variables.product.product_location %} the next time you push. For more information, see "[Pushing changes to a remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)." +The new commit and message will appear on {% data variables.location.product_location %} the next time you push. For more information, see "[Pushing changes to a remote repository](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/)." ## Creating co-authored commits on {% data variables.product.product_name %} @@ -79,7 +79,7 @@ After you've made changes in a file using the web editor on {% data variables.pr ![Commit message co-author trailer example in second commit message text box](/assets/images/help/repository/write-commit-message-co-author-trailer.png) 4. Click **Commit changes** or **Propose changes**. -The new commit and message will appear on {% data variables.product.product_location %}. +The new commit and message will appear on {% data variables.location.product_location %}. ## Further reading {% ifversion ghes or ghae %} diff --git a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md index 24834a7df7..ceab766830 100644 --- a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md +++ b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/commit-exists-on-github-but-not-in-my-local-clone.md @@ -21,7 +21,7 @@ $ git show 1095ff3d0153115e75b7bca2c09e5136845b5592 > fatal: bad object 1095ff3d0153115e75b7bca2c09e5136845b5592 ``` -However, when you view the commit on {% data variables.product.product_location %}, you'll be able to see it without any problems: +However, when you view the commit on {% data variables.location.product_location %}, you'll be able to see it without any problems: `github.com/$account/$repository/commit/1095ff3d0153115e75b7bca2c09e5136845b5592` diff --git a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md index ab7cccf8fb..d4d8bbe644 100644 --- a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md +++ b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md @@ -21,7 +21,7 @@ shortTitle: Linked to wrong user ## Commits are linked to another user -If your commits are linked to another user, that means the email address in your local Git configuration settings is connected to that user's account on {% data variables.product.product_name %}. In this case, you can change the email in your local Git configuration settings{% ifversion ghae %} to the address associated with your account on {% data variables.product.product_name %} to link your future commits. Old commits will not be linked. For more information, see "[Setting your commit email address](/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#setting-your-commit-email-address-in-git)."{% else %} and add the new email address to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} account to link future commits to your account. +If your commits are linked to another user, that means the email address in your local Git configuration settings is connected to that user's account on {% data variables.product.product_name %}. In this case, you can change the email in your local Git configuration settings{% ifversion ghae %} to the address associated with your account on {% data variables.product.product_name %} to link your future commits. Old commits will not be linked. For more information, see "[Setting your commit email address](/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#setting-your-commit-email-address-in-git)."{% else %} and add the new email address to your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} account to link future commits to your account. 1. To change the email address in your local Git configuration, follow the steps in "[Setting your commit email address](/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address#setting-your-commit-email-address-in-git)". If you work on multiple machines, you will need to change this setting on each one. 2. Add the email address from step 2 to your account settings by following the steps in "[Adding an email address to your GitHub account](/articles/adding-an-email-address-to-your-github-account)".{% endif %} diff --git a/content/repositories/archiving-a-github-repository/backing-up-a-repository.md b/content/repositories/archiving-a-github-repository/backing-up-a-repository.md index 433e593928..79f382bd8d 100644 --- a/content/repositories/archiving-a-github-repository/backing-up-a-repository.md +++ b/content/repositories/archiving-a-github-repository/backing-up-a-repository.md @@ -23,7 +23,7 @@ You can download and back up your repositories manually: - To download a repository's Git data to your local machine, you'll need to clone the repository. For more information, see "[Cloning a repository](/articles/cloning-a-repository)." - You can also download your repository's wiki. For more information, see "[Adding or editing wiki pages](/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages)." -When you clone a repository or wiki, only Git data, such as project files and commit history, is downloaded. You can use our API to export other elements of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} to your local machine: +When you clone a repository or wiki, only Git data, such as project files and commit history, is downloaded. You can use our API to export other elements of your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} to your local machine: - [Issues](/rest/reference/issues#list-issues-for-a-repository) - [Pull requests](/rest/reference/pulls#list-pull-requests) diff --git a/content/repositories/archiving-a-github-repository/referencing-and-citing-content.md b/content/repositories/archiving-a-github-repository/referencing-and-citing-content.md index 2e52835c43..27fa92e78b 100644 --- a/content/repositories/archiving-a-github-repository/referencing-and-citing-content.md +++ b/content/repositories/archiving-a-github-repository/referencing-and-citing-content.md @@ -14,7 +14,7 @@ shortTitle: Reference & cite content --- ## Issuing a persistent identifier for your repository with Zenodo -To make your repositories easier to reference in academic literature, you can create persistent identifiers, also known as Digital Object Identifiers (DOIs). You can use the data archiving tool [Zenodo](https://zenodo.org/about) to archive a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} and issue a DOI for the archive. +To make your repositories easier to reference in academic literature, you can create persistent identifiers, also known as Digital Object Identifiers (DOIs). You can use the data archiving tool [Zenodo](https://zenodo.org/about) to archive a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} and issue a DOI for the archive. {% tip %} diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github.md b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github.md index 5653a4f59d..cbbb88a505 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github.md @@ -1,6 +1,6 @@ --- title: About merge methods on GitHub -intro: 'You can allow contributors with push access to your repository to merge their pull requests on {% data variables.product.product_location %} with different merge options or enforce a specific merge method for all of your repository''s pull requests.' +intro: 'You can allow contributors with push access to your repository to merge their pull requests on {% data variables.location.product_location %} with different merge options or enforce a specific merge method for all of your repository''s pull requests.' redirect_from: - /articles/about-merge-methods-on-github - /github/administering-a-repository/about-merge-methods-on-github @@ -44,7 +44,7 @@ For more information, see "[Configuring commit squashing for pull requests](/art {% data reusables.pull_requests.rebase_and_merge_summary %} Before enabling commit rebasing, consider these disadvantages: -- Repository contributors may have to rebase on the command line, resolve any conflicts, and force push their changes to the pull request's topic branch (or remote head branch) before they can use the **rebase and merge** option on {% data variables.product.product_location %}. Force pushing must be done carefully so contributors don't overwrite work that others have based their work on. To learn more about when the **Rebase and merge** option is disabled on {% data variables.product.product_location %} and the workflow to re-enable it, see "[About pull request merges](/articles/about-pull-request-merges/#rebase-and-merge-your-pull-request-commits)." +- Repository contributors may have to rebase on the command line, resolve any conflicts, and force push their changes to the pull request's topic branch (or remote head branch) before they can use the **rebase and merge** option on {% data variables.location.product_location %}. Force pushing must be done carefully so contributors don't overwrite work that others have based their work on. To learn more about when the **Rebase and merge** option is disabled on {% data variables.location.product_location %} and the workflow to re-enable it, see "[About pull request merges](/articles/about-pull-request-merges/#rebase-and-merge-your-pull-request-commits)." - {% indented_data_reference reusables.pull_requests.rebase_and_merge_verification spaces=3 %} For more information, see "[Configuring commit rebasing for pull requests](/articles/configuring-commit-rebasing-for-pull-requests)." diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-merging-for-pull-requests.md b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-merging-for-pull-requests.md index 506a34d3b1..610176d045 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-merging-for-pull-requests.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-merging-for-pull-requests.md @@ -1,6 +1,6 @@ --- title: Configuring commit merging for pull requests -intro: 'You can enforce, allow, or disable merging with a merge commit for all pull request merges on {% data variables.product.product_location %} in your repository.' +intro: 'You can enforce, allow, or disable merging with a merge commit for all pull request merges on {% data variables.location.product_location %} in your repository.' versions: fpt: '*' ghes: '*' diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-rebasing-for-pull-requests.md b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-rebasing-for-pull-requests.md index 714645fa9e..c4652106f1 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-rebasing-for-pull-requests.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-rebasing-for-pull-requests.md @@ -1,6 +1,6 @@ --- title: Configuring commit rebasing for pull requests -intro: 'You can enforce, allow, or disable commit rebasing for all pull request merges on {% data variables.product.product_location %} in your repository.' +intro: 'You can enforce, allow, or disable commit rebasing for all pull request merges on {% data variables.location.product_location %} in your repository.' redirect_from: - /articles/configuring-commit-rebasing-for-pull-requests - /github/administering-a-repository/configuring-commit-rebasing-for-pull-requests diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-squashing-for-pull-requests.md b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-squashing-for-pull-requests.md index 0473b10065..7814e66262 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-squashing-for-pull-requests.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-squashing-for-pull-requests.md @@ -1,6 +1,6 @@ --- title: Configuring commit squashing for pull requests -intro: 'You can enforce, allow, or disable commit squashing for all pull request merges on {% data variables.product.product_location %} in your repository.' +intro: 'You can enforce, allow, or disable commit squashing for all pull request merges on {% data variables.location.product_location %} in your repository.' redirect_from: - /articles/configuring-commit-squashing-for-pull-requests - /github/administering-a-repository/configuring-commit-squashing-for-pull-requests diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/index.md b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/index.md index 50d27d0450..bf762e72cc 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/index.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/index.md @@ -1,6 +1,6 @@ --- title: Configuring pull request merges -intro: 'You can configure pull request merges on {% data variables.product.product_location %} to match your workflow and preferences for managing Git history.' +intro: 'You can configure pull request merges on {% data variables.location.product_location %} to match your workflow and preferences for managing Git history.' redirect_from: - /articles/configuring-pull-request-merges - /github/administering-a-repository/configuring-pull-request-merges diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md b/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md index 9a2ca2a765..474cc4705d 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks.md @@ -97,7 +97,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - run: 'echo "No build required" ' + - run: 'echo "No build required"' ``` Now the checks will always pass whenever someone sends a pull request that doesn't change the files listed under `paths` in the first workflow. diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md index 5ec69c8950..16551aab62 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch.md @@ -15,9 +15,9 @@ redirect_from: --- ## About renaming branches -You can rename a branch in a repository on {% data variables.product.product_location %}. For more information about branches, see "[About branches](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches))." +You can rename a branch in a repository on {% data variables.location.product_location %}. For more information about branches, see "[About branches](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches))." -When you rename a branch on {% data variables.product.product_location %}, any URLs that contain the old branch name are automatically redirected to the equivalent URL for the renamed branch. Branch protection policies are also updated, as well as the base branch for open pull requests (including those for forks) and draft releases. After the rename is complete, {% data variables.product.prodname_dotcom %} provides instructions on the repository's home page directing contributors to update their local Git environments. +When you rename a branch on {% data variables.location.product_location %}, any URLs that contain the old branch name are automatically redirected to the equivalent URL for the renamed branch. Branch protection policies are also updated, as well as the base branch for open pull requests (including those for forks) and draft releases. After the rename is complete, {% data variables.product.prodname_dotcom %} provides instructions on the repository's home page directing contributors to update their local Git environments. Although file URLs are automatically redirected, raw file URLs are not redirected. Also, {% data variables.product.prodname_dotcom %} does not perform any redirects if users perform a `git pull` for the previous branch name. diff --git a/content/repositories/creating-and-managing-repositories/about-repositories.md b/content/repositories/creating-and-managing-repositories/about-repositories.md index 82f9275f85..014c709c08 100644 --- a/content/repositories/creating-and-managing-repositories/about-repositories.md +++ b/content/repositories/creating-and-managing-repositories/about-repositories.md @@ -60,7 +60,7 @@ When you create a repository owned by your personal account, the repository is a - Public repositories are accessible to everyone on the internet. - Private repositories are only accessible to you, people you explicitly share access with, and, for organization repositories, certain organization members. {%- elsif ghes %} -- If {% data variables.product.product_location %} is not in private mode or behind a firewall, public repositories are accessible to everyone on the internet. Otherwise, public repositories are available to everyone using {% data variables.product.product_location %}, including outside collaborators. +- If {% data variables.location.product_location %} is not in private mode or behind a firewall, public repositories are accessible to everyone on the internet. Otherwise, public repositories are available to everyone using {% data variables.location.product_location %}, including outside collaborators. - Private repositories are only accessible to you, people you explicitly share access with, and, for organization repositories, certain organization members. {%- elsif ghae %} - Private repositories are only accessible to you, people you explicitly share access with, and, for organization repositories, certain organization members. @@ -83,7 +83,7 @@ All enterprise members have read permissions to the internal repository, but int {% ifversion ghes %} {% note %} -**Note:** A user must be part of an organization to be an enterprise member and have access to internal repositories. If a user on {% data variables.product.product_location %} is not a member of any organization, that user will not have access to internal repositories. +**Note:** A user must be part of an organization to be an enterprise member and have access to internal repositories. If a user on {% data variables.location.product_location %} is not a member of any organization, that user will not have access to internal repositories. {% endnote %} {% endif %} @@ -95,7 +95,7 @@ All enterprise members have read permissions to the internal repository, but int {% ifversion ghec %} {% note %} -**Note:** {% data variables.product.prodname_managed_users_caps %} cannot fork internal repositories. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users#abilities-and-restrictions-of-managed-user-accounts)." +**Note:** {% data variables.enterprise.prodname_managed_users_caps %} cannot fork internal repositories. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users#abilities-and-restrictions-of-managed-user-accounts)." {% endnote %} {% endif %} diff --git a/content/repositories/creating-and-managing-repositories/cloning-a-repository.md b/content/repositories/creating-and-managing-repositories/cloning-a-repository.md index d5ff6f38b6..0fd1cafda3 100644 --- a/content/repositories/creating-and-managing-repositories/cloning-a-repository.md +++ b/content/repositories/creating-and-managing-repositories/cloning-a-repository.md @@ -1,6 +1,6 @@ --- title: Cloning a repository -intro: 'When you create a repository on {% data variables.product.product_location %}, it exists as a remote repository. You can clone your repository to create a local copy on your computer and sync between the two locations.' +intro: 'When you create a repository on {% data variables.location.product_location %}, it exists as a remote repository. You can clone your repository to create a local copy on your computer and sync between the two locations.' redirect_from: - /articles/cloning-a-repository - /articles/cloning-a-repository-from-github @@ -16,9 +16,9 @@ topics: --- ## About cloning a repository -You can clone a repository from {% data variables.product.product_location %} to your local computer to make it easier to fix merge conflicts, add or remove files, and push larger commits. When you clone a repository, you copy the repository from {% data variables.product.product_location %} to your local machine. +You can clone a repository from {% data variables.location.product_location %} to your local computer to make it easier to fix merge conflicts, add or remove files, and push larger commits. When you clone a repository, you copy the repository from {% data variables.location.product_location %} to your local machine. -Cloning a repository pulls down a full copy of all the repository data that {% data variables.product.product_location %} has at that point in time, including all versions of every file and folder for the project. You can push your changes to the remote repository on {% data variables.product.product_location %}, or pull other people's changes from {% data variables.product.product_location %}. For more information, see "[Using Git](/github/getting-started-with-github/using-git)". +Cloning a repository pulls down a full copy of all the repository data that {% data variables.location.product_location %} has at that point in time, including all versions of every file and folder for the project. You can push your changes to the remote repository on {% data variables.location.product_location %}, or pull other people's changes from {% data variables.location.product_location %}. For more information, see "[Using Git](/github/getting-started-with-github/using-git)". You can clone your existing repository or clone another person's existing repository to contribute to a project. diff --git a/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md b/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md index ea7aab41cd..a94ca77b5a 100644 --- a/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md +++ b/content/repositories/creating-and-managing-repositories/duplicating-a-repository.md @@ -24,7 +24,7 @@ topics: {% endif %} -Before you can push the original repository to your new copy, or _mirror_, of the repository, you must [create the new repository](/articles/creating-a-new-repository) on {% data variables.product.product_location %}. In these examples, `exampleuser/new-repository` or `exampleuser/mirrored` are the mirrors. +Before you can push the original repository to your new copy, or _mirror_, of the repository, you must [create the new repository](/articles/creating-a-new-repository) on {% data variables.location.product_location %}. In these examples, `exampleuser/new-repository` or `exampleuser/mirrored` are the mirrors. ## Mirroring a repository diff --git a/content/repositories/creating-and-managing-repositories/restoring-a-deleted-repository.md b/content/repositories/creating-and-managing-repositories/restoring-a-deleted-repository.md index 69235d7d9b..86cdc8a075 100644 --- a/content/repositories/creating-and-managing-repositories/restoring-a-deleted-repository.md +++ b/content/repositories/creating-and-managing-repositories/restoring-a-deleted-repository.md @@ -18,7 +18,7 @@ shortTitle: Restore deleted repository {% ifversion ghes or ghae %} -Usually, deleted repositories can be restored within 90 days by an enterprise owner{% ifversion ghes %} on {% data variables.product.product_location %}{% endif %}. For more information, see "[Restoring a deleted repository](/admin/user-management/managing-repositories-in-your-enterprise/restoring-a-deleted-repository)." +Usually, deleted repositories can be restored within 90 days by an enterprise owner{% ifversion ghes %} on {% data variables.location.product_location %}{% endif %}. For more information, see "[Restoring a deleted repository](/admin/user-management/managing-repositories-in-your-enterprise/restoring-a-deleted-repository)." {% else %} diff --git a/content/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors.md b/content/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors.md index 9d85d13f7f..21b3f9b46b 100644 --- a/content/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors.md +++ b/content/repositories/creating-and-managing-repositories/troubleshooting-cloning-errors.md @@ -50,7 +50,7 @@ There's no minimum Git version necessary to interact with {% data variables.prod ### Ensure the remote is correct -The repository you're trying to fetch must exist on {% data variables.product.product_location %}, and the URL is case-sensitive. +The repository you're trying to fetch must exist on {% data variables.location.product_location %}, and the URL is case-sensitive. You can find the URL of the local repository by opening the command line and typing `git remote -v`: @@ -75,7 +75,7 @@ Alternatively, you can change the URL through our ### Provide an access token -To access {% data variables.product.prodname_dotcom %}, you must authenticate with a personal access token instead of your password. For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +To access {% data variables.product.prodname_dotcom %}, you must authenticate with a {% data variables.product.pat_generic %} instead of your password. For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." {% data reusables.command_line.provide-an-access-token %} @@ -95,7 +95,7 @@ If you've previously set up SSH keys, you can use the SSH clone URL instead of H ## Error: Repository not found -{% ifversion fpt or ghae or ghec %}If you see this error when cloning a repository, it means that the repository does not exist or you do not have permission to access it.{% else %}If you see this error when cloning a repository, it means that the repository does not exist, you do not have permission to access it, or {% data variables.product.product_location %} is in private mode.{% endif %} There are a few solutions to this error, depending on the cause. +{% ifversion fpt or ghae or ghec %}If you see this error when cloning a repository, it means that the repository does not exist or you do not have permission to access it.{% else %}If you see this error when cloning a repository, it means that the repository does not exist, you do not have permission to access it, or {% data variables.location.product_location %} is in private mode.{% endif %} There are a few solutions to this error, depending on the cause. ### Check your spelling @@ -142,12 +142,12 @@ If your site administrator has enabled private mode on your GitHub Enterprise in ### Check that the repository really exists -If all else fails, make sure that the repository really exists on {% data variables.product.product_location %}! +If all else fails, make sure that the repository really exists on {% data variables.location.product_location %}! If you're trying to push to a repository that doesn't exist, you'll get this error. ## Error: Remote HEAD refers to nonexistent ref, unable to checkout -This error occurs if the default branch of a repository has been deleted on {% data variables.product.product_location %}. +This error occurs if the default branch of a repository has been deleted on {% data variables.location.product_location %}. Detecting this error is simple; Git will warn you when you try to clone the repository: @@ -163,7 +163,7 @@ $ git clone https://{% data variables.command_line.codeblock %}/USER/REPO.git > warning: remote HEAD refers to nonexistent ref, unable to checkout. ``` -To fix the error, you'll need to be an administrator of the repository on {% data variables.product.product_location %}. +To fix the error, you'll need to be an administrator of the repository on {% data variables.location.product_location %}. You'll want to [change the default branch](/github/administering-a-repository/changing-the-default-branch) of the repository. After that, you can get a list of all the available branches from the command line: diff --git a/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md b/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md index 53cf00e556..343a994c1e 100644 --- a/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md +++ b/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.md @@ -58,12 +58,12 @@ To reduce the size of your CODEOWNERS file, consider using wildcard patterns to A CODEOWNERS file uses a pattern that follows most of the same rules used in [gitignore](https://git-scm.com/docs/gitignore#_pattern_format) files. The pattern is followed by one or more {% data variables.product.prodname_dotcom %} usernames or team names using the standard `@username` or `@org/team-name` format. Users and teams must have explicit `write` access to the repository, even if the team's members already have access. -{% ifversion fpt or ghec%}In most cases, you{% else %}You{% endif %} can also refer to a user by an email address that has been added to their account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, for example `user@example.com`. {% ifversion fpt or ghec %} You cannot use an email address to refer to a {% data variables.product.prodname_managed_user %}. For more information about {% data variables.product.prodname_managed_users %}, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %} +{% ifversion fpt or ghec%}In most cases, you{% else %}You{% endif %} can also refer to a user by an email address that has been added to their account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, for example `user@example.com`. {% ifversion fpt or ghec %} You cannot use an email address to refer to a {% data variables.enterprise.prodname_managed_user %}. For more information about {% data variables.enterprise.prodname_managed_users %}, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %}{% endif %} CODEOWNERS paths are case sensitive, because {% data variables.product.prodname_dotcom %} uses a case sensitive file system. Since CODEOWNERS are evaluated by {% data variables.product.prodname_dotcom %}, even systems that are case insensitive (for example, macOS) must use paths and files that are cased correctly in the CODEOWNERS file. {% ifversion codeowners-errors %} -If any line in your CODEOWNERS file contains invalid syntax, that line will be skipped. When you navigate to the CODEOWNERS file in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}, you can see any errors highlighted. A list of errors in a repository's CODEOWNERS file is also accessible via the API. For more information, see "[Repositories](/rest/reference/repos#list-codeowners-errors)" in the REST API documentation. +If any line in your CODEOWNERS file contains invalid syntax, that line will be skipped. When you navigate to the CODEOWNERS file in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}, you can see any errors highlighted. A list of errors in a repository's CODEOWNERS file is also accessible via the API. For more information, see "[Repositories](/rest/reference/repos#list-codeowners-errors)" in the REST API documentation. {% else %} If any line in your CODEOWNERS file contains invalid syntax, the file will not be detected and will not be used to request reviews. {% endif %} diff --git a/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository.md b/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository.md index 3ac3c54bdd..6df07234e6 100644 --- a/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository.md +++ b/content/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository.md @@ -21,7 +21,7 @@ You're under no obligation to choose a license. However, without a license, the {% note %} -**Note:** If you publish your source code in a public repository on {% data variables.product.product_name %}, {% ifversion fpt or ghec %}according to the [Terms of Service](/free-pro-team@latest/github/site-policy/github-terms-of-service), {% endif %}other users of {% data variables.product.product_location %} have the right to view and fork your repository. If you have already created a repository and no longer want users to have access to the repository, you can make the repository private. When you change the visibility of a repository to private, existing forks or local copies created by other users will still exist. For more information, see "[Setting repository visibility](/github/administering-a-repository/setting-repository-visibility)." +**Note:** If you publish your source code in a public repository on {% data variables.product.product_name %}, {% ifversion fpt or ghec %}according to the [Terms of Service](/free-pro-team@latest/github/site-policy/github-terms-of-service), {% endif %}other users of {% data variables.location.product_location %} have the right to view and fork your repository. If you have already created a repository and no longer want users to have access to the repository, you can make the repository private. When you change the visibility of a repository to private, existing forks or local copies created by other users will still exist. For more information, see "[Setting repository visibility](/github/administering-a-repository/setting-repository-visibility)." {% endnote %} diff --git a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-the-commit-signoff-policy-for-your-repository.md b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-the-commit-signoff-policy-for-your-repository.md index aa4f4b097b..188b4b10dc 100644 --- a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-the-commit-signoff-policy-for-your-repository.md +++ b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-the-commit-signoff-policy-for-your-repository.md @@ -11,7 +11,7 @@ shortTitle: Manage the commit signoff policy ## About commit signoffs -Commit signoffs enable users to affirm that a commit complies with the rules and licensing governing a repository. You can enable compulsory commit signoffs on individual repositories for users committing through {% data variables.product.product_location %}'s web interface, making signing off on a commit a seemless part of the commit process. Once compulsory commit signoffs are enabled for a repository, every commit made to that repository through {% data variables.product.product_location %}'s web interface will automatically be signed off on by the commit author. +Commit signoffs enable users to affirm that a commit complies with the rules and licensing governing a repository. You can enable compulsory commit signoffs on individual repositories for users committing through {% data variables.location.product_location %}'s web interface, making signing off on a commit a seemless part of the commit process. Once compulsory commit signoffs are enabled for a repository, every commit made to that repository through {% data variables.location.product_location %}'s web interface will automatically be signed off on by the commit author. Organization owners can also enable compulsory commit signoffs at the organization level. For more information, see "[Managing the commit signoff policy for your organization](/organizations/managing-organization-settings/managing-the-commit-signoff-policy-for-your-organization)." diff --git a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md index 711e4c8357..9d2e1efb2c 100644 --- a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md +++ b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility.md @@ -23,7 +23,7 @@ Organization owners can restrict the ability to change repository visibility to {% ifversion ghec %} -Members of an {% data variables.product.prodname_emu_enterprise %} can only set the visibility of repositories owned by their personal account to private, and repositories in their enterprise's organizations can only be private or internal. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." +Members of an {% data variables.enterprise.prodname_emu_enterprise %} can only set the visibility of repositories owned by their personal account to private, and repositories in their enterprise's organizations can only be private or internal. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." {% endif %} @@ -35,7 +35,7 @@ We recommend reviewing the following caveats before you change the visibility of **Warning:** Changes to the visibility of a large repository or repository network may affect data integrity. Visibility changes can also have unintended effects on forks. {% data variables.product.company_short %} recommends the following before changing the visibility of a repository network. -- Wait for a period of reduced activity on {% data variables.product.product_location %}. +- Wait for a period of reduced activity on {% data variables.location.product_location %}. - Contact your {% ifversion ghes %}site administrator{% elsif ghae %}enterprise owner{% endif %} before proceeding. Your {% ifversion ghes %}site administrator{% elsif ghae %}enterprise owner{% endif %} can contact {% data variables.contact.contact_ent_support %} for further guidance. diff --git a/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md b/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md index 2805786381..d01f6e8e7a 100644 --- a/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md +++ b/content/repositories/releasing-projects-on-github/managing-releases-in-a-repository.md @@ -22,7 +22,7 @@ shortTitle: Manage releases --- ## About release management -You can create new releases with release notes, @mentions of contributors, and links to binary files, as well as edit or delete existing releases. +You can create new releases with release notes, @mentions of contributors, and links to binary files, as well as edit or delete existing releases. You can also create, modify, and delete releases by using the Releases API. For more information, see "[Releases](/rest/releases/releases)" in the REST API documentation. {% ifversion fpt or ghec %} You can also publish an action from a specific release in {% data variables.product.prodname_marketplace %}. For more information, see "[Publishing an action in the {% data variables.product.prodname_marketplace %}](/actions/creating-actions/publishing-actions-in-github-marketplace)." @@ -36,43 +36,62 @@ You can choose whether {% data variables.large_files.product_name_long %} ({% da {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.releases %} -3. Click **Draft a new release**. +1. Click **Draft a new release**. {% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.4 %}![Releases draft button](/assets/images/help/releases/draft-release-button-with-search.png){% else %}![Releases draft button](/assets/images/help/releases/draft_release_button.png){% endif %} -4. {% ifversion fpt or ghec or ghes > 3.2 or ghae %}Click **Choose a tag**, type{% else %}Type{% endif %} a version number for your release{% ifversion fpt or ghec or ghes > 3.2 or ghae %}, and press **Enter**{% endif %}. Alternatively, select an existing tag. +1. {% ifversion fpt or ghec or ghes > 3.2 or ghae %}Click **Choose a tag**, type{% else %}Type{% endif %} a version number for your release{% ifversion fpt or ghec or ghes > 3.2 or ghae %}, and press **Enter**{% endif %}. Alternatively, select an existing tag. {% ifversion fpt or ghec or ghes > 3.2 or ghae %}![Enter a tag](/assets/images/help/releases/releases-tag-create.png) -5. If you are creating a new tag, click **Create new tag**. +1. If you are creating a new tag, click **Create new tag**. - ![Confirm you want to create a new tag](/assets/images/help/releases/releases-tag-create-confirm.png) + ![Screenshot of confirming you want to create a new tag](/assets/images/help/releases/releases-tag-create-confirm.png) {% else %} - ![Releases tagged version](/assets/images/enterprise/releases/releases-tag-version.png) + ![Screenshot of the Releases tagged version](/assets/images/enterprise/releases/releases-tag-version.png) {% endif %} -5. If you have created a new tag, use the drop-down menu to select the branch that contains the project you want to release. +1. If you have created a new tag, use the drop-down menu to select the branch that contains the project you want to release. + + {% ifversion fpt or ghec or ghes > 3.2 or ghae %} + ![Screenshot of dropdown to choose a branch](/assets/images/help/releases/releases-choose-branch.png) + + {% else %} + ![Screenshot of the Releases tagged branch](/assets/images/enterprise/releases/releases-tag-branch.png){% endif %} - {% ifversion fpt or ghec or ghes > 3.2 or ghae %}![Choose a branch](/assets/images/help/releases/releases-choose-branch.png) - {% else %}![Releases tagged branch](/assets/images/enterprise/releases/releases-tag-branch.png){% endif %} {%- data reusables.releases.previous-release-tag %} -6. Type a title and description for your release. +1. Type a title and description for your release. {%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} If you @mention anyone in the description, the published release will include a **Contributors** section with an avatar list of all the mentioned users. {%- endif %} {% ifversion fpt or ghec or ghes > 3.3 %} Alternatively, you can automatically generate your release notes by clicking {% ifversion previous-release-tag %}**Generate release notes**{% else %}**Auto-generate release notes**{% endif %}.{% endif %}{% ifversion previous-release-tag %} - ![Releases description](/assets/images/help/releases/releases_description_auto.png){% else %} - ![Releases description](/assets/images/enterprise/3.5/releases/releases_description_auto.png){% endif %} + + ![Screenshot of the releases description](/assets/images/help/releases/releases_description_auto.png){% else %} + + ![Screenshot of the releases description](/assets/images/enterprise/3.5/releases/releases_description_auto.png){% endif %} + 1. Optionally, to include binary files such as compiled programs in your release, drag and drop or manually select files in the binaries box. - ![Providing a DMG with the Release](/assets/images/help/releases/releases_adding_binary.gif) -2. To notify users that the release is not ready for production and may be unstable, select **This is a pre-release**. - ![Checkbox to mark a release as prerelease](/assets/images/help/releases/prerelease_checkbox.png) + + ![Animated GIF of Providing a DMG with the Release](/assets/images/help/releases/releases_adding_binary.gif) + +1. To notify users that the release is not ready for production and may be unstable, select **This is a pre-release**. + + ![Screenshot of the checkbox to mark a release as prerelease](/assets/images/help/releases/prerelease_checkbox.png) + +{%- ifversion releases-set-latest-release %} +1. Optionally, you can select **Set as latest release**. If you do not select this option, the latest release label will automatically be assigned based on semantic versioning. + + ![Screenshot of the checkbox to mark a release as the latest release](/assets/images/help/releases/latest-release-checkbox.png) + +{%- endif %} {%- ifversion discussions %} 1. Optionally, if {% data variables.product.prodname_discussions %} are enabled in the repository, select **Create a discussion for this release**, then select the **Category** drop-down menu and click a category for the release discussion. - ![Checkbox to create a release discussion and drop-down menu to choose a category](/assets/images/help/releases/create-release-discussion.png) + + ![Screenshot of the checkbox to create a release discussion and drop-down menu to choose a category](/assets/images/help/releases/create-release-discussion.png) + {%- endif %} -9. If you're ready to publicize your release, click **Publish release**. To work on the release later, click **Save draft**. +1. If you're ready to publicize your release, click **Publish release**. To work on the release later, click **Save draft**. ![Publish release and Draft release buttons](/assets/images/help/releases/release_buttons.png) {%- ifversion fpt or ghec or ghes > 3.2 or ghae > 3.3 %} - You can then view your published or draft releases in the releases feed for your repository. For more information, see "[Viewing your repository's releases and tags](/github/administering-a-repository/releasing-projects-on-github/viewing-your-repositorys-releases-and-tags)." + You can then view your published or draft releases in the releases feed for your repository. For more information, see "[Screenshot of your repository's releases and tags](/github/administering-a-repository/releasing-projects-on-github/viewing-your-repositorys-releases-and-tags)." {% ifversion fpt or ghec or ghes > 3.4 or ghae > 3.3 %} ![Published release with @mentioned contributors](/assets/images/help/releases/refreshed-releases-overview-with-contributors.png) diff --git a/content/repositories/working-with-files/managing-files/adding-a-file-to-a-repository.md b/content/repositories/working-with-files/managing-files/adding-a-file-to-a-repository.md index b11db4e562..4907c70c9c 100644 --- a/content/repositories/working-with-files/managing-files/adding-a-file-to-a-repository.md +++ b/content/repositories/working-with-files/managing-files/adding-a-file-to-a-repository.md @@ -44,7 +44,7 @@ Files that you add to a repository via a browser are limited to {% data variable ## Adding a file to a repository using the command line -You can upload an existing file to a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} using the command line. +You can upload an existing file to a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} using the command line. {% tip %} diff --git a/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md b/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md index 358b0e8a2b..12765fb394 100644 --- a/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md +++ b/content/repositories/working-with-files/managing-large-files/about-large-files-on-github.md @@ -40,11 +40,11 @@ shortTitle: Large files {% endnote %} -{% ifversion ghes %}By default, {% endif %}{% data variables.product.product_name %} blocks files larger than {% data variables.large_files.max_github_size %}. {% ifversion ghes %}However, a site administrator can configure a different limit for {% data variables.product.product_location %}. For more information, see "[Setting Git push limits](/enterprise/admin/guides/installation/setting-git-push-limits)."{% endif %} +{% ifversion ghes %}By default, {% endif %}{% data variables.product.product_name %} blocks files larger than {% data variables.large_files.max_github_size %}. {% ifversion ghes %}However, a site administrator can configure a different limit for {% data variables.location.product_location %}. For more information, see "[Setting Git push limits](/enterprise/admin/guides/installation/setting-git-push-limits)."{% endif %} To track files beyond this limit, you must use {% data variables.large_files.product_name_long %} ({% data variables.large_files.product_name_short %}). For more information, see "[About {% data variables.large_files.product_name_long %}](/repositories/working-with-files/managing-large-files/about-git-large-file-storage)." -If you need to distribute large files within your repository, you can create releases on {% data variables.product.product_location %} instead of tracking the files. For more information, see "[Distributing large binaries](#distributing-large-binaries)." +If you need to distribute large files within your repository, you can create releases on {% data variables.location.product_location %} instead of tracking the files. For more information, see "[Distributing large binaries](#distributing-large-binaries)." Git is not designed to handle large SQL files. To share large databases with other developers, we recommend using [Dropbox](https://www.dropbox.com/). @@ -62,13 +62,13 @@ Git is not designed to serve as a backup tool. However, there are many solutions {% warning %} -**Warning**: These procedures will permanently remove files from the repository on your computer and {% data variables.product.product_location %}. If the file is important, make a local backup copy in a directory outside of the repository. +**Warning**: These procedures will permanently remove files from the repository on your computer and {% data variables.location.product_location %}. If the file is important, make a local backup copy in a directory outside of the repository. {% endwarning %} ### Removing a file added in the most recent unpushed commit -If the file was added with your most recent commit, and you have not pushed to {% data variables.product.product_location %}, you can delete the file and amend the commit: +If the file was added with your most recent commit, and you have not pushed to {% data variables.location.product_location %}, you can delete the file and amend the commit: {% data reusables.command_line.open_the_multi_os_terminal %} {% data reusables.command_line.switching_directories_procedural %} @@ -84,7 +84,7 @@ If the file was added with your most recent commit, and you have not pushed to { # Simply making a new commit won't work, as you need # to remove the file from the unpushed history as well ``` -5. Push your commits to {% data variables.product.product_location %}: +5. Push your commits to {% data variables.location.product_location %}: ```shell $ git push # Push our rewritten, smaller commit @@ -96,7 +96,7 @@ If you added a file in an earlier commit, you need to remove it from the reposit ## Distributing large binaries -If you need to distribute large files within your repository, you can create releases on {% data variables.product.product_location %}. Releases allow you to package software, release notes, and links to binary files, for other people to use. For more information, visit "[About releases](/github/administering-a-repository/about-releases)." +If you need to distribute large files within your repository, you can create releases on {% data variables.location.product_location %}. Releases allow you to package software, release notes, and links to binary files, for other people to use. For more information, visit "[About releases](/github/administering-a-repository/about-releases)." {% ifversion fpt or ghec %} diff --git a/content/repositories/working-with-files/using-files/getting-permanent-links-to-files.md b/content/repositories/working-with-files/using-files/getting-permanent-links-to-files.md index 6f5652be4e..d16c96cd5e 100644 --- a/content/repositories/working-with-files/using-files/getting-permanent-links-to-files.md +++ b/content/repositories/working-with-files/using-files/getting-permanent-links-to-files.md @@ -1,6 +1,6 @@ --- title: Getting permanent links to files -intro: 'When viewing a file on {% data variables.product.product_location %}, you can press the "y" key to update the URL to a permalink to the exact version of the file you see.' +intro: 'When viewing a file on {% data variables.location.product_location %}, you can press the "y" key to update the URL to a permalink to the exact version of the file you see.' redirect_from: - /articles/getting-a-permanent-link-to-a-file - /articles/how-do-i-get-a-permanent-link-from-file-view-to-permanent-blob-url @@ -24,7 +24,7 @@ shortTitle: Permanent links to files ## File views show the latest version on a branch -When viewing a file on {% data variables.product.product_location %}, you usually see the version at the current head of a branch. For example: +When viewing a file on {% data variables.location.product_location %}, you usually see the version at the current head of a branch. For example: * [https://github.com/github/codeql/blob/**main**/README.md](https://github.com/github/codeql/blob/main/README.md) diff --git a/content/repositories/working-with-files/using-files/working-with-non-code-files.md b/content/repositories/working-with-files/using-files/working-with-non-code-files.md index 229230ac98..5dd1df54fe 100644 --- a/content/repositories/working-with-files/using-files/working-with-non-code-files.md +++ b/content/repositories/working-with-files/using-files/working-with-non-code-files.md @@ -49,7 +49,7 @@ shortTitle: Working with non-code files ### Viewing images -You can directly browse and view images in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}: +You can directly browse and view images in your repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}: ![inline image](/assets/images/help/images/view.png) @@ -144,7 +144,7 @@ GitHub supports rendering tabular data in the form of *.csv* (comma-separated) a ![Rendered CSV sample](/assets/images/help/repository/rendered_csv.png) -When viewed, any _.csv_ or _.tsv_ file committed to a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} automatically renders as an interactive table, complete with headers and row numbering. By default, we'll always assume the first row is your header row. +When viewed, any _.csv_ or _.tsv_ file committed to a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} automatically renders as an interactive table, complete with headers and row numbering. By default, we'll always assume the first row is your header row. You can link to a particular row by clicking the row number, or select multiple rows by holding down the shift key. Just copy the URL and send it to a friend. @@ -327,9 +327,9 @@ It may still be possible to render the data by converting the `.geojson` file to ## Working with Jupyter Notebook files on {% data variables.product.prodname_dotcom %} -When you add Jupyter Notebook or IPython Notebook files with a *.ipynb* extension on {% data variables.product.product_location %}, they will render as static HTML files in your repository. +When you add Jupyter Notebook or IPython Notebook files with a *.ipynb* extension on {% data variables.location.product_location %}, they will render as static HTML files in your repository. -The interactive features of the notebook, such as custom JavaScript plots, will not work in your repository on {% data variables.product.product_location %}. For an example, see [*Linking and Interactions.ipynb*](https://github.com/bokeh/bokeh-notebooks/blob/main/tutorial/06%20-%20Linking%20and%20Interactions.ipynb). +The interactive features of the notebook, such as custom JavaScript plots, will not work in your repository on {% data variables.location.product_location %}. For an example, see [*Linking and Interactions.ipynb*](https://github.com/bokeh/bokeh-notebooks/blob/main/tutorial/06%20-%20Linking%20and%20Interactions.ipynb). To view your Jupyter notebook with JavaScript content rendered or to share your notebook files with others you can use [nbviewer](https://nbviewer.jupyter.org/). For an example, see [*Linking and Interactions.ipynb*](https://nbviewer.jupyter.org/github/bokeh/bokeh-notebooks/blob/main/tutorial/06%20-%20Linking%20and%20Interactions.ipynb) rendered on nbviewer. diff --git a/content/rest/activity/notifications.md b/content/rest/activity/notifications.md index c67b509fa5..1623a3b424 100644 --- a/content/rest/activity/notifications.md +++ b/content/rest/activity/notifications.md @@ -13,6 +13,8 @@ miniTocMaxHeadingLevel: 3 ## About the Notifications API +{% data reusables.user-settings.notifications-api-classic-pat-only %} + The Notifications API lets you manage {% data variables.product.product_name %} notifications. For more information about notifications, see "[About notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications)." All Notification API calls require the `notifications` or `repo` API scopes. Doing this will give read-only access to some issue and commit content. You will still need the `repo` scope to access issues and commits from their respective endpoints. diff --git a/content/rest/apps/oauth-applications.md b/content/rest/apps/oauth-applications.md index 406e67d4ce..e964f5eb47 100644 --- a/content/rest/apps/oauth-applications.md +++ b/content/rest/apps/oauth-applications.md @@ -14,4 +14,4 @@ versions: ## About the {% data variables.product.prodname_oauth_app %} API -You can use this API to manage the OAuth tokens an {% data variables.product.prodname_oauth_app %} uses to access people's accounts on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %}. +You can use this API to manage the OAuth tokens an {% data variables.product.prodname_oauth_app %} uses to access people's accounts on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %}. diff --git a/content/rest/codespaces/codespaces.md b/content/rest/codespaces/codespaces.md index cf77fb2b62..ce37af620a 100644 --- a/content/rest/codespaces/codespaces.md +++ b/content/rest/codespaces/codespaces.md @@ -11,4 +11,4 @@ miniTocMaxHeadingLevel: 3 ## About the Codespaces API -The {% data variables.product.prodname_github_codespaces %} API enables you to manage {% data variables.product.prodname_codespaces %} using the REST API. This API is available for authenticated users and OAuth Apps, but not GitHub Apps. For more information, see "[{% data variables.product.prodname_codespaces %}](/codespaces)." +The {% data variables.product.prodname_github_codespaces %} API enables you to manage {% data variables.product.prodname_codespaces %} using the REST API. This API is available for authenticated users, {% data variables.product.prodname_oauth_apps %}, and {% data variables.product.prodname_github_apps %}. For more information, see "[{% data variables.product.prodname_codespaces %}](/codespaces)." diff --git a/content/rest/enterprise-admin/admin-stats.md b/content/rest/enterprise-admin/admin-stats.md index ec10b2ad51..6be1e3b2cf 100644 --- a/content/rest/enterprise-admin/admin-stats.md +++ b/content/rest/enterprise-admin/admin-stats.md @@ -12,3 +12,5 @@ miniTocMaxHeadingLevel: 3 --- *It is only available to [authenticated](/rest/overview/resources-in-the-rest-api#authentication) site administrators.* Normal users will receive a `404` response if they try to access it. + +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/enterprise-admin/announcement.md b/content/rest/enterprise-admin/announcement.md index b63dc17017..d699a2b2f5 100644 --- a/content/rest/enterprise-admin/announcement.md +++ b/content/rest/enterprise-admin/announcement.md @@ -12,3 +12,5 @@ miniTocMaxHeadingLevel: 3 ## Announcement The Announcements API allows you to manage the global announcement banner in your enterprise. For more information, see "[Customizing user messages for your enterprise](/admin/user-management/customizing-user-messages-for-your-enterprise#creating-a-global-announcement-banner)." + +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/enterprise-admin/audit-log.md b/content/rest/enterprise-admin/audit-log.md index 32f7fafa9c..33ca7acbfc 100644 --- a/content/rest/enterprise-admin/audit-log.md +++ b/content/rest/enterprise-admin/audit-log.md @@ -10,3 +10,4 @@ topics: miniTocMaxHeadingLevel: 3 --- +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/enterprise-admin/billing.md b/content/rest/enterprise-admin/billing.md index ea581365d7..ff04adef94 100644 --- a/content/rest/enterprise-admin/billing.md +++ b/content/rest/enterprise-admin/billing.md @@ -10,3 +10,4 @@ topics: miniTocMaxHeadingLevel: 3 --- +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/enterprise-admin/global-webhooks.md b/content/rest/enterprise-admin/global-webhooks.md index 0310132e2f..d50e201ec0 100644 --- a/content/rest/enterprise-admin/global-webhooks.md +++ b/content/rest/enterprise-admin/global-webhooks.md @@ -12,3 +12,5 @@ miniTocMaxHeadingLevel: 3 Global webhooks can subscribe to the [organization](/developers/webhooks-and-events/webhook-events-and-payloads#organization), [user](/developers/webhooks-and-events/webhook-events-and-payloads#user), [repository](/developers/webhooks-and-events/webhook-events-and-payloads#repository), [team](/developers/webhooks-and-events/webhook-events-and-payloads#team), [member](/developers/webhooks-and-events/webhook-events-and-payloads#member), [membership](/developers/webhooks-and-events/webhook-events-and-payloads#membership), [fork](/developers/webhooks-and-events/webhook-events-and-payloads#fork), and [ping](/developers/webhooks-and-events/about-webhooks#ping-event) event types. *This API is only available to [authenticated](/rest/overview/resources-in-the-rest-api#authentication) site administrators.* Normal users will receive a `404` response if they try to access it. To learn how to configure global webhooks, see [About global webhooks](/enterprise/admin/user-management/about-global-webhooks). + +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/enterprise-admin/index.md b/content/rest/enterprise-admin/index.md index 3350cf559d..4e9927d3a9 100644 --- a/content/rest/enterprise-admin/index.md +++ b/content/rest/enterprise-admin/index.md @@ -43,6 +43,8 @@ children: {% endif %} +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} + ### Endpoint URLs REST API endpoints{% ifversion ghes %}—except [Management Console](#management-console) API endpoints—{% endif %} are prefixed with the following URL: diff --git a/content/rest/enterprise-admin/ldap.md b/content/rest/enterprise-admin/ldap.md index 23349e7be4..c4727266f5 100644 --- a/content/rest/enterprise-admin/ldap.md +++ b/content/rest/enterprise-admin/ldap.md @@ -9,3 +9,5 @@ miniTocMaxHeadingLevel: 3 --- With the LDAP mapping endpoints, you're able to update the Distinguished Name (DN) that a user or team maps to. Note that the LDAP endpoints are generally only effective if your {% data variables.product.product_name %} appliance has [LDAP Sync enabled](/enterprise/admin/authentication/using-ldap). The [Update LDAP mapping for a user](#update-ldap-mapping-for-a-user) endpoint can be used when LDAP is enabled, even if LDAP Sync is disabled. + +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/enterprise-admin/license.md b/content/rest/enterprise-admin/license.md index 4d21069969..6af199deca 100644 --- a/content/rest/enterprise-admin/license.md +++ b/content/rest/enterprise-admin/license.md @@ -11,3 +11,5 @@ miniTocMaxHeadingLevel: 3 --- *It is only available to [authenticated](/rest/overview/resources-in-the-rest-api#authentication) site administrators.* Normal users will receive a `404` response if they try to access it. + +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/enterprise-admin/management-console.md b/content/rest/enterprise-admin/management-console.md index 961fc9d74a..8bf82468bd 100644 --- a/content/rest/enterprise-admin/management-console.md +++ b/content/rest/enterprise-admin/management-console.md @@ -33,3 +33,5 @@ You can also use standard HTTP authentication to send this token. For example: ```shell $ curl -L -u "api_key:YOUR_PASSWORD" 'https://HOSTNAME:ADMIN-PORT/setup/api' ``` + +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/enterprise-admin/org-pre-receive-hooks.md b/content/rest/enterprise-admin/org-pre-receive-hooks.md index e292a96ba2..44a2256f6e 100644 --- a/content/rest/enterprise-admin/org-pre-receive-hooks.md +++ b/content/rest/enterprise-admin/org-pre-receive-hooks.md @@ -9,6 +9,8 @@ miniTocMaxHeadingLevel: 3 allowTitleToDifferFromFilename: true --- +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} + ### Object attributes | Name | Type | Description | diff --git a/content/rest/enterprise-admin/orgs.md b/content/rest/enterprise-admin/orgs.md index e9838050d7..4f5bfb8d52 100644 --- a/content/rest/enterprise-admin/orgs.md +++ b/content/rest/enterprise-admin/orgs.md @@ -11,3 +11,5 @@ allowTitleToDifferFromFilename: true --- *It is only available to [authenticated](/rest/overview/resources-in-the-rest-api#authentication) site administrators.* Normal users will receive a `404` response if they try to access it. + +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/enterprise-admin/pre-receive-environments.md b/content/rest/enterprise-admin/pre-receive-environments.md index 49b9c1cc1e..f03da691ea 100644 --- a/content/rest/enterprise-admin/pre-receive-environments.md +++ b/content/rest/enterprise-admin/pre-receive-environments.md @@ -11,6 +11,8 @@ miniTocMaxHeadingLevel: 3 *It is only available to [authenticated](/rest/overview/resources-in-the-rest-api#authentication) site administrators.* Normal users will receive a `404` response if they try to access it. +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} + ### Object attributes #### Pre-receive Environment diff --git a/content/rest/enterprise-admin/pre-receive-hooks.md b/content/rest/enterprise-admin/pre-receive-hooks.md index 224bedfe2b..e9fdf6e4a8 100644 --- a/content/rest/enterprise-admin/pre-receive-hooks.md +++ b/content/rest/enterprise-admin/pre-receive-hooks.md @@ -10,6 +10,8 @@ miniTocMaxHeadingLevel: 3 *It is only available to [authenticated](/rest/overview/resources-in-the-rest-api#authentication) site administrators.* Normal users will receive a `404` response if they try to access it. +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} + ### Object attributes #### Pre-receive Hook diff --git a/content/rest/enterprise-admin/repo-pre-receive-hooks.md b/content/rest/enterprise-admin/repo-pre-receive-hooks.md index 800572be77..cd2153eedf 100644 --- a/content/rest/enterprise-admin/repo-pre-receive-hooks.md +++ b/content/rest/enterprise-admin/repo-pre-receive-hooks.md @@ -9,6 +9,8 @@ miniTocMaxHeadingLevel: 3 allowTitleToDifferFromFilename: true --- +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} + ### Object attributes | Name | Type | Description | diff --git a/content/rest/enterprise-admin/scim.md b/content/rest/enterprise-admin/scim.md index a95eb461b5..ae7b44b582 100644 --- a/content/rest/enterprise-admin/scim.md +++ b/content/rest/enterprise-admin/scim.md @@ -14,6 +14,7 @@ miniTocMaxHeadingLevel: 3 {% endnote %} +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} ## About the SCIM API {% data variables.product.product_name %} provides a SCIM API for use by SCIM-enabled Identity Providers (IdPs). An integration on the IdP can use the API to automatically provision, manage, or deprovision user accounts on a {% data variables.product.product_name %} instance that uses SAML single sign-on (SSO) for authentication. For more information about SAML SSO, see "[About SAML for enterprise IAM](/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam)." @@ -38,11 +39,11 @@ GET /scim/v2/Users/{scim_user_id} The SCIM integration on the IdP performs actions on behalf of an enterprise owner for the {% data variables.product.product_name %} instance. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owners)." -To authenticate requests to the API, the person who configures SCIM on the IdP must use a personal access token (classic) with `admin:enterprise` scope, which the IdP must provide in the request's `Authorization` header. For more information about personal access tokens (classic), see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". +To authenticate requests to the API, the person who configures SCIM on the IdP must use a {% data variables.product.pat_v1 %} with `admin:enterprise` scope, which the IdP must provide in the request's `Authorization` header. For more information about {% data variables.product.pat_v1_plural %}, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". {% note %} -**Note:** Enterprise owners must generate and use a personal access token (classic) for authentication of requests to the SCIM API. {% ifversion ghes > 3.8 %}Fine-grained personal access tokens and {% endif %}GitHub app callers are not supported at this time. +**Note:** Enterprise owners must generate and use a {% data variables.product.pat_v1 %} for authentication of requests to the SCIM API. {% ifversion ghes > 3.8 %}{% data variables.product.pat_v2_caps %} and {% endif %}GitHub app callers are not supported at this time. {% endnote %} diff --git a/content/rest/enterprise-admin/users.md b/content/rest/enterprise-admin/users.md index fa1e868eb3..b5548dd5c7 100644 --- a/content/rest/enterprise-admin/users.md +++ b/content/rest/enterprise-admin/users.md @@ -10,3 +10,5 @@ miniTocMaxHeadingLevel: 3 --- *It is only available to [authenticated](/rest/overview/resources-in-the-rest-api#authentication) site administrators.* Normal users will receive a `403` response if they try to access it. + +{% data reusables.user-settings.enterprise-admin-api-classic-pat-only %} diff --git a/content/rest/gitignore.md b/content/rest/gitignore.md index 18c936a08a..374cb4bb75 100644 --- a/content/rest/gitignore.md +++ b/content/rest/gitignore.md @@ -15,7 +15,7 @@ redirect_from: ## About the Gitignore API -When you create a new repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} via the API, you can specify a [.gitignore template](/github/getting-started-with-github/ignoring-files) to apply to the repository upon creation. The .gitignore templates API lists and fetches templates from the {% data variables.product.product_name %} [.gitignore repository](https://github.com/github/gitignore). +When you create a new repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} via the API, you can specify a [.gitignore template](/github/getting-started-with-github/ignoring-files) to apply to the repository upon creation. The .gitignore templates API lists and fetches templates from the {% data variables.product.product_name %} [.gitignore repository](https://github.com/github/gitignore). ### Custom media types for gitignore diff --git a/content/rest/guides/building-a-ci-server.md b/content/rest/guides/building-a-ci-server.md index 468aa770b8..afe94b461f 100644 --- a/content/rest/guides/building-a-ci-server.md +++ b/content/rest/guides/building-a-ci-server.md @@ -113,7 +113,7 @@ new pull request every time you make a change! Since we're interacting with the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API, we'll use [Octokit.rb][octokit.rb] to manage our interactions. We'll configure that client with -[a personal access token][access token]: +[a {% data variables.product.pat_generic %}][access token]: ``` ruby # !!! DO NOT EVER USE HARD-CODED VALUES IN A REAL APP !!! diff --git a/content/rest/guides/getting-started-with-the-rest-api.md b/content/rest/guides/getting-started-with-the-rest-api.md index 1380647a41..ed666cdb27 100644 --- a/content/rest/guides/getting-started-with-the-rest-api.md +++ b/content/rest/guides/getting-started-with-the-rest-api.md @@ -54,7 +54,7 @@ gh api /octocat --method GET To make a request using JavaScript, you can use Octokit.js. For more information, see [the Octokit.js README](https://github.com/octokit/octokit.js/#readme). -First, create an instance of `Octokit`.{% ifversion ghes or ghae %} Set the base URL to `{% data variables.product.api_url_code %}`. Replace `[hostname]` with the name of {% data variables.product.product_location %}.{% endif %} +First, create an instance of `Octokit`.{% ifversion ghes or ghae %} Set the base URL to `{% data variables.product.api_url_code %}`. Replace `[hostname]` with the name of {% data variables.location.product_location %}.{% endif %} ```javascript const octokit = new Octokit({ {% ifversion ghes or ghae %} @@ -72,7 +72,7 @@ await octokit.request("GET /octocat", {}); {% curl %} -Prepend the base URL for the {% data variables.product.prodname_dotcom %} REST API, `{% data variables.product.api_url_code %}`, to the path to get the full URL: `{% data variables.product.api_url_code %}/octocat`.{% ifversion ghes or ghae %} Replace `[hostname]` with the name of {% data variables.product.product_location %}.{% endif %} +Prepend the base URL for the {% data variables.product.prodname_dotcom %} REST API, `{% data variables.product.api_url_code %}`, to the path to get the full URL: `{% data variables.product.api_url_code %}/octocat`.{% ifversion ghes or ghae %} Replace `[hostname]` with the name of {% data variables.location.product_location %}.{% endif %} Use the `curl` command in your command line. Use the `--request` or `-X` flag followed by the HTTP method. Use the `--url` flag followed by the full URL. @@ -99,7 +99,7 @@ Many operations require authentication or return additional information if you a You can authenticate your request by adding a token. -If you want to use the {% data variables.product.company_short %} REST API for personal use, you can create a personal access token (PAT). The REST API operations used in this article require `repo` scope for personal access tokens. Other operations may require different scopes. For more information about creating a personal access token, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." +If you want to use the {% data variables.product.company_short %} REST API for personal use, you can create a {% data variables.product.pat_generic %}. The REST API operations used in this article require `repo` scope for {% data variables.product.pat_v1_plural %}{% ifversion pat-v2 %} or, unless otherwise noted, read-only access to public repositories for {% data variables.product.pat_v2 %}s{% endif %}. Other operations may require different scopes{% ifversion pat-v2%} or permissions{% endif %}. For more information about creating a {% data variables.product.pat_generic %}, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." If you want to use the API on behalf of an organization or another user, {% data variables.product.company_short %} recommends that you use a {% data variables.product.prodname_github_app %}. If an operation is available to {% data variables.product.prodname_github_apps %}, the REST reference documentation for that operation will say "Works with GitHub Apps." The REST API operations used in this article require `issues` read and write permissions for {% data variables.product.prodname_github_apps %}. Other operations may require different permissions. For more information, see "[Creating a GitHub App](/developers/apps/building-github-apps/creating-a-github-app)", "[Authenticating with GitHub Apps](/developers/apps/building-github-apps/authenticating-with-github-apps), and "[Identifying and authorizing users for GitHub Apps](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps)." @@ -133,7 +133,7 @@ If these options are not possible, consider using another service such as [the 1 {% endwarning %} -To authenticate with the Octokit.js library, you can pass your token when you create an instance of `Octokit`. Replace `YOUR-TOKEN` with your token.{% ifversion ghes or ghae %} Replace `[hostname]` with the name of {% data variables.product.product_location %}.{% endif %} +To authenticate with the Octokit.js library, you can pass your token when you create an instance of `Octokit`. Replace `YOUR-TOKEN` with your token.{% ifversion ghes or ghae %} Replace `[hostname]` with the name of {% data variables.location.product_location %}.{% endif %} ```javascript const octokit = new Octokit({ {% ifversion ghes or ghae %} @@ -340,7 +340,7 @@ Path parameters modify the operation path. For example, the "List repository iss {% ifversion ghes or ghae %} {% note %} -**Note:** In order for this command to work for {% data variables.product.product_location %}, replace `octocat/Spoon-Knife` with a repository owned by {% data variables.product.product_location %}. Otherwise, rerun the `gh auth login` command to authenticate to {% data variables.product.prodname_dotcom_the_website %} instead of {% data variables.product.product_location %}. +**Note:** In order for this command to work for {% data variables.location.product_location %}, replace `octocat/Spoon-Knife` with a repository owned by {% data variables.location.product_location %}. Otherwise, rerun the `gh auth login` command to authenticate to {% data variables.product.prodname_dotcom_the_website %} instead of {% data variables.location.product_location %}. {% endnote %} {% endif %} @@ -358,7 +358,7 @@ gh api --header 'Accept: application/vnd.github+json' --method GET /repos/octoca {% ifversion ghes or ghae %} {% note %} -**Note:** In order for this example to work for {% data variables.product.product_location %}, replace `octocat/Spoon-Knife` with a repository owned by {% data variables.product.product_location %}. Otherwise, create a new `Octokit` instance and do not specify `baseURL`. +**Note:** In order for this example to work for {% data variables.location.product_location %}, replace `octocat/Spoon-Knife` with a repository owned by {% data variables.location.product_location %}. Otherwise, create a new `Octokit` instance and do not specify `baseURL`. {% endnote %} {% endif %} @@ -381,7 +381,7 @@ To get issues from the `octocat/Spoon-Knife` repository, replace `{owner}` with {% ifversion ghes or ghae %} {% note %} -**Note:** If you want to use {% data variables.product.product_location %} instead of {% data variables.product.prodname_dotcom_the_website %}, use `{% data variables.product.api_url_code %}` instead of `https://api.github.com` and replace `[hostname]` with the name of {% data variables.product.product_location %}. Replace `octocat/Spoon-Knife` with a repository owned by {% data variables.product.product_location %}. +**Note:** If you want to use {% data variables.location.product_location %} instead of {% data variables.product.prodname_dotcom_the_website %}, use `{% data variables.product.api_url_code %}` instead of `https://api.github.com` and replace `[hostname]` with the name of {% data variables.location.product_location %}. Replace `octocat/Spoon-Knife` with a repository owned by {% data variables.location.product_location %}. {% endnote %} {% endif %} @@ -474,6 +474,16 @@ gh api --header 'Accept: application/vnd.github+json' --method POST /repos/octoc {% javascript %} +{% ifversion pat-v2 %} + +{% note %} + +If you are using a {% data variables.product.pat_v2 %}, you must replace `octocat/Spoon-Knife` with a repository that you own or that is owned by an organization that you are a member of. Your token must have access to that repository and have read and write permissions for repository issues. For more information about creating a repository, see "[Create a repo](/get-started/quickstart/create-a-repo)." For more information about granting access and permissions to a {% data variables.product.pat_v2 %}, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + +{% endnote %} + +{% endif %} + When you make a request with Octokit.js, all parameters, including body parameters, are passed in an object as the second argument to the `request` method. ```javascript @@ -489,6 +499,16 @@ await octokit.request("POST /repos/{owner}/{repo}/issues", { {% curl %} +{% ifversion pat-v2 %} + +{% note %} + +If you are using a {% data variables.product.pat_v2 %}, you must replace `octocat/Spoon-Knife` with a repository that you own or that is owned by an organization that you are a member of. Your token must have access to that repository and have read and write permissions for repository issues. For more information about creating a repository, see "[Create a repo](/get-started/quickstart/create-a-repo)." For more information about granting access and permissions to a {% data variables.product.pat_v2 %}, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + +{% endnote %} + +{% endif %} + For cURL, use the `--data` flag to pass the body parameters in a JSON object. ```shell diff --git a/content/rest/guides/traversing-with-pagination.md b/content/rest/guides/traversing-with-pagination.md index 4b13c46e3d..ed7f9b1189 100644 --- a/content/rest/guides/traversing-with-pagination.md +++ b/content/rest/guides/traversing-with-pagination.md @@ -109,7 +109,7 @@ pagination, so let's write a little Ruby script that does everything we've just described above. As always, first we'll require [GitHub's Octokit.rb][octokit.rb] Ruby library, and -pass in our [personal access token][personal token]: +pass in our [{% data variables.product.pat_generic %}][personal token]: ``` ruby require 'octokit' diff --git a/content/rest/guides/working-with-comments.md b/content/rest/guides/working-with-comments.md index 3b5736faea..201ac1ffe3 100644 --- a/content/rest/guides/working-with-comments.md +++ b/content/rest/guides/working-with-comments.md @@ -32,7 +32,7 @@ Request is just an Issue with code, it makes sense to use the Issues API to create comments on a Pull Request. We'll demonstrate fetching Pull Request comments by creating a Ruby script using -[Octokit.rb][octokit.rb]. You'll also want to create a [personal access token][personal token]. +[Octokit.rb][octokit.rb]. You'll also want to create a [{% data variables.product.pat_generic %}][personal token]. The following code should help you get started accessing comments from a Pull Request using Octokit.rb: diff --git a/content/rest/migrations/source-imports.md b/content/rest/migrations/source-imports.md index 43dd850fe3..0034ccd814 100644 --- a/content/rest/migrations/source-imports.md +++ b/content/rest/migrations/source-imports.md @@ -11,6 +11,8 @@ miniTocMaxHeadingLevel: 3 ## About the Source imports API +{% data reusables.user-settings.imports-api-classic-pat-only %} + {% data variables.migrations.source_imports_intro %} A typical source import would start the import and then (optionally) update the authors and/or update the preference for using Git LFS if large files exist in the import. You can also create a webhook that listens for the [`RepositoryImportEvent`](/developers/webhooks-and-events/webhook-events-and-payloads#repository_import) to find out the status of the import. A more detailed example can be seen in this diagram: diff --git a/content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md b/content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md new file mode 100644 index 0000000000..791f1fb88a --- /dev/null +++ b/content/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens.md @@ -0,0 +1,824 @@ +--- +title: Endpoints available for fine-grained personal access tokens +intro: "Your {% data variables.product.pat_v2 %} can make requests to the following REST endpoints." +versions: + feature: pat-v2 +shortTitle: "{% data variables.product.pat_v2_caps %}-enabled endpoints" +--- + +## actions + +- [`GET /repos/{owner}/{repo}/actions/cache/usage`](/rest/reference/actions#get-github-actions-cache-usage-for-a-repository) +- [`GET /repos/{owner}/{repo}/actions/caches`](/rest/actions/cache#list-github-actions-caches-for-a-repository) +- [`DELETE /repos/{owner}/{repo}/actions/caches`](/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key) +- [`DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}`](/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id) +- [`GET /repos/{owner}/{repo}/actions/secrets`](/rest/reference/actions#list-repository-secrets) +- [`GET /repos/{owner}/{repo}/actions/secrets/{secret_name}`](/rest/reference/actions#get-a-repository-secret) +- [`PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}`](/rest/reference/actions#create-or-update-a-repository-secret) +- [`DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}`](/rest/reference/actions#delete-a-repository-secret) +- [`GET /repos/{owner}/{repo}/actions/secrets/public-key`](/rest/reference/actions#get-a-repository-public-key) +- [`GET /repos/{owner}/{repo}/actions/artifacts`](/rest/reference/actions#list-artifacts-for-a-repository) +- [`GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}`](/rest/reference/actions#get-an-artifact) +- [`DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}`](/rest/reference/actions#delete-an-artifact) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts`](/rest/reference/actions#list-workflow-run-artifacts) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/reference/actions#get-pending-deployments-for-a-workflow-run) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/reference/actions#review-pending-deployments-for-a-workflow-run) +- [`GET /enterprises/{enterprise}/actions/cache/usage`](/rest/reference/actions#get-github-actions-cache-usage-for-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/permissions`](/rest/reference/actions#get-github-actions-permissions-for-an-enterprise) +- [`PUT /enterprises/{enterprise}/actions/permissions`](/rest/reference/actions#set-github-actions-permissions-for-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/permissions/organizations`](/rest/reference/actions#list-selected-organizations-enabled-for-github-actions-in-an-enterprise) +- [`PUT /enterprises/{enterprise}/actions/permissions/organizations`](/rest/reference/actions#set-selected-organizations-enabled-for-github-actions-in-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/permissions/selected-actions`](/rest/reference/actions#get-allowed-actions-for-an-enterprise) +- [`PUT /enterprises/{enterprise}/actions/permissions/selected-actions`](/rest/reference/actions#set-allowed-actions-for-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/permissions/workflow`](/rest/reference/actions#get-default-workflow-permissions-for-an-enterprise) +- [`PUT /enterprises/{enterprise}/actions/permissions/workflow`](/rest/reference/actions#set-default-workflow-permissions-for-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/runner-groups`](/rest/reference/actions#list-self-hosted-runner-groups-for-an-enterprise) +- [`POST /enterprises/{enterprise}/actions/runner-groups`](/rest/reference/actions#create-self-hosted-runner-group-for-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}`](/rest/reference/actions#get-a-self-hosted-runner-group-for-an-enterprise) +- [`PATCH /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}`](/rest/reference/actions#update-a-self-hosted-runner-group-for-an-enterprise) +- [`DELETE /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}`](/rest/reference/actions#delete-a-self-hosted-runner-group-from-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations`](/rest/reference/actions#list-organization-access-to-a-self-hosted-runner-group-in-a-enterprise) +- [`PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations`](/rest/reference/actions#set-organization-access-to-a-self-hosted-runner-group-in-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners`](/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-enterprise) +- [`PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners`](/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-enterprise) +- [`PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}`](/rest/reference/actions#add-a-self-hosted-runner-to-a-group-for-an-enterprise) +- [`DELETE /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}`](/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/runners`](/rest/reference/actions#list-self-hosted-runners-for-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/runners/{runner_id}`](/rest/reference/actions#get-a-self-hosted-runner-for-an-enterprise) +- [`DELETE /enterprises/{enterprise}/actions/runners/{runner_id}`](/rest/reference/actions#delete-self-hosted-runner-from-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels`](/rest/reference/actions#list-labels-for-a-self-hosted-runner-for-an-enterprise) +- [`POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels`](/rest/reference/actions#add-custom-labels-to-a-self-hosted-runner-for-an-enterprise) +- [`PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels`](/rest/reference/actions#set-custom-labels-for-a-self-hosted-runner-for-an-enterprise) +- [`DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels`](/rest/reference/actions#remove-all-custom-labels-from-a-self-hosted-runner-for-an-enterprise) +- [`DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}`](/rest/reference/actions#remove-a-custom-label-from-a-self-hosted-runner-for-an-enterprise) +- [`GET /enterprises/{enterprise}/actions/runners/downloads`](/rest/reference/actions#list-runner-applications-for-an-enterprise) +- [`POST /enterprises/{enterprise}/actions/runners/registration-token`](/rest/reference/actions#create-a-registration-token-for-an-enterprise) +- [`POST /enterprises/{enterprise}/actions/runners/remove-token`](/rest/reference/actions#create-a-remove-token-for-an-enterprise) +- [`GET /repos/{owner}/{repo}/actions/jobs/{job_id}`](/rest/reference/actions#get-a-job-for-a-workflow-run) +- [`GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs`](/rest/reference/actions#download-job-logs-for-a-workflow-run) +- [`POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun`](/rest/reference/actions#re-run-job-for-workflow-run) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs`](/rest/reference/actions#list-jobs-for-a-workflow-run-attempt) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs`](/rest/reference/actions#list-jobs-for-a-workflow-run) +- [`GET /orgs/{org}/actions/cache/usage`](/rest/reference/actions#get-github-actions-cache-usage-for-an-organization) +- [`GET /orgs/{org}/actions/cache/usage-by-repository`](/rest/reference/actions#list-repositories-with-github-actions-cache-usage-for-an-organization) +- [`GET /orgs/{org}/actions/permissions`](/rest/reference/actions#get-github-actions-permissions-for-an-organization) +- [`PUT /orgs/{org}/actions/permissions`](/rest/reference/actions#set-github-actions-permissions-for-an-organization) +- [`GET /orgs/{org}/actions/permissions/repositories`](/rest/reference/actions#list-selected-repositories-enabled-for-github-actions-in-an-organization) +- [`PUT /orgs/{org}/actions/permissions/repositories`](/rest/reference/actions#set-selected-repositories-enabled-for-github-actions-in-an-organization) +- [`GET /orgs/{org}/actions/permissions/selected-actions`](/rest/reference/actions#get-allowed-actions-for-an-organization) +- [`PUT /orgs/{org}/actions/permissions/selected-actions`](/rest/reference/actions#set-allowed-actions-for-an-organization) +- [`GET /orgs/{org}/actions/permissions/workflow`](/rest/reference/actions#get-default-workflow-permissions) +- [`PUT /orgs/{org}/actions/permissions/workflow`](/rest/reference/actions#set-default-workflow-permissions) +- [`GET /orgs/{org}/actions/secrets`](/rest/reference/actions#list-organization-secrets) +- [`GET /orgs/{org}/actions/secrets/{secret_name}`](/rest/reference/actions#get-an-organization-secret) +- [`PUT /orgs/{org}/actions/secrets/{secret_name}`](/rest/reference/actions#create-or-update-an-organization-secret) +- [`DELETE /orgs/{org}/actions/secrets/{secret_name}`](/rest/reference/actions#delete-an-organization-secret) +- [`GET /orgs/{org}/actions/secrets/{secret_name}/repositories`](/rest/reference/actions#list-selected-repositories-for-an-organization-secret) +- [`PUT /orgs/{org}/actions/secrets/{secret_name}/repositories`](/rest/reference/actions#set-selected-repositories-for-an-organization-secret) +- [`GET /orgs/{org}/actions/secrets/public-key`](/rest/reference/actions#get-an-organization-public-key) +- [`GET /orgs/{org}/actions/runner-groups`](/rest/reference/actions#list-self-hosted-runner-groups-for-an-organization) +- [`POST /orgs/{org}/actions/runner-groups`](/rest/reference/actions#create-a-self-hosted-runner-group-for-an-organization) +- [`GET /orgs/{org}/actions/runner-groups/{runner_group_id}`](/rest/reference/actions#get-a-self-hosted-runner-group-for-an-organization) +- [`PATCH /orgs/{org}/actions/runner-groups/{runner_group_id}`](/rest/reference/actions#update-a-self-hosted-runner-group-for-an-organization) +- [`DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}`](/rest/reference/actions#delete-a-self-hosted-runner-group-from-an-organization) +- [`GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories`](/rest/reference/actions#list-repository-access-to-a-self-hosted-runner-group-in-an-organization) +- [`PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories`](/rest/reference/actions#set-repository-access-to-a-self-hosted-runner-group-in-an-organization) +- [`GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners`](/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-organization) +- [`PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/runners`](/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization) +- [`PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}`](/rest/reference/actions#add-a-self-hosted-runner-to-a-group-for-an-organization) +- [`DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}`](/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-organization) +- [`GET /orgs/{org}/actions/runners`](/rest/reference/actions#list-self-hosted-runners-for-an-organization) +- [`GET /orgs/{org}/actions/runners/{runner_id}`](/rest/reference/actions#get-a-self-hosted-runner-for-an-organization) +- [`DELETE /orgs/{org}/actions/runners/{runner_id}`](/rest/reference/actions#delete-a-self-hosted-runner-from-an-organization) +- [`GET /orgs/{org}/actions/runners/{runner_id}/labels`](/rest/reference/actions#list-labels-for-a-self-hosted-runner-for-an-organization) +- [`POST /orgs/{org}/actions/runners/{runner_id}/labels`](/rest/reference/actions#add-custom-labels-to-a-self-hosted-runner-for-an-organization) +- [`PUT /orgs/{org}/actions/runners/{runner_id}/labels`](/rest/reference/actions#set-custom-labels-for-a-self-hosted-runner-for-an-organization) +- [`DELETE /orgs/{org}/actions/runners/{runner_id}/labels`](/rest/reference/actions#remove-all-custom-labels-from-a-self-hosted-runner-for-an-organization) +- [`DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}`](/rest/reference/actions#remove-a-custom-label-from-a-self-hosted-runner-for-an-organization) +- [`GET /orgs/{org}/actions/runners/downloads`](/rest/reference/actions#list-runner-applications-for-an-organization) +- [`POST /orgs/{org}/actions/runners/registration-token`](/rest/reference/actions#create-a-registration-token-for-an-organization) +- [`POST /orgs/{org}/actions/runners/remove-token`](/rest/reference/actions#create-a-remove-token-for-an-organization) +- [`GET /repos/{owner}/{repo}/actions/permissions`](/rest/reference/actions#get-github-actions-permissions-for-a-repository) +- [`PUT /repos/{owner}/{repo}/actions/permissions`](/rest/reference/actions#set-github-actions-permissions-for-a-repository) +- [`GET /repos/{owner}/{repo}/actions/permissions/access`](/rest/reference/actions#get-workflow-access-level-to-a-repository) +- [`PUT /repos/{owner}/{repo}/actions/permissions/access`](/rest/reference/actions#set-workflow-access-to-a-repository) +- [`GET /repos/{owner}/{repo}/actions/permissions/selected-actions`](/rest/reference/actions#get-allowed-actions-for-a-repository) +- [`PUT /repos/{owner}/{repo}/actions/permissions/selected-actions`](/rest/reference/actions#set-allowed-actions-for-a-repository) +- [`GET /repos/{owner}/{repo}/actions/permissions/workflow`](/rest/reference/actions#get-default-workflow-permissions-for-a-repository) +- [`PUT /repos/{owner}/{repo}/actions/permissions/workflow`](/rest/reference/actions#set-default-workflow-permissions-for-a-repository) +- [`GET /repos/{owner}/{repo}/actions/runners`](/rest/reference/actions#list-self-hosted-runners-for-a-repository) +- [`GET /repos/{owner}/{repo}/actions/runners/{runner_id}`](/rest/reference/actions#get-a-self-hosted-runner-for-a-repository) +- [`DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}`](/rest/reference/actions#delete-a-self-hosted-runner-from-a-repository) +- [`GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels`](/rest/reference/actions#list-labels-for-a-self-hosted-runner-for-a-repository) +- [`POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels`](/rest/reference/actions#add-custom-labels-to-a-self-hosted-runner-for-a-repository) +- [`PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels`](/rest/reference/actions#set-custom-labels-for-a-self-hosted-runner-for-a-repository) +- [`DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels`](/rest/reference/actions#remove-all-custom-labels-from-a-self-hosted-runner-for-a-repository) +- [`DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}`](/rest/reference/actions#remove-a-custom-label-from-a-self-hosted-runner-for-a-repository) +- [`GET /repos/{owner}/{repo}/actions/runners/downloads`](/rest/reference/actions#list-runner-applications-for-a-repository) +- [`POST /repos/{owner}/{repo}/actions/runners/registration-token`](/rest/reference/actions#create-a-registration-token-for-a-repository) +- [`POST /repos/{owner}/{repo}/actions/runners/remove-token`](/rest/reference/actions#create-a-remove-token-for-a-repository) +- [`GET /repos/{owner}/{repo}/actions/runs`](/rest/reference/actions#list-workflow-runs-for-a-repository) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}`](/rest/reference/actions#get-a-workflow-run) +- [`DELETE /repos/{owner}/{repo}/actions/runs/{run_id}`](/rest/reference/actions#delete-a-workflow-run) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals`](/rest/reference/actions#get-the-review-history-for-a-workflow-run) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve`](/rest/reference/actions#approve-a-workflow-run-for-a-fork-pull-request) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}`](/rest/reference/actions#get-a-workflow-run-attempt) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs`](/rest/reference/actions#download-workflow-run-attempt-logs) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/reference/actions#cancel-a-workflow-run) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs`](/rest/reference/actions#download-workflow-run-logs) +- [`DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs`](/rest/reference/actions#delete-workflow-run-logs) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun`](/rest/reference/actions#re-run-a-workflow) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs`](/rest/reference/actions#re-run-workflow-failed-jobs) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing`](/rest/reference/actions#get-workflow-run-usage) +- [`GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs`](/rest/reference/actions#list-workflow-runs) +- [`GET /repos/{owner}/{repo}/actions/workflows`](/rest/reference/actions#list-repository-workflows) +- [`GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}`](/rest/reference/actions#get-a-workflow) +- [`PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable`](/rest/reference/actions#disable-a-workflow) +- [`POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches`](/rest/reference/actions#create-a-workflow-dispatch-event) +- [`PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable`](/rest/reference/actions#enable-a-workflow) +- [`GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing`](/rest/reference/actions#get-workflow-usage) + +## activity + +- [`GET /events`](/rest/reference/activity#list-public-events) +- [`GET /networks/{owner}/{repo}/events`](/rest/reference/activity#list-public-events-for-a-network-of-repositories) +- [`GET /orgs/{org}/events`](/rest/reference/activity#list-public-organization-events) +- [`GET /repos/{owner}/{repo}/events`](/rest/reference/activity#list-repository-events) +- [`GET /users/{username}/events`](/rest/reference/activity#list-events-for-the-authenticated-user) +- [`GET /users/{username}/events/orgs/{org}`](/rest/reference/activity#list-organization-events-for-the-authenticated-user) +- [`GET /users/{username}/events/public`](/rest/reference/activity#list-public-events-for-a-user) +- [`GET /users/{username}/received_events`](/rest/reference/activity#list-events-received-by-the-authenticated-user) +- [`GET /users/{username}/received_events/public`](/rest/reference/activity#list-public-events-received-by-a-user) +- [`GET /feeds`](/rest/reference/activity#get-feeds) +- [`GET /notifications`](/rest/reference/activity#list-notifications-for-the-authenticated-user) +- [`PUT /notifications`](/rest/reference/activity#mark-notifications-as-read) +- [`GET /notifications/threads/{thread_id}`](/rest/reference/activity#get-a-thread) +- [`PATCH /notifications/threads/{thread_id}`](/rest/reference/activity#mark-a-thread-as-read) +- [`GET /notifications/threads/{thread_id}/subscription`](/rest/reference/activity#get-a-thread-subscription-for-the-authenticated-user) +- [`PUT /notifications/threads/{thread_id}/subscription`](/rest/reference/activity#set-a-thread-subscription) +- [`DELETE /notifications/threads/{thread_id}/subscription`](/rest/reference/activity#delete-a-thread-subscription) +- [`GET /repos/{owner}/{repo}/notifications`](/rest/reference/activity#list-repository-notifications-for-the-authenticated-user) +- [`PUT /repos/{owner}/{repo}/notifications`](/rest/reference/activity#mark-repository-notifications-as-read) +- [`GET /repos/{owner}/{repo}/subscription`](/rest/reference/activity#get-a-repository-subscription) +- [`PUT /repos/{owner}/{repo}/subscription`](/rest/reference/activity#set-a-repository-subscription) +- [`DELETE /repos/{owner}/{repo}/subscription`](/rest/reference/activity#delete-a-repository-subscription) +- [`GET /repos/{owner}/{repo}/stargazers`](/rest/reference/activity#list-stargazers) +- [`GET /repos/{owner}/{repo}/subscribers`](/rest/reference/activity#list-watchers) +- [`GET /users/{username}/starred`](/rest/reference/activity#list-repositories-starred-by-a-user) +- [`GET /users/{username}/subscriptions`](/rest/reference/activity#list-repositories-watched-by-a-user) +- [`GET /user/starred`](/rest/reference/activity#list-repositories-starred-by-the-authenticated-user) +- [`GET /user/starred/{owner}/{repo}`](/rest/reference/activity#check-if-a-repository-is-starred-by-the-authenticated-user) +- [`PUT /user/starred/{owner}/{repo}`](/rest/reference/activity#star-a-repository-for-the-authenticated-user) +- [`DELETE /user/starred/{owner}/{repo}`](/rest/reference/activity#unstar-a-repository-for-the-authenticated-user) +- [`GET /user/subscriptions`](/rest/reference/activity#list-repositories-watched-by-the-authenticated-user) + +## apps + +- [`DELETE /applications/{client_id}/grant`](/rest/reference/apps#delete-an-app-authorization) +- [`POST /applications/{client_id}/token`](/rest/reference/apps#check-a-token) +- [`PATCH /applications/{client_id}/token`](/rest/reference/apps#reset-a-token) +- [`DELETE /applications/{client_id}/token`](/rest/reference/apps#delete-an-app-token) +- [`POST /applications/{client_id}/token/scoped`](/rest/reference/apps#create-a-scoped-access-token) +- [`GET /installation/repositories`](/rest/reference/apps#list-repositories-accessible-to-the-app-installation) +- [`DELETE /installation/token`](/rest/reference/apps#revoke-an-installation-access-token) +- [`GET /user/installations/{installation_id}/repositories`](/rest/reference/apps#list-repositories-accessible-to-the-user-access-token) +- [`PUT /user/installations/{installation_id}/repositories/{repository_id}`](/rest/reference/apps#add-a-repository-to-an-app-installation) +- [`DELETE /user/installations/{installation_id}/repositories/{repository_id}`](/rest/reference/apps#remove-a-repository-from-an-app-installation) +- [`POST /app-manifests/{code}/conversions`](/rest/reference/apps#create-a-github-app-from-a-manifest) +- [`GET /app`](/rest/reference/apps#get-the-authenticated-app) +- [`GET /app/hook/config`](/rest/reference/apps#get-a-webhook-configuration-for-an-app) +- [`PATCH /app/hook/config`](/rest/reference/apps#update-a-webhook-configuration-for-an-app) +- [`GET /app/hook/deliveries`](/rest/reference/apps#list-deliveries-for-an-app-webhook) +- [`GET /app/hook/deliveries/{delivery_id}`](/rest/reference/apps#get-a-delivery-for-an-app-webhook) +- [`POST /app/hook/deliveries/{delivery_id}/attempts`](/rest/reference/apps#redeliver-a-delivery-for-an-app-webhook) +- [`GET /app/installations`](/rest/reference/apps#list-installations-for-the-authenticated-app) +- [`GET /app/installations/{installation_id}`](/rest/reference/apps#get-an-installation-for-the-authenticated-app) +- [`DELETE /app/installations/{installation_id}`](/rest/reference/apps#delete-an-installation-for-the-authenticated-app) +- [`POST /app/installations/{installation_id}/access_tokens`](/rest/reference/apps/#create-an-installation-access-token-for-an-app) +- [`PUT /app/installations/{installation_id}/suspended`](/rest/reference/apps#suspend-an-app-installation) +- [`DELETE /app/installations/{installation_id}/suspended`](/rest/reference/apps#unsuspend-an-app-installation) +- [`GET /orgs/{org}/installation`](/rest/reference/apps#get-an-organization-installation-for-the-authenticated-app) +- [`GET /repos/{owner}/{repo}/installation`](/rest/reference/apps#get-a-repository-installation-for-the-authenticated-app) +- [`GET /users/{username}/installation`](/rest/reference/apps#get-a-user-installation-for-the-authenticated-app) +- [`GET /marketplace_listing/accounts/{account_id}`](/rest/reference/apps#get-a-subscription-plan-for-an-account) +- [`GET /marketplace_listing/plans`](/rest/reference/apps#list-plans) +- [`GET /marketplace_listing/plans/{plan_id}/accounts`](/rest/reference/apps#list-accounts-for-a-plan) +- [`GET /marketplace_listing/stubbed/accounts/{account_id}`](/rest/reference/apps#get-a-subscription-plan-for-an-account-stubbed) +- [`GET /marketplace_listing/stubbed/plans`](/rest/reference/apps#list-plans-stubbed) +- [`GET /marketplace_listing/stubbed/plans/{plan_id}/accounts`](/rest/reference/apps#list-accounts-for-a-plan-stubbed) +- [`GET /user/installations`](/rest/reference/apps#list-app-installations-accessible-to-the-user-access-token) +- [`GET /user/marketplace_purchases`](/rest/reference/apps#list-subscriptions-for-the-authenticated-user) +- [`GET /user/marketplace_purchases/stubbed`](/rest/reference/apps#list-subscriptions-for-the-authenticated-user-stubbed) + +## billing + +- [`GET /orgs/{org}/settings/billing/actions`](/rest/reference/billing#get-github-actions-billing-for-an-organization) +- [`GET /orgs/{org}/settings/billing/advanced-security`](/rest/reference/billing#get-github-advanced-security-active-committers-for-an-organization) +- [`GET /orgs/{org}/settings/billing/packages`](/rest/reference/billing#get-github-packages-billing-for-an-organization) +- [`GET /orgs/{org}/settings/billing/shared-storage`](/rest/reference/billing#get-shared-storage-billing-for-an-organization) +- [`GET /users/{username}/settings/billing/actions`](/rest/reference/billing#get-github-actions-billing-for-a-user) +- [`GET /users/{username}/settings/billing/packages`](/rest/reference/billing#get-github-packages-billing-for-a-user) +- [`GET /users/{username}/settings/billing/shared-storage`](/rest/reference/billing#get-shared-storage-billing-for-a-user) + +## checks + +- [`POST /repos/{owner}/{repo}/check-runs`](/rest/reference/checks#create-a-check-run) +- [`GET /repos/{owner}/{repo}/check-runs/{check_run_id}`](/rest/reference/checks#get-a-check-run) +- [`PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}`](/rest/reference/checks#update-a-check-run) +- [`GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations`](/rest/reference/checks#list-check-run-annotations) +- [`POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest`](/rest/reference/checks#rerequest-a-check-run) +- [`GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs`](/rest/reference/checks#list-check-runs-in-a-check-suite) +- [`POST /repos/{owner}/{repo}/check-suites`](/rest/reference/checks#create-a-check-suite) +- [`GET /repos/{owner}/{repo}/check-suites/{check_suite_id}`](/rest/reference/checks#get-a-check-suite) +- [`POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest`](/rest/reference/checks#rerequest-a-check-suite) +- [`PATCH /repos/{owner}/{repo}/check-suites/preferences`](/rest/reference/checks#update-repository-preferences-for-check-suites) + +## code-scanning + +- [`GET /enterprises/{enterprise}/code-scanning/alerts`](/rest/reference/code-scanning#list-code-scanning-alerts-for-an-enterprise) +- [`GET /orgs/{org}/code-scanning/alerts`](/rest/reference/code-scanning#list-code-scanning-alerts-by-organization) +- [`GET /repos/{owner}/{repo}/code-scanning/alerts`](/rest/reference/code-scanning#list-code-scanning-alerts-for-a-repository) +- [`GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}`](/rest/reference/code-scanning#get-a-code-scanning-alert) +- [`PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}`](/rest/reference/code-scanning#update-a-code-scanning-alert) +- [`GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances`](/rest/reference/code-scanning#list-instances-of-a-code-scanning-alert) +- [`GET /repos/{owner}/{repo}/code-scanning/analyses`](/rest/reference/code-scanning#list-code-scanning-analyses-for-a-repository) +- [`GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}`](/rest/reference/code-scanning#get-a-code-scanning-analysis-for-a-repository) +- [`DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}`](/rest/reference/code-scanning#delete-a-code-scanning-analysis-from-a-repository) +- [`GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}`](/rest/reference/code-scanning#list-recent-code-scanning-analyses-for-a-repository) +- [`GET /repos/{owner}/{repo}/code-scanning/codeql/databases`](/rest/reference/code-scanning#list-codeql-databases) +- [`GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}`](/rest/reference/code-scanning#get-codeql-database) +- [`POST /repos/{owner}/{repo}/code-scanning/sarifs`](/rest/reference/code-scanning#upload-a-sarif-file) + +## codes-of-conduct + +- [`GET /codes_of_conduct`](/rest/reference/codes-of-conduct#get-all-codes-of-conduct) +- [`GET /codes_of_conduct/{key}`](/rest/reference/codes-of-conduct#get-a-code-of-conduct) + +## codespaces + +- [`GET /orgs/{org}/codespaces`](/rest/reference/codespaces#list-in-organization) +- [`PUT /orgs/{org}/codespaces/billing`](/rest/reference/codespaces#set-codespaces-billing) +- [`GET /repos/{owner}/{repo}/codespaces`](/rest/reference/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user) +- [`POST /repos/{owner}/{repo}/codespaces`](/rest/reference/codespaces#create-a-codespace-in-a-repository) +- [`GET /repos/{owner}/{repo}/codespaces/devcontainers`](/rest/reference/codespaces#list-devcontainers-in-a-repository-for-the-authenticated-user) +- [`GET /repos/{owner}/{repo}/codespaces/machines`](/rest/reference/codespaces#list-available-machine-types-for-a-repository) +- [`GET /repos/{owner}/{repo}/codespaces/new`](/rest/reference/codespaces#preview-attributes-for-a-new-codespace) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces`](/rest/reference/codespaces#create-a-codespace-from-a-pull-request) +- [`GET /user/codespaces`](/rest/reference/codespaces#list-codespaces-for-the-authenticated-user) +- [`POST /user/codespaces`](/rest/reference/codespaces#create-a-codespace-for-the-authenticated-user) +- [`GET /user/codespaces/{codespace_name}`](/rest/reference/codespaces#get-a-codespace-for-the-authenticated-user) +- [`PATCH /user/codespaces/{codespace_name}`](/rest/reference/codespaces#update-a-codespace-for-the-authenticated-user) +- [`DELETE /user/codespaces/{codespace_name}`](/rest/reference/codespaces#delete-a-codespace-for-the-authenticated-user) +- [`POST /user/codespaces/{codespace_name}/exports`](/rest/codespaces/codespaces#export-a-codespace-for-the-authenticated-user) +- [`GET /user/codespaces/{codespace_name}/exports/{export_id}`](/rest/codespaces/codespaces#get-details-about-a-codespace-export) +- [`GET /user/codespaces/{codespace_name}/machines`](/rest/reference/codespaces#list-machine-types-for-a-codespace) +- [`POST /user/codespaces/{codespace_name}/start`](/rest/reference/codespaces#start-a-codespace-for-the-authenticated-user) +- [`POST /user/codespaces/{codespace_name}/stop`](/rest/reference/codespaces#stop-a-codespace-for-the-authenticated-user) +- [`GET /orgs/{org}/codespaces/secrets`](/rest/reference/codespaces#list-organization-secrets) +- [`GET /orgs/{org}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#get-an-organization-secret) +- [`PUT /orgs/{org}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#create-or-update-an-organization-secret) +- [`DELETE /orgs/{org}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#delete-an-organization-secret) +- [`GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#list-selected-repositories-for-an-organization-secret) +- [`PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#set-selected-repositories-for-an-organization-secret) +- [`GET /orgs/{org}/codespaces/secrets/public-key`](/rest/reference/codespaces#get-an-organization-public-key) +- [`GET /repos/{owner}/{repo}/codespaces/secrets`](/rest/reference/codespaces#list-repository-secrets) +- [`GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#get-a-repository-secret) +- [`PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#create-or-update-a-repository-secret) +- [`DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#delete-a-repository-secret) +- [`GET /repos/{owner}/{repo}/codespaces/secrets/public-key`](/rest/reference/codespaces#get-a-repository-public-key) +- [`GET /user/codespaces/secrets`](/rest/reference/codespaces#list-secrets-for-the-authenticated-user) +- [`GET /user/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#get-a-secret-for-the-authenticated-user) +- [`PUT /user/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#create-or-update-a-secret-for-the-authenticated-user) +- [`DELETE /user/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#delete-a-secret-for-the-authenticated-user) +- [`GET /user/codespaces/secrets/public-key`](/rest/reference/codespaces#get-public-key-for-the-authenticated-user) +- [`GET /user/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#list-selected-repositories-for-a-user-secret) +- [`PUT /user/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#set-selected-repositories-for-a-user-secret) +- [`PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}`](/rest/reference/codespaces#add-a-selected-repository-to-a-user-secret) +- [`DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}`](/rest/reference/codespaces#remove-a-selected-repository-from-a-user-secret) + +## collaborators + +- [`GET /repos/{owner}/{repo}/collaborators`](/rest/collaborators/collaborators#list-repository-collaborators) +- [`GET /repos/{owner}/{repo}/collaborators/{username}`](/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator) +- [`PUT /repos/{owner}/{repo}/collaborators/{username}`](/rest/collaborators/collaborators#add-a-repository-collaborator) +- [`DELETE /repos/{owner}/{repo}/collaborators/{username}`](/rest/collaborators/collaborators#remove-a-repository-collaborator) +- [`GET /repos/{owner}/{repo}/collaborators/{username}/permission`](/rest/collaborators/collaborators#get-repository-permissions-for-a-user) +- [`GET /repos/{owner}/{repo}/invitations`](/rest/collaborators/invitations#list-repository-invitations) +- [`PATCH /repos/{owner}/{repo}/invitations/{invitation_id}`](/rest/collaborators/invitations#update-a-repository-invitation) +- [`DELETE /repos/{owner}/{repo}/invitations/{invitation_id}`](/rest/collaborators/invitations#delete-a-repository-invitation) +- [`GET /user/repository_invitations`](/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user) +- [`PATCH /user/repository_invitations/{invitation_id}`](/rest/collaborators/invitations#accept-a-repository-invitation) +- [`DELETE /user/repository_invitations/{invitation_id}`](/rest/collaborators/invitations#decline-a-repository-invitation) + +## commits + +- [`GET /repos/{owner}/{repo}/comments`](/rest/commits/comments#list-commit-comments-for-a-repository) +- [`GET /repos/{owner}/{repo}/comments/{comment_id}`](/rest/commits/comments#get-a-commit-comment) +- [`PATCH /repos/{owner}/{repo}/comments/{comment_id}`](/rest/commits/comments#update-a-commit-comment) +- [`DELETE /repos/{owner}/{repo}/comments/{comment_id}`](/rest/commits/comments#delete-a-commit-comment) +- [`GET /repos/{owner}/{repo}/commits`](/rest/commits/commits#list-commits) +- [`POST /repos/{owner}/{repo}/statuses/{sha}`](/rest/commits/statuses#create-a-commit-status) + +## dependabot + +- [`GET /repos/{owner}/{repo}/dependabot/secrets`](/rest/reference/dependabot#list-repository-secrets) +- [`GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#get-a-repository-secret) +- [`PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#create-or-update-a-repository-secret) +- [`DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#delete-a-repository-secret) +- [`GET /repos/{owner}/{repo}/dependabot/secrets/public-key`](/rest/reference/dependabot#get-a-repository-public-key) +- [`GET /orgs/{org}/dependabot/secrets`](/rest/reference/dependabot#list-organization-secrets) +- [`GET /orgs/{org}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#get-an-organization-secret) +- [`PUT /orgs/{org}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#create-or-update-an-organization-secret) +- [`DELETE /orgs/{org}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#delete-an-organization-secret) +- [`GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories`](/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret) +- [`PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories`](/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) +- [`GET /orgs/{org}/dependabot/secrets/public-key`](/rest/reference/dependabot#get-an-organization-public-key) +- [`GET /repos/{owner}/{repo}/dependabot/alerts`](/rest/reference/dependabot#list-dependabot-alerts-for-a-repository) +- [`GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}`](/rest/reference/dependabot#get-a-dependabot-alert) +- [`PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}`](/rest/reference/dependabot#update-a-dependabot-alert) + +## dependency-graph + +- [`POST /repos/{owner}/{repo}/dependency-graph/snapshots`](/rest/reference/dependency-graph#create-a-snapshot-of-dependencies-for-a-repository) +- [`GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}`](/rest/reference/dependency-graph#get-a-diff-of-the-dependencies-between-commits) + +## deployments + +- [`GET /repos/{owner}/{repo}/environments`](/rest/deployments/environments#list-environments) + +## emojis + +- [`GET /emojis`](/rest/reference/emojis#get-emojis) + +## enterprise-admin +{% ifversion ghec %} +- [`GET /enterprises/{enterprise}/audit-log`](/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise){% endif %} +- [`GET /enterprises/{enterprise}/settings/billing/advanced-security`](/rest/reference/billing#export-advanced-security-active-committers-data-for-enterprise) +- [`GET /enterprise-installation/{enterprise_or_org}/server-statistics`](/rest/reference/enterprise-admin#get-github-enterprise-server-statistics) + +## gists + +- [`GET /gists/{gist_id}/comments`](/rest/reference/gists#list-gist-comments) +- [`POST /gists/{gist_id}/comments`](/rest/reference/gists#create-a-gist-comment) +- [`GET /gists/{gist_id}/comments/{comment_id}`](/rest/reference/gists#get-a-gist-comment) +- [`PATCH /gists/{gist_id}/comments/{comment_id}`](/rest/reference/gists#update-a-gist-comment) +- [`DELETE /gists/{gist_id}/comments/{comment_id}`](/rest/reference/gists#delete-a-gist-comment) +- [`GET /gists`](/rest/reference/gists#list-gists-for-the-authenticated-user) +- [`POST /gists`](/rest/reference/gists#create-a-gist) +- [`GET /gists/{gist_id}`](/rest/reference/gists#get-a-gist) +- [`PATCH /gists/{gist_id}`](/rest/reference/gists/#update-a-gist) +- [`DELETE /gists/{gist_id}`](/rest/reference/gists#delete-a-gist) +- [`GET /gists/{gist_id}/commits`](/rest/reference/gists#list-gist-commits) +- [`GET /gists/{gist_id}/forks`](/rest/reference/gists#list-gist-forks) +- [`POST /gists/{gist_id}/forks`](/rest/reference/gists#fork-a-gist) +- [`GET /gists/{gist_id}/star`](/rest/reference/gists#check-if-a-gist-is-starred) +- [`PUT /gists/{gist_id}/star`](/rest/reference/gists#star-a-gist) +- [`DELETE /gists/{gist_id}/star`](/rest/reference/gists#unstar-a-gist) +- [`GET /gists/public`](/rest/reference/gists#list-public-gists) +- [`GET /gists/starred`](/rest/reference/gists#list-starred-gists) +- [`GET /users/{username}/gists`](/rest/reference/gists#list-gists-for-a-user) + +## git + +- [`POST /repos/{owner}/{repo}/git/blobs`](/rest/reference/git#create-a-blob) +- [`POST /repos/{owner}/{repo}/git/commits`](/rest/reference/git#create-a-commit) +- [`POST /repos/{owner}/{repo}/git/refs`](/rest/reference/git#create-a-reference) +- [`POST /repos/{owner}/{repo}/git/tags`](/rest/reference/git#create-a-tag-object) +- [`POST /repos/{owner}/{repo}/git/trees`](/rest/reference/git#create-a-tree) + +## gitignore + +- [`GET /gitignore/templates`](/rest/reference/gitignore#get-all-gitignore-templates) + +## interactions + +- [`GET /orgs/{org}/interaction-limits`](/rest/reference/interactions#get-interaction-restrictions-for-an-organization) +- [`PUT /orgs/{org}/interaction-limits`](/rest/reference/interactions#set-interaction-restrictions-for-an-organization) +- [`DELETE /orgs/{org}/interaction-limits`](/rest/reference/interactions#remove-interaction-restrictions-for-an-organization) +- [`GET /repos/{owner}/{repo}/interaction-limits`](/rest/reference/interactions#get-interaction-restrictions-for-a-repository) +- [`PUT /repos/{owner}/{repo}/interaction-limits`](/rest/reference/interactions#set-interaction-restrictions-for-a-repository) +- [`DELETE /repos/{owner}/{repo}/interaction-limits`](/rest/reference/interactions#remove-interaction-restrictions-for-a-repository) +- [`GET /user/interaction-limits`](/rest/reference/interactions#get-interaction-restrictions-for-your-public-repositories) +- [`PUT /user/interaction-limits`](/rest/reference/interactions#set-interaction-restrictions-for-your-public-repositories) +- [`DELETE /user/interaction-limits`](/rest/reference/interactions#remove-interaction-restrictions-from-your-public-repositories) + +## issues + +- [`POST /repos/{owner}/{repo}/issues/{issue_number}/assignees`](/rest/reference/issues#add-assignees-to-an-issue) +- [`DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees`](/rest/reference/issues#remove-assignees-from-an-issue) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/comments`](/rest/reference/issues#list-issue-comments) +- [`POST /repos/{owner}/{repo}/issues/{issue_number}/comments`](/rest/reference/issues#create-an-issue-comment) +- [`GET /repos/{owner}/{repo}/issues/comments`](/rest/reference/issues#list-issue-comments-for-a-repository) +- [`GET /repos/{owner}/{repo}/issues/comments/{comment_id}`](/rest/reference/issues#get-an-issue-comment) +- [`PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}`](/rest/reference/issues#update-an-issue-comment) +- [`DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}`](/rest/reference/issues#delete-an-issue-comment) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/events`](/rest/reference/issues#list-issue-events) +- [`GET /repos/{owner}/{repo}/issues/events`](/rest/reference/issues#list-issue-events-for-a-repository) +- [`GET /repos/{owner}/{repo}/issues/events/{event_id}`](/rest/reference/issues#get-an-issue-event) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/timeline`](/rest/reference/issues#list-timeline-events-for-an-issue) +- [`GET /issues`](/rest/reference/issues#list-issues-assigned-to-the-authenticated-user) +- [`GET /orgs/{org}/issues`](/rest/reference/issues#list-organization-issues-assigned-to-the-authenticated-user) +- [`GET /repos/{owner}/{repo}/assignees`](/rest/reference/issues#list-assignees) +- [`GET /repos/{owner}/{repo}/issues`](/rest/reference/issues#list-repository-issues) +- [`POST /repos/{owner}/{repo}/issues`](/rest/reference/issues#create-an-issue) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}`](/rest/reference/issues#get-an-issue) +- [`PATCH /repos/{owner}/{repo}/issues/{issue_number}`](/rest/reference/issues/#update-an-issue) +- [`PUT /repos/{owner}/{repo}/issues/{issue_number}/lock`](/rest/reference/issues#lock-an-issue) +- [`DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock`](/rest/reference/issues#unlock-an-issue) +- [`GET /user/issues`](/rest/reference/issues#list-user-account-issues-assigned-to-the-authenticated-user) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/labels`](/rest/reference/issues#list-labels-for-an-issue) +- [`POST /repos/{owner}/{repo}/issues/{issue_number}/labels`](/rest/reference/issues#add-labels-to-an-issue) +- [`PUT /repos/{owner}/{repo}/issues/{issue_number}/labels`](/rest/reference/issues#set-labels-for-an-issue) +- [`DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels`](/rest/reference/issues#remove-all-labels-from-an-issue) +- [`GET /repos/{owner}/{repo}/labels`](/rest/reference/issues#list-labels-for-a-repository) +- [`POST /repos/{owner}/{repo}/labels`](/rest/reference/issues#create-a-label) +- [`GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels`](/rest/reference/issues#list-labels-for-issues-in-a-milestone) +- [`GET /repos/{owner}/{repo}/milestones`](/rest/reference/issues#list-milestones) +- [`POST /repos/{owner}/{repo}/milestones`](/rest/reference/issues#create-a-milestone) +- [`GET /repos/{owner}/{repo}/milestones/{milestone_number}`](/rest/reference/issues#get-a-milestone) +- [`PATCH /repos/{owner}/{repo}/milestones/{milestone_number}`](/rest/reference/issues#update-a-milestone) +- [`DELETE /repos/{owner}/{repo}/milestones/{milestone_number}`](/rest/reference/issues#delete-a-milestone) + +## licenses + +- [`GET /licenses`](/rest/reference/licenses#get-all-commonly-used-licenses) +- [`GET /repos/{owner}/{repo}/license`](/rest/reference/licenses/#get-the-license-for-a-repository) + +## markdown + +- [`POST /markdown`](/rest/reference/markdown#render-a-markdown-document) +- [`POST /markdown/raw`](/rest/reference/markdown#render-a-markdown-document-in-raw-mode) + +## meta + +- [`GET /meta`](/rest/reference/meta#get-github-meta-information) +- [`GET /octocat`](/rest/reference/meta#get-octocat) +- [`GET /zen`](/rest/meta#get-the-zen-of-github) +- [`GET /`](/rest/overview/resources-in-the-rest-api#root-endpoint) + +## metrics + +- [`GET /repos/{owner}/{repo}/community/profile`](/rest/metrics/community#get-community-profile-metrics) +- [`GET /repos/{owner}/{repo}/stats/code_frequency`](/rest/metrics/statistics#get-the-weekly-commit-activity) +- [`GET /repos/{owner}/{repo}/stats/commit_activity`](/rest/metrics/statistics#get-the-last-year-of-commit-activity) +- [`GET /repos/{owner}/{repo}/stats/contributors`](/rest/metrics/statistics#get-all-contributor-commit-activity) +- [`GET /repos/{owner}/{repo}/stats/participation`](/rest/metrics/statistics#get-the-weekly-commit-count) +- [`GET /repos/{owner}/{repo}/stats/punch_card`](/rest/metrics/statistics#get-the-hourly-commit-count-for-each-day) +- [`GET /repos/{owner}/{repo}/traffic/clones`](/rest/metrics/traffic#get-repository-clones) +- [`GET /repos/{owner}/{repo}/traffic/popular/paths`](/rest/metrics/traffic#get-top-referral-paths) +- [`GET /repos/{owner}/{repo}/traffic/popular/referrers`](/rest/metrics/traffic#get-top-referral-sources) +- [`GET /repos/{owner}/{repo}/traffic/views`](/rest/metrics/traffic#get-page-views) + +## migrations + +- [`GET /orgs/{org}/migrations`](/rest/reference/migrations#list-organization-migrations) +- [`POST /orgs/{org}/migrations`](/rest/reference/migrations#start-an-organization-migration) +- [`GET /orgs/{org}/migrations/{migration_id}`](/rest/reference/migrations#get-an-organization-migration-status) +- [`GET /orgs/{org}/migrations/{migration_id}/archive`](/rest/reference/migrations#download-an-organization-migration-archive) +- [`DELETE /orgs/{org}/migrations/{migration_id}/archive`](/rest/reference/migrations#delete-an-organization-migration-archive) +- [`GET /orgs/{org}/migrations/{migration_id}/repositories`](/rest/reference/migrations#list-repositories-in-an-organization-migration) +- [`GET /user/migrations`](/rest/reference/migrations#list-user-migrations) +- [`POST /user/migrations`](/rest/reference/migrations#start-a-user-migration) +- [`GET /user/migrations/{migration_id}`](/rest/reference/migrations#get-a-user-migration-status) +- [`GET /user/migrations/{migration_id}/archive`](/rest/reference/migrations#download-a-user-migration-archive) +- [`DELETE /user/migrations/{migration_id}/archive`](/rest/reference/migrations#delete-a-user-migration-archive) +- [`GET /user/migrations/{migration_id}/repositories`](/rest/reference/migrations#list-repositories-for-a-user-migration) +- [`GET /repos/{owner}/{repo}/import`](/rest/reference/migrations#get-an-import-status) +- [`PUT /repos/{owner}/{repo}/import`](/rest/reference/migrations#start-an-import) +- [`PATCH /repos/{owner}/{repo}/import`](/rest/reference/migrations#update-an-import) +- [`DELETE /repos/{owner}/{repo}/import`](/rest/reference/migrations#cancel-an-import) +- [`GET /repos/{owner}/{repo}/import/authors`](/rest/reference/migrations#get-commit-authors) +- [`PATCH /repos/{owner}/{repo}/import/authors/{author_id}`](/rest/reference/migrations#map-a-commit-author) +- [`GET /repos/{owner}/{repo}/import/large_files`](/rest/reference/migrations#get-large-files) +- [`PATCH /repos/{owner}/{repo}/import/lfs`](/rest/reference/migrations#update-git-lfs-preference) + +## orgs + +{% ifversion ghec %} +- [`GET /orgs/{org}/audit-log`](/rest/reference/orgs#get-audit-log){% endif %} +- [`GET /organizations/{organization_id}/custom_roles`](/rest/reference/orgs#list-custom-repository-roles-in-an-organization) +- [`PATCH /orgs/{org}/custom_roles/{role_id}`](/rest/reference/orgs#update-a-custom-role) +- [`DELETE /orgs/{org}/custom_roles/{role_id}`](/rest/reference/orgs#delete-a-custom-role) +- [`GET /orgs/{org}/fine_grained_permissions`](/rest/reference/orgs#list-fine-grained-permissions-for-an-organization) +- [`GET /orgs/{org}/hooks`](/rest/reference/orgs#list-organization-webhooks) +- [`POST /orgs/{org}/hooks`](/rest/reference/orgs#create-an-organization-webhook) +- [`GET /orgs/{org}/hooks/{hook_id}`](/rest/reference/orgs#get-an-organization-webhook) +- [`PATCH /orgs/{org}/hooks/{hook_id}`](/rest/reference/orgs#update-an-organization-webhook) +- [`DELETE /orgs/{org}/hooks/{hook_id}`](/rest/reference/orgs#delete-an-organization-webhook) +- [`GET /orgs/{org}/hooks/{hook_id}/config`](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization) +- [`PATCH /orgs/{org}/hooks/{hook_id}/config`](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization) +- [`GET /orgs/{org}/hooks/{hook_id}/deliveries`](/rest/reference/orgs#list-deliveries-for-an-organization-webhook) +- [`GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}`](/rest/reference/orgs#get-a-webhook-delivery-for-an-organization-webhook) +- [`POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts`](/rest/reference/orgs#redeliver-a-delivery-for-an-organization-webhook) +- [`POST /orgs/{org}/hooks/{hook_id}/pings`](/rest/reference/orgs#ping-an-organization-webhook) +- [`GET /orgs/{org}/failed_invitations`](/rest/reference/orgs#list-failed-organization-invitations) +- [`GET /orgs/{org}/invitations`](/rest/reference/orgs#list-pending-organization-invitations) +- [`POST /orgs/{org}/invitations`](/rest/reference/orgs#create-an-organization-invitation) +- [`DELETE /orgs/{org}/invitations/{invitation_id}`](/rest/reference/orgs#cancel-an-organization-invitation) +- [`GET /orgs/{org}/invitations/{invitation_id}/teams`](/rest/reference/orgs#list-organization-invitation-teams) +- [`GET /orgs/{org}/members`](/rest/reference/orgs#list-organization-members) +- [`GET /orgs/{org}/members/{username}`](/rest/reference/orgs#check-organization-membership-for-a-user) +- [`DELETE /orgs/{org}/members/{username}`](/rest/reference/orgs#remove-an-organization-member) +- [`GET /orgs/{org}/memberships/{username}`](/rest/reference/orgs#get-organization-membership-for-a-user) +- [`PUT /orgs/{org}/memberships/{username}`](/rest/reference/orgs#set-organization-membership-for-a-user) +- [`DELETE /orgs/{org}/memberships/{username}`](/rest/reference/orgs#remove-organization-membership-for-a-user) +- [`GET /orgs/{org}/public_members`](/rest/reference/orgs#list-public-organization-members) +- [`GET /orgs/{org}/public_members/{username}`](/rest/reference/orgs#check-public-organization-membership-for-a-user) +- [`PUT /orgs/{org}/public_members/{username}`](/rest/reference/orgs#set-public-organization-membership-for-the-authenticated-user) +- [`DELETE /orgs/{org}/public_members/{username}`](/rest/reference/orgs#remove-public-organization-membership-for-the-authenticated-user) +- [`GET /orgs/{org}/outside_collaborators`](/rest/reference/orgs#list-outside-collaborators-for-an-organization) +- [`PUT /orgs/{org}/outside_collaborators/{username}`](/rest/reference/orgs#convert-an-organization-member-to-outside-collaborator) +- [`DELETE /orgs/{org}/outside_collaborators/{username}`](/rest/reference/orgs#remove-outside-collaborator-from-an-organization) +- [`GET /orgs/{org}/security-managers`](/rest/reference/orgs#list-security-manager-teams) +- [`PUT /orgs/{org}/security-managers/teams/{team_slug}`](/rest/reference/orgs#add-a-security-manager-team) +- [`DELETE /orgs/{org}/security-managers/teams/{team_slug}`](/rest/reference/orgs#remove-a-security-manager-team) +- [`GET /organizations`](/rest/reference/orgs#list-organizations) +- [`GET /orgs/{org}`](/rest/reference/orgs#get-an-organization) +- [`PATCH /orgs/{org}`](/rest/reference/orgs/#update-an-organization) +- [`GET /orgs/{org}/installations`](/rest/reference/orgs#list-app-installations-for-an-organization) +- [`GET /users/{username}/orgs`](/rest/reference/orgs#list-organizations-for-a-user) +- [`GET /user/memberships/orgs/{org}`](/rest/reference/orgs#get-an-organization-membership-for-the-authenticated-user) +- [`PATCH /user/memberships/orgs/{org}`](/rest/reference/orgs#update-an-organization-membership-for-the-authenticated-user) +- [`GET /user/memberships/orgs`](/rest/reference/orgs#list-organization-memberships-for-the-authenticated-user) +- [`GET /user/orgs`](/rest/reference/orgs#list-organizations-for-the-authenticated-user) +- [`GET /orgs/{org}/blocks`](/rest/reference/orgs#list-users-blocked-by-an-organization) +- [`GET /orgs/{org}/blocks/{username}`](/rest/reference/orgs#check-if-a-user-is-blocked-by-an-organization) +- [`PUT /orgs/{org}/blocks/{username}`](/rest/reference/orgs#block-a-user-from-an-organization) +- [`DELETE /orgs/{org}/blocks/{username}`](/rest/reference/orgs#unblock-a-user-from-an-organization) + +## packages + +- [`GET /orgs/{org}/packages`](/rest/reference/packages#list-packages-for-an-organization) +- [`GET /users/{username}/packages`](/rest/reference/packages#list-packages-for-user) +- [`GET /user/packages`](/rest/reference/packages#list-packages-for-the-authenticated-user) + +## pages + +- [`GET /repos/{owner}/{repo}/pages`](/rest/pages#get-a-github-pages-site) +- [`POST /repos/{owner}/{repo}/pages`](/rest/pages#create-a-github-pages-site) +- [`PUT /repos/{owner}/{repo}/pages`](/rest/pages#update-information-about-a-github-pages-site) +- [`DELETE /repos/{owner}/{repo}/pages`](/rest/pages#delete-a-github-pages-site) +- [`GET /repos/{owner}/{repo}/pages/builds`](/rest/pages#list-github-pages-builds) +- [`POST /repos/{owner}/{repo}/pages/builds`](/rest/pages#request-a-github-pages-build) +- [`GET /repos/{owner}/{repo}/pages/builds/{build_id}`](/rest/pages#get-github-pages-build) +- [`GET /repos/{owner}/{repo}/pages/builds/latest`](/rest/pages#get-latest-pages-build) +- [`POST /repos/{owner}/{repo}/pages/deployment`](/rest/pages#create-a-github-pages-deployment) +- [`GET /repos/{owner}/{repo}/pages/health`](/rest/pages#get-a-dns-health-check-for-github-pages) + +## projects + +- [`GET /projects/{project_id}/collaborators`](/rest/reference/projects#list-project-collaborators) +- [`PUT /projects/{project_id}/collaborators/{username}`](/rest/reference/projects#add-project-collaborator) +- [`DELETE /projects/{project_id}/collaborators/{username}`](/rest/reference/projects#remove-project-collaborator) +- [`GET /projects/{project_id}/collaborators/{username}/permission`](/rest/reference/projects#get-project-permission-for-a-user) +- [`GET /orgs/{org}/projects`](/rest/reference/projects#list-organization-projects) +- [`POST /orgs/{org}/projects`](/rest/reference/projects#create-an-organization-project) +- [`GET /projects/{project_id}`](/rest/reference/projects#get-a-project) +- [`PATCH /projects/{project_id}`](/rest/reference/projects#update-a-project) +- [`DELETE /projects/{project_id}`](/rest/reference/projects#delete-a-project) +- [`GET /projects/{project_id}/columns`](/rest/reference/projects#list-project-columns) +- [`POST /projects/{project_id}/columns`](/rest/reference/projects#create-a-project-column) +- [`GET /projects/columns/{column_id}`](/rest/reference/projects#get-a-project-column) +- [`PATCH /projects/columns/{column_id}`](/rest/reference/projects#update-a-project-column) +- [`DELETE /projects/columns/{column_id}`](/rest/reference/projects#delete-a-project-column) +- [`GET /projects/columns/{column_id}/cards`](/rest/reference/projects#list-project-cards) +- [`POST /projects/columns/{column_id}/cards`](/rest/reference/projects#create-a-project-card) +- [`POST /projects/columns/{column_id}/moves`](/rest/reference/projects#move-a-project-column) +- [`GET /projects/columns/cards/{card_id}`](/rest/reference/projects#get-a-project-card) +- [`PATCH /projects/columns/cards/{card_id}`](/rest/reference/projects#update-a-project-card) +- [`DELETE /projects/columns/cards/{card_id}`](/rest/reference/projects#delete-a-project-card) +- [`POST /projects/columns/cards/{card_id}/moves`](/rest/reference/projects#move-a-project-card) +- [`GET /repos/{owner}/{repo}/projects`](/rest/reference/projects#list-repository-projects) +- [`POST /repos/{owner}/{repo}/projects`](/rest/reference/projects#create-a-repository-project) +- [`GET /users/{username}/projects`](/rest/reference/projects#list-user-projects) +- [`POST /user/projects`](/rest/reference/projects#create-a-user-project) + +## pulls + +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/comments`](/rest/reference/pulls#list-review-comments-on-a-pull-request) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/comments`](/rest/reference/pulls#create-a-review-comment-for-a-pull-request) +- [`GET /repos/{owner}/{repo}/pulls/comments`](/rest/reference/pulls#list-review-comments-in-a-repository) +- [`GET /repos/{owner}/{repo}/pulls/comments/{comment_id}`](/rest/reference/pulls#get-a-review-comment-for-a-pull-request) +- [`PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}`](/rest/reference/pulls#update-a-review-comment-for-a-pull-request) +- [`DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}`](/rest/reference/pulls#delete-a-review-comment-for-a-pull-request) +- [`PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals`](/rest/reference/pulls#dismiss-a-review-for-a-pull-request) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events`](/rest/reference/pulls#submit-a-review-for-a-pull-request) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers`](/rest/reference/pulls#get-all-requested-reviewers-for-a-pull-request) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers`](/rest/reference/pulls#request-reviewers-for-a-pull-request) +- [`DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers`](/rest/reference/pulls#remove-requested-reviewers-from-a-pull-request) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews`](/rest/reference/pulls#list-reviews-for-a-pull-request) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews`](/rest/reference/pulls#create-a-review-for-a-pull-request) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}`](/rest/reference/pulls#get-a-review-for-a-pull-request) +- [`PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}`](/rest/reference/pulls#update-a-review-for-a-pull-request) +- [`DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}`](/rest/reference/pulls#delete-a-pending-review-for-a-pull-request) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments`](/rest/reference/pulls#list-comments-for-a-pull-request-review) +- [`GET /repos/{owner}/{repo}/pulls`](/rest/reference/pulls#list-pull-requests) +- [`POST /repos/{owner}/{repo}/pulls`](/rest/reference/pulls#create-a-pull-request) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}`](/rest/reference/pulls#get-a-pull-request) +- [`PATCH /repos/{owner}/{repo}/pulls/{pull_number}`](/rest/reference/pulls/#update-a-pull-request) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/commits`](/rest/reference/pulls#list-commits-on-a-pull-request) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/files`](/rest/reference/pulls#list-pull-requests-files) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/merge`](/rest/reference/pulls#check-if-a-pull-request-has-been-merged) +- [`PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge`](/rest/reference/pulls#merge-a-pull-request) +- [`PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch`](/rest/reference/pulls#update-a-pull-request-branch) + +## rate-limit + +- [`GET /rate_limit`](/rest/reference/rate-limit#get-rate-limit-status-for-the-authenticated-user) + +## reactions + +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions`](/rest/reference/reactions#list-reactions-for-a-team-discussion-comment) +- [`POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions`](/rest/reference/reactions#create-reaction-for-a-team-discussion-comment) +- [`DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}`](/rest/reference/reactions#delete-team-discussion-comment-reaction) +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions`](/rest/reference/reactions#list-reactions-for-a-team-discussion) +- [`POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions`](/rest/reference/reactions#create-reaction-for-a-team-discussion) +- [`DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}`](/rest/reference/reactions#delete-team-discussion-reaction) +- [`GET /repos/{owner}/{repo}/comments/{comment_id}/reactions`](/rest/reference/reactions#list-reactions-for-a-commit-comment) +- [`POST /repos/{owner}/{repo}/comments/{comment_id}/reactions`](/rest/reference/reactions#create-reaction-for-a-commit-comment) +- [`DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}`](/rest/reference/reactions#delete-a-commit-comment-reaction) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/reactions`](/rest/reference/reactions#list-reactions-for-an-issue) +- [`POST /repos/{owner}/{repo}/issues/{issue_number}/reactions`](/rest/reference/reactions#create-reaction-for-an-issue) +- [`DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}`](/rest/reference/reactions#delete-an-issue-reaction) +- [`GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions`](/rest/reference/reactions#list-reactions-for-an-issue-comment) +- [`POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions`](/rest/reference/reactions#create-reaction-for-an-issue-comment) +- [`DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}`](/rest/reference/reactions#delete-an-issue-comment-reaction) +- [`GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions`](/rest/reference/reactions#list-reactions-for-a-pull-request-review-comment) +- [`POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions`](/rest/reference/reactions#create-reaction-for-a-pull-request-review-comment) +- [`DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}`](/rest/reference/reactions#delete-a-pull-request-comment-reaction) +- [`GET /repos/{owner}/{repo}/releases/{release_id}/reactions`](/rest/reference/reactions/#list-reactions-for-a-release) +- [`POST /repos/{owner}/{repo}/releases/{release_id}/reactions`](/rest/reference/reactions/#create-reaction-for-a-release) +- [`DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}`](/rest/reference/reactions/#delete-a-release-reaction) + +## repos + +- [`GET /repos/{owner}/{repo}/codeowners/errors`](/rest/reference/repos#list-codeowners-errors) +- [`GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses`](/rest/reference/repos#list-deployment-statuses) +- [`POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses`](/rest/reference/repos#create-a-deployment-status) +- [`GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}`](/rest/reference/repos#get-a-deployment-status) +- [`GET /repos/{owner}/{repo}/deployments`](/rest/reference/repos#list-deployments) +- [`POST /repos/{owner}/{repo}/deployments`](/rest/reference/repos#create-a-deployment) +- [`GET /repos/{owner}/{repo}/deployments/{deployment_id}`](/rest/reference/repos#get-a-deployment) +- [`DELETE /repos/{owner}/{repo}/deployments/{deployment_id}`](/rest/reference/repos#delete-a-deployment) +- [`GET /orgs/{org}/repos`](/rest/reference/repos#list-organization-repositories) +- [`POST /orgs/{org}/repos`](/rest/reference/repos#create-an-organization-repository) +- [`GET /repositories`](/rest/reference/repos#list-public-repositories) +- [`GET /repos/{owner}/{repo}`](/rest/reference/repos#get-a-repository) +- [`PATCH /repos/{owner}/{repo}`](/rest/reference/repos/#update-a-repository) +- [`DELETE /repos/{owner}/{repo}`](/rest/reference/repos#delete-a-repository) +- [`GET /repos/{owner}/{repo}/contributors`](/rest/reference/repos#list-repository-contributors) +- [`GET /repos/{owner}/{repo}/forks`](/rest/reference/repos#list-forks) +- [`POST /repos/{owner}/{repo}/forks`](/rest/reference/repos#create-a-fork) +- [`GET /repos/{owner}/{repo}/languages`](/rest/reference/repos#list-repository-languages) +- [`GET /repos/{owner}/{repo}/tags`](/rest/reference/repos#list-repository-tags) +- [`GET /repos/{owner}/{repo}/teams`](/rest/reference/repos#list-repository-teams) +- [`POST /repos/{owner}/{repo}/transfer`](/rest/reference/repos#transfer-a-repository) +- [`GET /users/{username}/repos`](/rest/reference/repos#list-repositories-for-a-user) +- [`GET /user/repos`](/rest/reference/repos#list-repositories-for-the-authenticated-user) +- [`POST /user/repos`](/rest/reference/repos#create-a-repository-for-the-authenticated-user) +- [`GET /repos/{owner}/{repo}/autolinks`](/v3/repos#list-autolinks) +- [`POST /repos/{owner}/{repo}/autolinks`](/v3/repos#create-an-autolink) +- [`GET /repos/{owner}/{repo}/autolinks/{autolink_id}`](/v3/repos#get-autolink) +- [`DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}`](/v3/repos#delete-autolink) +- [`PUT /repos/{owner}/{repo}/automated-security-fixes`](/rest/reference/repos#enable-automated-security-fixes) +- [`DELETE /repos/{owner}/{repo}/automated-security-fixes`](/rest/reference/repos#disable-automated-security-fixes) +- [`GET /repos/{owner}/{repo}/branches`](/rest/reference/repos#list-branches) +- [`POST /repos/{owner}/{repo}/merge-upstream`](/rest/reference/repos#sync-a-fork-branch-with-the-upstream-repository) +- [`POST /repos/{owner}/{repo}/merges`](/rest/reference/repos#merge-a-branch) +- [`POST /repos/{owner}/{repo}/dispatches`](/rest/reference/repos#create-a-repository-dispatch-event) +- [`GET /repos/{owner}/{repo}/keys`](/rest/reference/repos#list-deploy-keys) +- [`POST /repos/{owner}/{repo}/keys`](/rest/reference/repos#create-a-deploy-key) +- [`GET /repos/{owner}/{repo}/keys/{key_id}`](/rest/reference/repos#get-a-deploy-key) +- [`DELETE /repos/{owner}/{repo}/keys/{key_id}`](/rest/reference/repos#delete-a-deploy-key) +- [`PUT /repos/{owner}/{repo}/lfs`](/rest/reference/repos#enable-git-lfs-for-a-repository) +- [`DELETE /repos/{owner}/{repo}/lfs`](/rest/reference/repos#disable-git-lfs-for-a-repository) +- [`GET /repos/{owner}/{repo}/releases`](/rest/reference/repos#list-releases) +- [`POST /repos/{owner}/{repo}/releases`](/rest/reference/repos#create-a-release) +- [`GET /repos/{owner}/{repo}/releases/{release_id}`](/rest/reference/repos#get-a-release) +- [`PATCH /repos/{owner}/{repo}/releases/{release_id}`](/rest/reference/repos#update-a-release) +- [`DELETE /repos/{owner}/{repo}/releases/{release_id}`](/rest/reference/repos#delete-a-release) +- [`GET /repos/{owner}/{repo}/releases/{release_id}/assets`](/rest/reference/repos#list-release-assets) +- [`GET /repos/{owner}/{repo}/releases/assets/{asset_id}`](/rest/reference/repos#get-a-release-asset) +- [`PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}`](/rest/reference/repos#update-a-release-asset) +- [`DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}`](/rest/reference/repos#delete-a-release-asset) +- [`POST /repos/{owner}/{repo}/releases/generate-notes`](/rest/reference/repos#generate-release-notes) +- [`GET /repos/{owner}/{repo}/releases/latest`](/rest/reference/repos#get-the-latest-release) +- [`GET /repos/{owner}/{repo}/tags/protection`](/rest/reference/repos#list-tag-protection-state-of-a-repository) +- [`POST /repos/{owner}/{repo}/tags/protection`](/rest/reference/repos#create-tag-protection-state-for-a-repository) +- [`DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}`](/rest/reference/repos#delete-tag-protection-state-for-a-repository) +- [`GET /repos/{owner}/{repo}/vulnerability-alerts`](/rest/reference/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository) +- [`PUT /repos/{owner}/{repo}/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) +- [`DELETE /repos/{owner}/{repo}/vulnerability-alerts`](/rest/reference/repos#disable-vulnerability-alerts) +- [`GET /repos/{owner}/{repo}/topics`](/rest/reference/repos#get-all-repository-topics) +- [`PUT /repos/{owner}/{repo}/topics`](/rest/reference/repos#replace-all-repository-topics) + +## search + +- [`GET /search/code`](/rest/reference/search#search-code) +- [`GET /search/commits`](/rest/reference/search#search-commits) +- [`GET /search/issues`](/rest/reference/search#search-issues-and-pull-requests) +- [`GET /search/labels`](/rest/reference/search#search-labels) +- [`GET /search/repositories`](/rest/reference/search#search-repositories) +- [`GET /search/topics`](/rest/reference/search#search-topics) +- [`GET /search/users`](/rest/reference/search#search-users) + +## secret-scanning + +- [`GET /enterprises/{enterprise}/secret-scanning/alerts`](/rest/reference/secret-scanning#list-secret-scanning-alerts-for-an-enterprise) +- [`GET /orgs/{org}/secret-scanning/alerts`](/rest/reference/secret-scanning#list-secret-scanning-alerts-for-an-organization) +- [`GET /repos/{owner}/{repo}/secret-scanning/alerts`](/rest/reference/secret-scanning#list-secret-scanning-alerts-for-a-repository) +- [`GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}`](/rest/reference/secret-scanning#get-a-secret-scanning-alert) +- [`PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}`](/rest/reference/secret-scanning#update-a-secret-scanning-alert) +- [`GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations`](/rest/reference/secret-scanning#list-locations-for-a-secret-scanning-alert) + +## teams +{% ifversion ghec %} +- [`PATCH /orgs/{org}/teams/{team_slug}/external-groups`](/rest/reference/teams#link-external-idp-group-team-connection){% endif %}{% ifversion ghec %} +- [`DELETE /orgs/{org}/teams/{team_slug}/external-groups`](/rest/reference/teams#unlink-external-idp-group-team-connection){% endif %}{% ifversion ghec %} +- [`GET /orgs/{org}/external-group/{group_id}`](/rest/reference/teams#external-idp-group-info-for-an-organization){% endif %}{% ifversion ghec %} +- [`GET /orgs/{org}/external-groups`](/rest/reference/teams#list-external-idp-groups-for-an-organization){% endif %} +- [`GET /orgs/{org}/teams/{team_slug}/projects`](/rest/reference/teams#list-team-projects) +- [`GET /orgs/{org}/teams/{team_slug}/projects/{project_id}`](/rest/reference/teams#check-team-permissions-for-a-project) +- [`PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}`](/rest/reference/teams#add-or-update-team-project-permissions) +- [`DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}`](/rest/reference/teams#remove-a-project-from-a-team) +- [`GET /orgs/{org}/teams/{team_slug}/repos`](/rest/reference/teams#list-team-repositories) +- [`GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#check-team-permissions-for-a-repository) +- [`PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#add-or-update-team-repository-permissions) +- [`DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#remove-a-repository-from-a-team) +- [`PATCH /orgs/{org}/teams/{team_slug}`](/rest/reference/teams#update-a-team) +- [`DELETE /orgs/{org}/teams/{team_slug}`](/rest/reference/teams#delete-a-team) +- [`GET /orgs/{org}/teams/{team_slug}/invitations`](/rest/reference/teams#list-pending-team-invitations) +- [`GET /orgs/{org}/teams/{team_slug}/members`](/rest/reference/teams#list-team-members) +- [`GET /orgs/{org}/teams/{team_slug}/memberships/{username}`](/rest/reference/teams#get-team-membership-for-a-user) +- [`PUT /orgs/{org}/teams/{team_slug}/memberships/{username}`](/rest/reference/teams#add-or-update-team-membership-for-a-user) +- [`DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}`](/rest/reference/teams#remove-team-membership-for-a-user) +- [`GET /orgs/{org}/teams/{team_slug}/teams`](/rest/reference/teams#list-child-teams) +- [`GET /orgs/{org}/teams/{team_slug}`](/rest/reference/teams#get-a-team-by-name) +- [`GET /orgs/{org}/teams`](/rest/reference/teams#list-teams) +- [`POST /orgs/{org}/teams`](/rest/reference/teams#create-a-team) +- [`GET /user/teams`](/rest/reference/teams#list-teams-for-the-authenticated-user) +- [`GET /orgs/{org}/teams/{team_slug}/discussions`](/rest/reference/teams#list-discussions) +- [`POST /orgs/{org}/teams/{team_slug}/discussions`](/rest/reference/teams#create-a-discussion) +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}`](/rest/reference/teams#get-a-discussion) +- [`PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}`](/rest/reference/teams#update-a-discussion) +- [`DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}`](/rest/reference/teams#delete-a-discussion) +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments`](/rest/reference/teams#list-discussion-comments) +- [`POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments`](/rest/reference/teams#create-a-discussion-comment) +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}`](/rest/reference/teams#get-a-discussion-comment) +- [`PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}`](/rest/reference/teams#update-a-discussion-comment) +- [`DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}`](/rest/reference/teams#delete-a-discussion-comment) + +## users + +- [`GET /user/blocks`](/rest/reference/users#list-users-blocked-by-the-authenticated-user) +- [`GET /user/blocks/{username}`](/rest/reference/users#check-if-a-user-is-blocked-by-the-authenticated-user) +- [`PUT /user/blocks/{username}`](/rest/reference/users#block-a-user) +- [`DELETE /user/blocks/{username}`](/rest/reference/users#unblock-a-user) +- [`PATCH /user/email/visibility`](/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user) +- [`GET /user/emails`](/rest/reference/users#list-email-addresses-for-the-authenticated-user) +- [`POST /user/emails`](/rest/reference/users#add-an-email-address-for-the-authenticated-user) +- [`DELETE /user/emails`](/rest/reference/users#delete-an-email-address-for-the-authenticated-user) +- [`GET /user/public_emails`](/rest/reference/users#list-public-email-addresses-for-the-authenticated-user) +- [`GET /users/{username}/followers`](/rest/reference/users#list-followers-of-a-user) +- [`GET /users/{username}/following`](/rest/reference/users#list-the-people-a-user-follows) +- [`GET /users/{username}/following/{target_user}`](/rest/reference/users#check-if-a-user-follows-another-user) +- [`GET /user/followers`](/rest/reference/users#list-followers-of-the-authenticated-user) +- [`GET /user/following`](/rest/reference/users#list-the-people-the-authenticated-user-follows) +- [`GET /user/following/{username}`](/rest/reference/users#check-if-a-person-is-followed-by-the-authenticated-user) +- [`PUT /user/following/{username}`](/rest/reference/users#follow-a-user) +- [`DELETE /user/following/{username}`](/rest/reference/users#unfollow-a-user) +- [`GET /users/{username}/gpg_keys`](/rest/reference/users#list-gpg-keys-for-a-user) +- [`GET /user/gpg_keys`](/rest/reference/users#list-gpg-keys-for-the-authenticated-user) +- [`POST /user/gpg_keys`](/rest/reference/users#create-a-gpg-key-for-the-authenticated-user) +- [`GET /user/gpg_keys/{gpg_key_id}`](/rest/reference/users#get-a-gpg-key-for-the-authenticated-user) +- [`DELETE /user/gpg_keys/{gpg_key_id}`](/rest/reference/users#delete-a-gpg-key-for-the-authenticated-user) +- [`GET /users/{username}/hovercard`](/rest/reference/users#get-contextual-information-for-a-user) +- [`GET /users/{username}/keys`](/rest/reference/users#list-public-keys-for-a-user) +- [`GET /user/keys`](/rest/reference/users#list-public-ssh-keys-for-the-authenticated-user) +- [`POST /user/keys`](/rest/reference/users#create-a-public-ssh-key-for-the-authenticated-user) +- [`GET /user/keys/{key_id}`](/rest/reference/users#get-a-public-ssh-key-for-the-authenticated-user) +- [`DELETE /user/keys/{key_id}`](/rest/reference/users#delete-a-public-ssh-key-for-the-authenticated-user) +- [`GET /users/{username}/ssh_signing_keys`](/rest/reference/users#list-ssh-signing-keys-for-a-user) +- [`GET /user/ssh_signing_keys`](/rest/reference/users#list-public-ssh-signing-keys-for-the-authenticated-user) +- [`POST /user/ssh_signing_keys`](/rest/reference/users#create-an-ssh-signing-key-for-the-authenticated-user) +- [`GET /user/ssh_signing_keys/{ssh_signing_key_id}`](/rest/reference/users#get-a-ssh-signing-key-for-the-authenticated-user) +- [`DELETE /user/ssh_signing_keys/{ssh_signing_key_id}`](/rest/reference/users#delete-a-ssh-signing-key-for-the-authenticated-user) +- [`GET /user`](/rest/reference/users#get-the-authenticated-user) +- [`PATCH /user`](/rest/reference/users/#update-the-authenticated-user) +- [`GET /users/{username}`](/rest/reference/users#get-a-user) +- [`GET /users`](/rest/reference/users#list-users) + +## webhooks + +- [`GET /repos/{owner}/{repo}/hooks`](/rest/webhooks/repos#list-repository-webhooks) +- [`POST /repos/{owner}/{repo}/hooks`](/rest/webhooks/repos#create-a-repository-webhook) +- [`GET /repos/{owner}/{repo}/hooks/{hook_id}`](/rest/webhooks/repos#get-a-repository-webhook) +- [`PATCH /repos/{owner}/{repo}/hooks/{hook_id}`](/rest/webhooks/repos#update-a-repository-webhook) +- [`DELETE /repos/{owner}/{repo}/hooks/{hook_id}`](/rest/webhooks/repos#delete-a-repository-webhook) +- [`GET /repos/{owner}/{repo}/hooks/{hook_id}/config`](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository) +- [`PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config`](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository) +- [`GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries`](/rest/webhooks/repo-deliveries#list-deliveries-for-a-repository-webhook) +- [`GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}`](/rest/webhooks/repo-deliveries#get-a-delivery-for-a-repository-webhook) +- [`POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts`](/rest/webhooks/repo-deliveries#redeliver-a-delivery-for-a-repository-webhook) +- [`POST /repos/{owner}/{repo}/hooks/{hook_id}/pings`](/rest/webhooks/repos#ping-a-repository-webhook) +- [`POST /repos/{owner}/{repo}/hooks/{hook_id}/tests`](/rest/webhooks/repos#test-the-push-repository-webhook) diff --git a/content/rest/overview/index.md b/content/rest/overview/index.md index 190b28e450..29dd996753 100644 --- a/content/rest/overview/index.md +++ b/content/rest/overview/index.md @@ -18,6 +18,8 @@ children: - /libraries - /openapi-description - /endpoints-available-for-github-apps + - /endpoints-available-for-fine-grained-personal-access-tokens - /permissions-required-for-github-apps + - /permissions-required-for-fine-grained-personal-access-tokens --- diff --git a/content/rest/overview/other-authentication-methods.md b/content/rest/overview/other-authentication-methods.md index 9cebcf591a..cd303a1c11 100644 --- a/content/rest/overview/other-authentication-methods.md +++ b/content/rest/overview/other-authentication-methods.md @@ -26,7 +26,7 @@ Instead, they should use the [OAuth web flow](/apps/building-oauth-apps/authoriz {% ifversion ghae %} -To authenticate we recommend using [OAuth](/apps/building-integrations/setting-up-and-registering-oauth-apps/) tokens, such a personal access token through the [OAuth web flow](/apps/building-oauth-apps/authorizing-oauth-apps/). +To authenticate we recommend using [OAuth](/apps/building-integrations/setting-up-and-registering-oauth-apps/) tokens, such a {% data variables.product.pat_generic %} through the [OAuth web flow](/apps/building-oauth-apps/authorizing-oauth-apps/). {% endif %} @@ -40,15 +40,15 @@ the existence of user data. Instead, the {% ifversion fpt or ghec %}{% data vari This may cause problems for HTTP libraries that assume a `401 Unauthorized` response. The solution is to manually craft the `Authorization` header. -### Via OAuth and personal access tokens +### Via {% data variables.product.pat_generic %}s -We recommend you use OAuth tokens to authenticate to the GitHub API. OAuth tokens include [personal access tokens][personal-access-tokens] and enable the user to revoke access at any time. +We recommend you use {% ifversion pat-v2%}{% data variables.product.pat_v2 %}s{% else %}{% data variables.product.pat_generic %}s{% endif %} to authenticate to the GitHub API. ```shell $ curl -u USERNAME:TOKEN {% data variables.product.api_url_pre %}/user ``` -This approach is useful if your tools only support Basic Authentication but you want to take advantage of OAuth access token security features. +This approach is useful if your tools only support Basic Authentication but you want to take advantage of {% data variables.product.pat_generic %} security features. ### Via username and password @@ -56,7 +56,7 @@ This approach is useful if your tools only support Basic Authentication but you {% note %} -**Note:** {% data variables.product.prodname_dotcom %} has discontinued password authentication to the API starting on November 13, 2020 for all {% data variables.product.prodname_dotcom_the_website %} accounts, including those on a {% data variables.product.prodname_free_user %}, {% data variables.product.prodname_pro %}, {% data variables.product.prodname_team %}, or {% data variables.product.prodname_ghe_cloud %} plan. You must now authenticate to the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API with an API token, such as an OAuth access token, GitHub App installation access token, or personal access token, depending on what you need to do with the token. For more information, see "[Troubleshooting](/rest/overview/troubleshooting#basic-authentication-errors)." +**Note:** {% data variables.product.prodname_dotcom %} has discontinued password authentication to the API starting on November 13, 2020 for all {% data variables.product.prodname_dotcom_the_website %} accounts, including those on a {% data variables.product.prodname_free_user %}, {% data variables.product.prodname_pro %}, {% data variables.product.prodname_team %}, or {% data variables.product.prodname_ghe_cloud %} plan. You must now authenticate to the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API with an API token, such as an OAuth access token, GitHub App installation access token, or {% data variables.product.pat_generic %}, depending on what you need to do with the token. For more information, see "[Troubleshooting](/rest/overview/troubleshooting#basic-authentication-errors)." {% endnote %} @@ -92,7 +92,7 @@ If you have two-factor authentication enabled, make sure you understand how to [ {% endnote %} -If you're using the API to access an organization that enforces [SAML SSO][saml-sso] for authentication, you'll need to create a personal access token (PAT) and [authorize the token][allowlist] for that organization. Visit the URL specified in `X-GitHub-SSO` to authorize the token for the organization. +If you're using the API to access an organization that enforces [SAML SSO][saml-sso] for authentication, you'll need to create a {% data variables.product.pat_generic %} and [authorize the token][allowlist] for that organization. Visit the URL specified in `X-GitHub-SSO` to authorize the token for the organization. ```shell $ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/repos/octodocs-test/test @@ -104,7 +104,7 @@ $ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre } ``` -When requesting data that could come from multiple organizations (for example, [requesting a list of issues created by the user][user-issues]), the `X-GitHub-SSO` header indicates which organizations require you to authorize your personal access token: +When requesting data that could come from multiple organizations (for example, [requesting a list of issues created by the user][user-issues]), the `X-GitHub-SSO` header indicates which organizations require you to authorize your {% data variables.product.pat_generic %}: ```shell $ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre %}/user/issues @@ -112,15 +112,15 @@ $ curl -v -H "Authorization: Bearer TOKEN" {% data variables.product.api_url_pre > X-GitHub-SSO: partial-results; organizations=21955855,20582480 ``` -The value `organizations` is a comma-separated list of organization IDs for organizations require authorization of your personal access token. +The value `organizations` is a comma-separated list of organization IDs for organizations require authorization of your {% data variables.product.pat_generic %}. {% endif %} {% ifversion fpt or ghes or ghec %} ## Working with two-factor authentication -When you have two-factor authentication enabled, [Basic Authentication](#basic-authentication) for _most_ endpoints in the REST API requires that you use a personal access token{% ifversion ghes %} or OAuth token instead of your username and password{% endif %}. +When you have two-factor authentication enabled, [Basic Authentication](#basic-authentication) for _most_ endpoints in the REST API requires that you use a {% data variables.product.pat_generic %}{% ifversion ghes %} or OAuth token instead of your username and password{% endif %}. -You can generate a new personal access token {% ifversion fpt or ghec %}using [{% data variables.product.product_name %} developer settings](https://github.com/settings/tokens/new){% endif %}{% ifversion ghes %} or with the "[Create a new authorization][/rest/reference/oauth-authorizations#create-a-new-authorization]" endpoint in the OAuth Authorizations API to generate a new OAuth token{% endif %}. For more information, see "[Creating a personal access token for the command line](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)". Then you would use these tokens to [authenticate using OAuth token][oauth-auth] with the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API.{% ifversion ghes %} The only time you need to authenticate with your username and password is when you create your OAuth token or use the OAuth Authorizations API.{% endif %} +You can generate a new {% data variables.product.pat_generic %} {% ifversion fpt or ghec %}using [{% data variables.product.product_name %} developer settings](https://github.com/settings/tokens/new){% endif %}{% ifversion ghes %} or with the "[Create a new authorization][/rest/reference/oauth-authorizations#create-a-new-authorization]" endpoint in the OAuth Authorizations API to generate a new OAuth token{% endif %}. For more information, see "[Creating a {% data variables.product.pat_generic %} for the command line](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)". Then you would use these tokens to [authenticate using OAuth token][oauth-auth] with the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API.{% ifversion ghes %} The only time you need to authenticate with your username and password is when you create your OAuth token or use the OAuth Authorizations API.{% endif %} {% endif %} diff --git a/content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md b/content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md new file mode 100644 index 0000000000..8f605786d4 --- /dev/null +++ b/content/rest/overview/permissions-required-for-fine-grained-personal-access-tokens.md @@ -0,0 +1,731 @@ +--- +title: Permissions required for fine-grained personal access tokens +intro: 'You can find the required permissions for each {% data variables.product.pat_v2 %}-compatible endpoint.' +versions: + feature: pat-v2 +miniTocMaxHeadingLevel: 3 +shortTitle: "{% data variables.product.pat_v2_caps %} permissions" +--- + +## About permissions required for {% data variables.product.pat_v2 %} + +When you create a {% data variables.product.pat_v2 %}, you grant it a set of permissions. Permissions define what resources the {% data variables.product.prodname_github_app %} can access via the API. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + +## Actions + +- [`GET /repos/{owner}/{repo}/actions/cache/usage`](/rest/reference/actions#get-github-actions-cache-usage-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/actions/caches`](/rest/actions/cache#list-github-actions-caches-for-a-repository) (read) +- [`DELETE /repos/{owner}/{repo}/actions/caches`](/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key) (write) +- [`DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}`](/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id) (write) +- [`GET /repos/{owner}/{repo}/actions/artifacts`](/rest/reference/actions#list-artifacts-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}`](/rest/reference/actions#get-an-artifact) (read) +- [`DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}`](/rest/reference/actions#delete-an-artifact) (write) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts`](/rest/reference/actions#list-workflow-run-artifacts) (read) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/reference/actions#get-pending-deployments-for-a-workflow-run) (read) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/reference/actions#review-pending-deployments-for-a-workflow-run) (read) +- [`GET /repos/{owner}/{repo}/environments`](/rest/deployments/environments#list-environments) (read) +- [`GET /repos/{owner}/{repo}/actions/jobs/{job_id}`](/rest/reference/actions#get-a-job-for-a-workflow-run) (read) +- [`GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs`](/rest/reference/actions#download-job-logs-for-a-workflow-run) (read) +- [`POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun`](/rest/reference/actions#re-run-job-for-workflow-run) (write) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs`](/rest/reference/actions#list-jobs-for-a-workflow-run-attempt) (read) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs`](/rest/reference/actions#list-jobs-for-a-workflow-run) (read) +- [`GET /repos/{owner}/{repo}/actions/runs`](/rest/reference/actions#list-workflow-runs-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}`](/rest/reference/actions#get-a-workflow-run) (read) +- [`DELETE /repos/{owner}/{repo}/actions/runs/{run_id}`](/rest/reference/actions#delete-a-workflow-run) (write) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals`](/rest/reference/actions#get-the-review-history-for-a-workflow-run) (read) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve`](/rest/reference/actions#approve-a-workflow-run-for-a-fork-pull-request) (write) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}`](/rest/reference/actions#get-a-workflow-run-attempt) (read) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs`](/rest/reference/actions#download-workflow-run-attempt-logs) (read) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel`](/rest/reference/actions#cancel-a-workflow-run) (write) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs`](/rest/reference/actions#download-workflow-run-logs) (read) +- [`DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs`](/rest/reference/actions#delete-workflow-run-logs) (write) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun`](/rest/reference/actions#re-run-a-workflow) (write) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs`](/rest/reference/actions#re-run-workflow-failed-jobs) (write) +- [`GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing`](/rest/reference/actions#get-workflow-run-usage) (read) +- [`GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs`](/rest/reference/actions#list-workflow-runs) (read) +- [`GET /repos/{owner}/{repo}/actions/workflows`](/rest/reference/actions#list-repository-workflows) (read) +- [`GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}`](/rest/reference/actions#get-a-workflow) (read) +- [`PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable`](/rest/reference/actions#disable-a-workflow) (write) +- [`POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches`](/rest/reference/actions#create-a-workflow-dispatch-event) (write) +- [`PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable`](/rest/reference/actions#enable-a-workflow) (write) +- [`GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing`](/rest/reference/actions#get-workflow-usage) (read) + +## Administration + +- [`PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#create-or-update-a-repository-secret) (write) +- [`DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#delete-a-repository-secret) (write) +- [`GET /repos/{owner}/{repo}/interaction-limits`](/rest/reference/interactions#get-interaction-restrictions-for-a-repository) (read) +- [`PUT /repos/{owner}/{repo}/interaction-limits`](/rest/reference/interactions#set-interaction-restrictions-for-a-repository) (write) +- [`DELETE /repos/{owner}/{repo}/interaction-limits`](/rest/reference/interactions#remove-interaction-restrictions-for-a-repository) (write) +- [`PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#add-or-update-team-repository-permissions) (write) +- [`DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#remove-a-repository-from-a-team) (write) +- [`POST /orgs/{org}/repos`](/rest/reference/repos#create-an-organization-repository) (write) +- [`PATCH /repos/{owner}/{repo}`](/rest/reference/repos/#update-a-repository) (write) +- [`DELETE /repos/{owner}/{repo}`](/rest/reference/repos#delete-a-repository) (write) +- [`POST /repos/{owner}/{repo}/forks`](/rest/reference/repos#create-a-fork) (write) +- [`GET /repos/{owner}/{repo}/teams`](/rest/reference/repos#list-repository-teams) (read) +- [`POST /repos/{owner}/{repo}/transfer`](/rest/reference/repos#transfer-a-repository) (write) +- [`POST /user/repos`](/rest/reference/repos#create-a-repository-for-the-authenticated-user) (write) +- [`GET /repos/{owner}/{repo}/actions/permissions`](/rest/reference/actions#get-github-actions-permissions-for-a-repository) (read) +- [`PUT /repos/{owner}/{repo}/actions/permissions`](/rest/reference/actions#set-github-actions-permissions-for-a-repository) (write) +- [`GET /repos/{owner}/{repo}/actions/permissions/access`](/rest/reference/actions#get-workflow-access-level-to-a-repository) (read) +- [`PUT /repos/{owner}/{repo}/actions/permissions/access`](/rest/reference/actions#set-workflow-access-to-a-repository) (write) +- [`GET /repos/{owner}/{repo}/actions/permissions/selected-actions`](/rest/reference/actions#get-allowed-actions-for-a-repository) (read) +- [`PUT /repos/{owner}/{repo}/actions/permissions/selected-actions`](/rest/reference/actions#set-allowed-actions-for-a-repository) (write) +- [`GET /repos/{owner}/{repo}/actions/permissions/workflow`](/rest/reference/actions#get-default-workflow-permissions-for-a-repository) (read) +- [`PUT /repos/{owner}/{repo}/actions/permissions/workflow`](/rest/reference/actions#set-default-workflow-permissions-for-a-repository) (write) +- [`GET /repos/{owner}/{repo}/autolinks`](/v3/repos#list-autolinks) (read) +- [`POST /repos/{owner}/{repo}/autolinks`](/v3/repos#create-an-autolink) (write) +- [`GET /repos/{owner}/{repo}/autolinks/{autolink_id}`](/v3/repos#get-autolink) (read) +- [`DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}`](/v3/repos#delete-autolink) (write) +- [`PUT /repos/{owner}/{repo}/automated-security-fixes`](/rest/reference/repos#enable-automated-security-fixes) (write) +- [`DELETE /repos/{owner}/{repo}/automated-security-fixes`](/rest/reference/repos#disable-automated-security-fixes) (write) +- [`PUT /repos/{owner}/{repo}/collaborators/{username}`](/rest/collaborators/collaborators#add-a-repository-collaborator) (write) +- [`DELETE /repos/{owner}/{repo}/collaborators/{username}`](/rest/collaborators/collaborators#remove-a-repository-collaborator) (write) +- [`GET /repos/{owner}/{repo}/invitations`](/rest/collaborators/invitations#list-repository-invitations) (read) +- [`PATCH /repos/{owner}/{repo}/invitations/{invitation_id}`](/rest/collaborators/invitations#update-a-repository-invitation) (write) +- [`DELETE /repos/{owner}/{repo}/invitations/{invitation_id}`](/rest/collaborators/invitations#delete-a-repository-invitation) (write) +- [`GET /user/repository_invitations`](/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user) (read) +- [`PATCH /user/repository_invitations/{invitation_id}`](/rest/collaborators/invitations#accept-a-repository-invitation) (write) +- [`DELETE /user/repository_invitations/{invitation_id}`](/rest/collaborators/invitations#decline-a-repository-invitation) (write) +- [`GET /repos/{owner}/{repo}/keys`](/rest/reference/repos#list-deploy-keys) (read) +- [`POST /repos/{owner}/{repo}/keys`](/rest/reference/repos#create-a-deploy-key) (write) +- [`GET /repos/{owner}/{repo}/keys/{key_id}`](/rest/reference/repos#get-a-deploy-key) (read) +- [`DELETE /repos/{owner}/{repo}/keys/{key_id}`](/rest/reference/repos#delete-a-deploy-key) (write) +- [`GET /repos/{owner}/{repo}/pages/health`](/rest/pages#get-a-dns-health-check-for-github-pages) (write) +- [`GET /repos/{owner}/{repo}/actions/runners`](/rest/reference/actions#list-self-hosted-runners-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/actions/runners/{runner_id}`](/rest/reference/actions#get-a-self-hosted-runner-for-a-repository) (read) +- [`DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}`](/rest/reference/actions#delete-a-self-hosted-runner-from-a-repository) (write) +- [`GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels`](/rest/reference/actions#list-labels-for-a-self-hosted-runner-for-a-repository) (read) +- [`POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels`](/rest/reference/actions#add-custom-labels-to-a-self-hosted-runner-for-a-repository) (write) +- [`PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels`](/rest/reference/actions#set-custom-labels-for-a-self-hosted-runner-for-a-repository) (write) +- [`DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels`](/rest/reference/actions#remove-all-custom-labels-from-a-self-hosted-runner-for-a-repository) (write) +- [`DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}`](/rest/reference/actions#remove-a-custom-label-from-a-self-hosted-runner-for-a-repository) (write) +- [`GET /repos/{owner}/{repo}/actions/runners/downloads`](/rest/reference/actions#list-runner-applications-for-a-repository) (read) +- [`POST /repos/{owner}/{repo}/actions/runners/registration-token`](/rest/reference/actions#create-a-registration-token-for-a-repository) (write) +- [`POST /repos/{owner}/{repo}/actions/runners/remove-token`](/rest/reference/actions#create-a-remove-token-for-a-repository) (write) +- [`GET /repos/{owner}/{repo}/tags/protection`](/rest/reference/repos#list-tag-protection-state-of-a-repository) (read) +- [`POST /repos/{owner}/{repo}/tags/protection`](/rest/reference/repos#create-tag-protection-state-for-a-repository) (write) +- [`DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}`](/rest/reference/repos#delete-tag-protection-state-for-a-repository) (write) +- [`GET /repos/{owner}/{repo}/vulnerability-alerts`](/rest/reference/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository) (read) +- [`PUT /repos/{owner}/{repo}/vulnerability-alerts`](/rest/reference/repos#enable-vulnerability-alerts) (write) +- [`DELETE /repos/{owner}/{repo}/vulnerability-alerts`](/rest/reference/repos#disable-vulnerability-alerts) (write) +- [`PUT /repos/{owner}/{repo}/topics`](/rest/reference/repos#replace-all-repository-topics) (write) +- [`GET /repos/{owner}/{repo}/traffic/clones`](/rest/metrics/traffic#get-repository-clones) (read) +- [`GET /repos/{owner}/{repo}/traffic/popular/paths`](/rest/metrics/traffic#get-top-referral-paths) (read) +- [`GET /repos/{owner}/{repo}/traffic/popular/referrers`](/rest/metrics/traffic#get-top-referral-sources) (read) +- [`GET /repos/{owner}/{repo}/traffic/views`](/rest/metrics/traffic#get-page-views) (read) + +## Blocking + +- [`GET /user/blocks`](/rest/reference/users#list-users-blocked-by-the-authenticated-user) (read) +- [`GET /user/blocks/{username}`](/rest/reference/users#check-if-a-user-is-blocked-by-the-authenticated-user) (read) +- [`PUT /user/blocks/{username}`](/rest/reference/users#block-a-user) (write) +- [`DELETE /user/blocks/{username}`](/rest/reference/users#unblock-a-user) (write) + +## Checks + +- [`POST /repos/{owner}/{repo}/check-runs`](/rest/reference/checks#create-a-check-run) (write) +- [`GET /repos/{owner}/{repo}/check-runs/{check_run_id}`](/rest/reference/checks#get-a-check-run) (read) +- [`PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}`](/rest/reference/checks#update-a-check-run) (write) +- [`GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations`](/rest/reference/checks#list-check-run-annotations) (read) +- [`POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest`](/rest/reference/checks#rerequest-a-check-run) (write) +- [`GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs`](/rest/reference/checks#list-check-runs-in-a-check-suite) (read) +- [`POST /repos/{owner}/{repo}/check-suites`](/rest/reference/checks#create-a-check-suite) (write) +- [`GET /repos/{owner}/{repo}/check-suites/{check_suite_id}`](/rest/reference/checks#get-a-check-suite) (read) +- [`POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest`](/rest/reference/checks#rerequest-a-check-suite) (write) +- [`PATCH /repos/{owner}/{repo}/check-suites/preferences`](/rest/reference/checks#update-repository-preferences-for-check-suites) (write) +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/reference/actions#review-pending-deployments-for-a-workflow-run) (read) + +## Codespaces + +- [`GET /orgs/{org}/codespaces`](/rest/reference/codespaces#list-in-organization) (read) +- [`GET /repos/{owner}/{repo}/codespaces`](/rest/reference/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user) (read) +- [`POST /repos/{owner}/{repo}/codespaces`](/rest/reference/codespaces#create-a-codespace-in-a-repository) (write) +- [`GET /repos/{owner}/{repo}/codespaces/new`](/rest/reference/codespaces#preview-attributes-for-a-new-codespace) (write) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces`](/rest/reference/codespaces#create-a-codespace-from-a-pull-request) (write) +- [`GET /user/codespaces`](/rest/reference/codespaces#list-codespaces-for-the-authenticated-user) (read) +- [`POST /user/codespaces`](/rest/reference/codespaces#create-a-codespace-for-the-authenticated-user) (write) +- [`GET /user/codespaces/{codespace_name}`](/rest/reference/codespaces#get-a-codespace-for-the-authenticated-user) (read) +- [`PATCH /user/codespaces/{codespace_name}`](/rest/reference/codespaces#update-a-codespace-for-the-authenticated-user) (write) +- [`DELETE /user/codespaces/{codespace_name}`](/rest/reference/codespaces#delete-a-codespace-for-the-authenticated-user) (write) + +## Codespaces lifecycle admin + +- [`POST /user/codespaces/{codespace_name}/exports`](/rest/codespaces/codespaces#export-a-codespace-for-the-authenticated-user) (write) +- [`GET /user/codespaces/{codespace_name}/exports/{export_id}`](/rest/codespaces/codespaces#get-details-about-a-codespace-export) (read) +- [`POST /user/codespaces/{codespace_name}/start`](/rest/reference/codespaces#start-a-codespace-for-the-authenticated-user) (write) +- [`POST /user/codespaces/{codespace_name}/stop`](/rest/reference/codespaces#stop-a-codespace-for-the-authenticated-user) (write) + +## Codespaces metadata + +- [`GET /repos/{owner}/{repo}/codespaces/devcontainers`](/rest/reference/codespaces#list-devcontainers-in-a-repository-for-the-authenticated-user) (read) +- [`GET /repos/{owner}/{repo}/codespaces/machines`](/rest/reference/codespaces#list-available-machine-types-for-a-repository) (read) +- [`GET /user/codespaces/{codespace_name}/machines`](/rest/reference/codespaces#list-machine-types-for-a-codespace) (read) + +## Codespaces secrets + +- [`GET /repos/{owner}/{repo}/codespaces/secrets`](/rest/reference/codespaces#list-repository-secrets) (write) +- [`GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#get-a-repository-secret) (write) +- [`PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#create-or-update-a-repository-secret) (write) +- [`DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#delete-a-repository-secret) (write) +- [`GET /repos/{owner}/{repo}/codespaces/secrets/public-key`](/rest/reference/codespaces#get-a-repository-public-key) (write) + +## Codespaces user secrets + +- [`GET /user/codespaces/secrets`](/rest/reference/codespaces#list-secrets-for-the-authenticated-user) (read) +- [`GET /user/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#get-a-secret-for-the-authenticated-user) (read) +- [`PUT /user/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#create-or-update-a-secret-for-the-authenticated-user) (write) +- [`DELETE /user/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#delete-a-secret-for-the-authenticated-user) (write) +- [`GET /user/codespaces/secrets/public-key`](/rest/reference/codespaces#get-public-key-for-the-authenticated-user) (read) +- [`GET /user/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#list-selected-repositories-for-a-user-secret) (read) +- [`PUT /user/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#set-selected-repositories-for-a-user-secret) (write) +- [`PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}`](/rest/reference/codespaces#add-a-selected-repository-to-a-user-secret) (write) +- [`DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}`](/rest/reference/codespaces#remove-a-selected-repository-from-a-user-secret) (write) + +## Contents + +- [`GET /repos/{owner}/{repo}/codeowners/errors`](/rest/reference/repos#list-codeowners-errors) (read) +- [`POST /repos/{owner}/{repo}/git/blobs`](/rest/reference/git#create-a-blob) (write) +- [`POST /repos/{owner}/{repo}/git/commits`](/rest/reference/git#create-a-commit) (write) +- [`POST /repos/{owner}/{repo}/git/refs`](/rest/reference/git#create-a-reference) (write) +- [`POST /repos/{owner}/{repo}/git/tags`](/rest/reference/git#create-a-tag-object) (write) +- [`POST /repos/{owner}/{repo}/git/trees`](/rest/reference/git#create-a-tree) (write) +- [`GET /repos/{owner}/{repo}/import`](/rest/reference/migrations#get-an-import-status) (read) +- [`PUT /repos/{owner}/{repo}/import`](/rest/reference/migrations#start-an-import) (write) +- [`PATCH /repos/{owner}/{repo}/import`](/rest/reference/migrations#update-an-import) (write) +- [`DELETE /repos/{owner}/{repo}/import`](/rest/reference/migrations#cancel-an-import) (write) +- [`GET /repos/{owner}/{repo}/import/authors`](/rest/reference/migrations#get-commit-authors) (read) +- [`PATCH /repos/{owner}/{repo}/import/authors/{author_id}`](/rest/reference/migrations#map-a-commit-author) (write) +- [`GET /repos/{owner}/{repo}/import/large_files`](/rest/reference/migrations#get-large-files) (read) +- [`PATCH /repos/{owner}/{repo}/import/lfs`](/rest/reference/migrations#update-git-lfs-preference) (write) +- [`PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge`](/rest/reference/pulls#merge-a-pull-request) (write) +- [`POST /repos/{owner}/{repo}/comments/{comment_id}/reactions`](/rest/reference/reactions#create-reaction-for-a-commit-comment) (write) +- [`DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}`](/rest/reference/reactions#delete-a-commit-comment-reaction) (write) +- [`GET /repos/{owner}/{repo}/branches`](/rest/reference/repos#list-branches) (read) +- [`POST /repos/{owner}/{repo}/merge-upstream`](/rest/reference/repos#sync-a-fork-branch-with-the-upstream-repository) (write) +- [`POST /repos/{owner}/{repo}/merges`](/rest/reference/repos#merge-a-branch) (write) +- [`GET /repos/{owner}/{repo}/code-scanning/codeql/databases`](/rest/reference/code-scanning#list-codeql-databases) (read) +- [`GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}`](/rest/reference/code-scanning#get-codeql-database) (read) +- [`PATCH /repos/{owner}/{repo}/comments/{comment_id}`](/rest/commits/comments#update-a-commit-comment) (write) +- [`DELETE /repos/{owner}/{repo}/comments/{comment_id}`](/rest/commits/comments#delete-a-commit-comment) (write) +- [`GET /repos/{owner}/{repo}/commits`](/rest/commits/commits#list-commits) (read) +- [`GET /repos/{owner}/{repo}/community/profile`](/rest/metrics/community#get-community-profile-metrics) (read) +- [`GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}`](/rest/reference/dependency-graph#get-a-diff-of-the-dependencies-between-commits) (read) +- [`POST /repos/{owner}/{repo}/dispatches`](/rest/reference/repos#create-a-repository-dispatch-event) (write) +- [`GET /repos/{owner}/{repo}/releases`](/rest/reference/repos#list-releases) (read) +- [`POST /repos/{owner}/{repo}/releases`](/rest/reference/repos#create-a-release) (write) +- [`GET /repos/{owner}/{repo}/releases/{release_id}`](/rest/reference/repos#get-a-release) (read) +- [`PATCH /repos/{owner}/{repo}/releases/{release_id}`](/rest/reference/repos#update-a-release) (write) +- [`DELETE /repos/{owner}/{repo}/releases/{release_id}`](/rest/reference/repos#delete-a-release) (write) +- [`GET /repos/{owner}/{repo}/releases/{release_id}/assets`](/rest/reference/repos#list-release-assets) (read) +- [`GET /repos/{owner}/{repo}/releases/assets/{asset_id}`](/rest/reference/repos#get-a-release-asset) (read) +- [`PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}`](/rest/reference/repos#update-a-release-asset) (write) +- [`DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}`](/rest/reference/repos#delete-a-release-asset) (write) +- [`POST /repos/{owner}/{repo}/releases/generate-notes`](/rest/reference/repos#generate-release-notes) (write) +- [`GET /repos/{owner}/{repo}/releases/latest`](/rest/reference/repos#get-the-latest-release) (read) + +## Dependabot secrets + +- [`GET /repos/{owner}/{repo}/dependabot/secrets`](/rest/reference/dependabot#list-repository-secrets) (read) +- [`GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#get-a-repository-secret) (read) +- [`PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#create-or-update-a-repository-secret) (write) +- [`DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#delete-a-repository-secret) (write) +- [`GET /repos/{owner}/{repo}/dependabot/secrets/public-key`](/rest/reference/dependabot#get-a-repository-public-key) (read) + +## Deployments + +- [`POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments`](/rest/reference/actions#review-pending-deployments-for-a-workflow-run) (read) +- [`GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses`](/rest/reference/repos#list-deployment-statuses) (read) +- [`POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses`](/rest/reference/repos#create-a-deployment-status) (write) +- [`GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}`](/rest/reference/repos#get-a-deployment-status) (read) +- [`GET /repos/{owner}/{repo}/deployments`](/rest/reference/repos#list-deployments) (read) +- [`POST /repos/{owner}/{repo}/deployments`](/rest/reference/repos#create-a-deployment) (write) +- [`GET /repos/{owner}/{repo}/deployments/{deployment_id}`](/rest/reference/repos#get-a-deployment) (read) +- [`DELETE /repos/{owner}/{repo}/deployments/{deployment_id}`](/rest/reference/repos#delete-a-deployment) (write) + +## Emails + +- [`PATCH /user/email/visibility`](/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user) (write) +- [`GET /user/emails`](/rest/reference/users#list-email-addresses-for-the-authenticated-user) (read) +- [`POST /user/emails`](/rest/reference/users#add-an-email-address-for-the-authenticated-user) (write) +- [`DELETE /user/emails`](/rest/reference/users#delete-an-email-address-for-the-authenticated-user) (write) +- [`GET /user/public_emails`](/rest/reference/users#list-public-email-addresses-for-the-authenticated-user) (read) + +## Enterprise administration + +- [`GET /enterprises/{enterprise}/settings/billing/advanced-security`](/rest/reference/billing#export-advanced-security-active-committers-data-for-enterprise) (write) +- [`GET /enterprises/{enterprise}/actions/cache/usage`](/rest/reference/actions#get-github-actions-cache-usage-for-an-enterprise) (write) + +## Followers + +- [`GET /user/followers`](/rest/reference/users#list-followers-of-the-authenticated-user) (read) +- [`GET /user/following`](/rest/reference/users#list-the-people-the-authenticated-user-follows) (read) +- [`GET /user/following/{username}`](/rest/reference/users#check-if-a-person-is-followed-by-the-authenticated-user) (read) +- [`PUT /user/following/{username}`](/rest/reference/users#follow-a-user) (write) +- [`DELETE /user/following/{username}`](/rest/reference/users#unfollow-a-user) (write) + +## Gists + +- [`POST /gists/{gist_id}/comments`](/rest/reference/gists#create-a-gist-comment) (write) +- [`PATCH /gists/{gist_id}/comments/{comment_id}`](/rest/reference/gists#update-a-gist-comment) (write) +- [`DELETE /gists/{gist_id}/comments/{comment_id}`](/rest/reference/gists#delete-a-gist-comment) (write) +- [`POST /gists`](/rest/reference/gists#create-a-gist) (write) +- [`PATCH /gists/{gist_id}`](/rest/reference/gists/#update-a-gist) (write) +- [`DELETE /gists/{gist_id}`](/rest/reference/gists#delete-a-gist) (write) +- [`POST /gists/{gist_id}/forks`](/rest/reference/gists#fork-a-gist) (write) +- [`PUT /gists/{gist_id}/star`](/rest/reference/gists#star-a-gist) (write) +- [`DELETE /gists/{gist_id}/star`](/rest/reference/gists#unstar-a-gist) (write) + +## Git signing ssh public keys + +- [`GET /user/ssh_signing_keys`](/rest/reference/users#list-public-ssh-signing-keys-for-the-authenticated-user) (read) +- [`POST /user/ssh_signing_keys`](/rest/reference/users#create-an-ssh-signing-key-for-the-authenticated-user) (write) +- [`GET /user/ssh_signing_keys/{ssh_signing_key_id}`](/rest/reference/users#get-a-ssh-signing-key-for-the-authenticated-user) (read) +- [`DELETE /user/ssh_signing_keys/{ssh_signing_key_id}`](/rest/reference/users#delete-a-ssh-signing-key-for-the-authenticated-user) (write) + +## Gpg keys + +- [`GET /user/gpg_keys`](/rest/reference/users#list-gpg-keys-for-the-authenticated-user) (read) +- [`POST /user/gpg_keys`](/rest/reference/users#create-a-gpg-key-for-the-authenticated-user) (write) +- [`GET /user/gpg_keys/{gpg_key_id}`](/rest/reference/users#get-a-gpg-key-for-the-authenticated-user) (read) +- [`DELETE /user/gpg_keys/{gpg_key_id}`](/rest/reference/users#delete-a-gpg-key-for-the-authenticated-user) (write) + +## Interaction limits + +- [`GET /user/interaction-limits`](/rest/reference/interactions#get-interaction-restrictions-for-your-public-repositories) (read) +- [`PUT /user/interaction-limits`](/rest/reference/interactions#set-interaction-restrictions-for-your-public-repositories) (write) +- [`DELETE /user/interaction-limits`](/rest/reference/interactions#remove-interaction-restrictions-from-your-public-repositories) (write) + +## Issues + +- [`POST /repos/{owner}/{repo}/issues/{issue_number}/assignees`](/rest/reference/issues#add-assignees-to-an-issue) (write) +- [`DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees`](/rest/reference/issues#remove-assignees-from-an-issue) (write) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/comments`](/rest/reference/issues#list-issue-comments) (read) +- [`POST /repos/{owner}/{repo}/issues/{issue_number}/comments`](/rest/reference/issues#create-an-issue-comment) (write) +- [`GET /repos/{owner}/{repo}/issues/comments`](/rest/reference/issues#list-issue-comments-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/issues/comments/{comment_id}`](/rest/reference/issues#get-an-issue-comment) (read) +- [`PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}`](/rest/reference/issues#update-an-issue-comment) (write) +- [`DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}`](/rest/reference/issues#delete-an-issue-comment) (write) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/events`](/rest/reference/issues#list-issue-events) (read) +- [`GET /repos/{owner}/{repo}/issues/events`](/rest/reference/issues#list-issue-events-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/issues/events/{event_id}`](/rest/reference/issues#get-an-issue-event) (read) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/timeline`](/rest/reference/issues#list-timeline-events-for-an-issue) (read) +- [`GET /repos/{owner}/{repo}/assignees`](/rest/reference/issues#list-assignees) (read) +- [`GET /repos/{owner}/{repo}/issues`](/rest/reference/issues#list-repository-issues) (read) +- [`POST /repos/{owner}/{repo}/issues`](/rest/reference/issues#create-an-issue) (write) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}`](/rest/reference/issues#get-an-issue) (read) +- [`PATCH /repos/{owner}/{repo}/issues/{issue_number}`](/rest/reference/issues/#update-an-issue) (write) +- [`PUT /repos/{owner}/{repo}/issues/{issue_number}/lock`](/rest/reference/issues#lock-an-issue) (write) +- [`DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock`](/rest/reference/issues#unlock-an-issue) (write) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/labels`](/rest/reference/issues#list-labels-for-an-issue) (read) +- [`POST /repos/{owner}/{repo}/issues/{issue_number}/labels`](/rest/reference/issues#add-labels-to-an-issue) (write) +- [`PUT /repos/{owner}/{repo}/issues/{issue_number}/labels`](/rest/reference/issues#set-labels-for-an-issue) (write) +- [`DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels`](/rest/reference/issues#remove-all-labels-from-an-issue) (write) +- [`GET /repos/{owner}/{repo}/labels`](/rest/reference/issues#list-labels-for-a-repository) (read) +- [`POST /repos/{owner}/{repo}/labels`](/rest/reference/issues#create-a-label) (write) +- [`GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels`](/rest/reference/issues#list-labels-for-issues-in-a-milestone) (read) +- [`GET /repos/{owner}/{repo}/milestones`](/rest/reference/issues#list-milestones) (read) +- [`POST /repos/{owner}/{repo}/milestones`](/rest/reference/issues#create-a-milestone) (write) +- [`GET /repos/{owner}/{repo}/milestones/{milestone_number}`](/rest/reference/issues#get-a-milestone) (read) +- [`PATCH /repos/{owner}/{repo}/milestones/{milestone_number}`](/rest/reference/issues#update-a-milestone) (write) +- [`DELETE /repos/{owner}/{repo}/milestones/{milestone_number}`](/rest/reference/issues#delete-a-milestone) (write) +- [`GET /repos/{owner}/{repo}/issues/{issue_number}/reactions`](/rest/reference/reactions#list-reactions-for-an-issue) (read) +- [`POST /repos/{owner}/{repo}/issues/{issue_number}/reactions`](/rest/reference/reactions#create-reaction-for-an-issue) (write) +- [`DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}`](/rest/reference/reactions#delete-an-issue-reaction) (write) +- [`GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions`](/rest/reference/reactions#list-reactions-for-an-issue-comment) (read) +- [`POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions`](/rest/reference/reactions#create-reaction-for-an-issue-comment) (write) +- [`DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}`](/rest/reference/reactions#delete-an-issue-comment-reaction) (write) + +## Keys + +- [`GET /user/keys`](/rest/reference/users#list-public-ssh-keys-for-the-authenticated-user) (read) +- [`POST /user/keys`](/rest/reference/users#create-a-public-ssh-key-for-the-authenticated-user) (write) +- [`GET /user/keys/{key_id}`](/rest/reference/users#get-a-public-ssh-key-for-the-authenticated-user) (read) +- [`DELETE /user/keys/{key_id}`](/rest/reference/users#delete-a-public-ssh-key-for-the-authenticated-user) (write) + +## Members + +{% ifversion ghec %}- [`PATCH /orgs/{org}/teams/{team_slug}/external-groups`](/rest/reference/teams#link-external-idp-group-team-connection) (write){% endif %} +{% ifversion ghec %}- [`DELETE /orgs/{org}/teams/{team_slug}/external-groups`](/rest/reference/teams#unlink-external-idp-group-team-connection) (write){% endif %} +{% ifversion ghec %}- [`GET /orgs/{org}/external-group/{group_id}`](/rest/reference/teams#external-idp-group-info-for-an-organization) (write){% endif %} +{% ifversion ghec %}- [`GET /orgs/{org}/external-groups`](/rest/reference/teams#list-external-idp-groups-for-an-organization) (write){% endif %} +- [`GET /orgs/{org}/failed_invitations`](/rest/reference/orgs#list-failed-organization-invitations) (read) +- [`GET /orgs/{org}/invitations`](/rest/reference/orgs#list-pending-organization-invitations) (read) +- [`POST /orgs/{org}/invitations`](/rest/reference/orgs#create-an-organization-invitation) (write) +- [`DELETE /orgs/{org}/invitations/{invitation_id}`](/rest/reference/orgs#cancel-an-organization-invitation) (write) +- [`GET /orgs/{org}/invitations/{invitation_id}/teams`](/rest/reference/orgs#list-organization-invitation-teams) (read) +- [`GET /orgs/{org}/members`](/rest/reference/orgs#list-organization-members) (read) +- [`GET /orgs/{org}/members/{username}`](/rest/reference/orgs#check-organization-membership-for-a-user) (read) +- [`DELETE /orgs/{org}/members/{username}`](/rest/reference/orgs#remove-an-organization-member) (write) +- [`GET /orgs/{org}/memberships/{username}`](/rest/reference/orgs#get-organization-membership-for-a-user) (read) +- [`PUT /orgs/{org}/memberships/{username}`](/rest/reference/orgs#set-organization-membership-for-a-user) (write) +- [`DELETE /orgs/{org}/memberships/{username}`](/rest/reference/orgs#remove-organization-membership-for-a-user) (write) +- [`GET /orgs/{org}/public_members`](/rest/reference/orgs#list-public-organization-members) (read) +- [`GET /orgs/{org}/public_members/{username}`](/rest/reference/orgs#check-public-organization-membership-for-a-user) (read) +- [`PUT /orgs/{org}/public_members/{username}`](/rest/reference/orgs#set-public-organization-membership-for-the-authenticated-user) (write) +- [`DELETE /orgs/{org}/public_members/{username}`](/rest/reference/orgs#remove-public-organization-membership-for-the-authenticated-user) (write) +- [`GET /orgs/{org}/outside_collaborators`](/rest/reference/orgs#list-outside-collaborators-for-an-organization) (read) +- [`PUT /orgs/{org}/outside_collaborators/{username}`](/rest/reference/orgs#convert-an-organization-member-to-outside-collaborator) (write) +- [`DELETE /orgs/{org}/outside_collaborators/{username}`](/rest/reference/orgs#remove-outside-collaborator-from-an-organization) (write) +- [`GET /orgs/{org}/teams/{team_slug}/projects`](/rest/reference/teams#list-team-projects) (read) +- [`GET /orgs/{org}/teams/{team_slug}/projects/{project_id}`](/rest/reference/teams#check-team-permissions-for-a-project) (read) +- [`PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}`](/rest/reference/teams#add-or-update-team-project-permissions) (read) +- [`DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}`](/rest/reference/teams#remove-a-project-from-a-team) (read) +- [`GET /orgs/{org}/teams/{team_slug}/repos`](/rest/reference/teams#list-team-repositories) (read) +- [`GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#check-team-permissions-for-a-repository) (read) +- [`PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#add-or-update-team-repository-permissions) (read) +- [`DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#remove-a-repository-from-a-team) (read) +- [`PATCH /orgs/{org}/teams/{team_slug}`](/rest/reference/teams#update-a-team) (write) +- [`DELETE /orgs/{org}/teams/{team_slug}`](/rest/reference/teams#delete-a-team) (write) +- [`GET /orgs/{org}/teams/{team_slug}/invitations`](/rest/reference/teams#list-pending-team-invitations) (read) +- [`GET /orgs/{org}/teams/{team_slug}/members`](/rest/reference/teams#list-team-members) (read) +- [`GET /orgs/{org}/teams/{team_slug}/memberships/{username}`](/rest/reference/teams#get-team-membership-for-a-user) (read) +- [`PUT /orgs/{org}/teams/{team_slug}/memberships/{username}`](/rest/reference/teams#add-or-update-team-membership-for-a-user) (write) +- [`DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}`](/rest/reference/teams#remove-team-membership-for-a-user) (write) +- [`GET /orgs/{org}/teams/{team_slug}/teams`](/rest/reference/teams#list-child-teams) (read) +- [`GET /orgs/{org}/teams/{team_slug}`](/rest/reference/teams#get-a-team-by-name) (read) +- [`GET /orgs/{org}/teams`](/rest/reference/teams#list-teams) (read) +- [`POST /orgs/{org}/teams`](/rest/reference/teams#create-a-team) (write) +- [`GET /user/memberships/orgs/{org}`](/rest/reference/orgs#get-an-organization-membership-for-the-authenticated-user) (read) +- [`PATCH /user/memberships/orgs/{org}`](/rest/reference/orgs#update-an-organization-membership-for-the-authenticated-user) (write) + +## Metadata + +- [`GET /user/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#list-selected-repositories-for-a-user-secret) (read) +- [`PUT /user/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#set-selected-repositories-for-a-user-secret) (read) +- [`PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}`](/rest/reference/codespaces#add-a-selected-repository-to-a-user-secret) (read) +- [`DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}`](/rest/reference/codespaces#remove-a-selected-repository-from-a-user-secret) (read) +- [`GET /repos/{owner}/{repo}/events`](/rest/reference/activity#list-repository-events) (read) +- [`POST /gists/{gist_id}/comments`](/rest/reference/gists#create-a-gist-comment) (read) +- [`GET /gists/{gist_id}/comments/{comment_id}`](/rest/reference/gists#get-a-gist-comment) (read) +- [`PATCH /gists/{gist_id}/comments/{comment_id}`](/rest/reference/gists#update-a-gist-comment) (read) +- [`DELETE /gists/{gist_id}/comments/{comment_id}`](/rest/reference/gists#delete-a-gist-comment) (read) +- [`POST /gists`](/rest/reference/gists#create-a-gist) (read) +- [`PATCH /gists/{gist_id}`](/rest/reference/gists/#update-a-gist) (read) +- [`DELETE /gists/{gist_id}`](/rest/reference/gists#delete-a-gist) (read) +- [`POST /gists/{gist_id}/forks`](/rest/reference/gists#fork-a-gist) (read) +- [`PUT /gists/{gist_id}/star`](/rest/reference/gists#star-a-gist) (read) +- [`DELETE /gists/{gist_id}/star`](/rest/reference/gists#unstar-a-gist) (read) +- [`GET /notifications`](/rest/reference/activity#list-notifications-for-the-authenticated-user) (read) +- [`GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#check-team-permissions-for-a-repository) (read) +- [`PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#add-or-update-team-repository-permissions) (read) +- [`DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}`](/rest/reference/teams/#remove-a-repository-from-a-team) (read) +- [`GET /repos/{owner}/{repo}/comments/{comment_id}/reactions`](/rest/reference/reactions#list-reactions-for-a-commit-comment) (read) +- [`GET /orgs/{org}/repos`](/rest/reference/repos#list-organization-repositories) (read) +- [`GET /repositories`](/rest/reference/repos#list-public-repositories) (read) +- [`GET /repos/{owner}/{repo}`](/rest/reference/repos#get-a-repository) (read) +- [`GET /repos/{owner}/{repo}/contributors`](/rest/reference/repos#list-repository-contributors) (read) +- [`GET /repos/{owner}/{repo}/forks`](/rest/reference/repos#list-forks) (read) +- [`GET /repos/{owner}/{repo}/languages`](/rest/reference/repos#list-repository-languages) (read) +- [`GET /repos/{owner}/{repo}/tags`](/rest/reference/repos#list-repository-tags) (read) +- [`GET /users/{username}/repos`](/rest/reference/repos#list-repositories-for-a-user) (read) +- [`GET /user/repos`](/rest/reference/repos#list-repositories-for-the-authenticated-user) (read) +- [`GET /repos/{owner}/{repo}/stargazers`](/rest/reference/activity#list-stargazers) (read) +- [`GET /repos/{owner}/{repo}/subscribers`](/rest/reference/activity#list-watchers) (read) +- [`GET /repos/{owner}/{repo}/collaborators`](/rest/collaborators/collaborators#list-repository-collaborators) (read) +- [`GET /repos/{owner}/{repo}/collaborators/{username}`](/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator) (read) +- [`GET /repos/{owner}/{repo}/collaborators/{username}/permission`](/rest/collaborators/collaborators#get-repository-permissions-for-a-user) (read) +- [`GET /repos/{owner}/{repo}/comments`](/rest/commits/comments#list-commit-comments-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/comments/{comment_id}`](/rest/commits/comments#get-a-commit-comment) (read) +- [`GET /repos/{owner}/{repo}/license`](/rest/reference/licenses/#get-the-license-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/stats/code_frequency`](/rest/metrics/statistics#get-the-weekly-commit-activity) (read) +- [`GET /repos/{owner}/{repo}/stats/commit_activity`](/rest/metrics/statistics#get-the-last-year-of-commit-activity) (read) +- [`GET /repos/{owner}/{repo}/stats/contributors`](/rest/metrics/statistics#get-all-contributor-commit-activity) (read) +- [`GET /repos/{owner}/{repo}/stats/participation`](/rest/metrics/statistics#get-the-weekly-commit-count) (read) +- [`GET /repos/{owner}/{repo}/stats/punch_card`](/rest/metrics/statistics#get-the-hourly-commit-count-for-each-day) (read) +- [`GET /search/labels`](/rest/reference/search#search-labels) (read) +- [`GET /repos/{owner}/{repo}/topics`](/rest/reference/repos#get-all-repository-topics) (read) + +## Notifications + +- [`GET /notifications`](/rest/reference/activity#list-notifications-for-the-authenticated-user) (read) + +## Organization administration + +{% ifversion ghec %}- [`GET /orgs/{org}/audit-log`](/rest/reference/orgs#get-audit-log) (read){% endif %} +- [`GET /orgs/{org}/settings/billing/actions`](/rest/reference/billing#get-github-actions-billing-for-an-organization) (read) +- [`GET /orgs/{org}/settings/billing/advanced-security`](/rest/reference/billing#get-github-advanced-security-active-committers-for-an-organization) (read) +- [`GET /orgs/{org}/settings/billing/packages`](/rest/reference/billing#get-github-packages-billing-for-an-organization) (read) +- [`GET /orgs/{org}/settings/billing/shared-storage`](/rest/reference/billing#get-shared-storage-billing-for-an-organization) (read) +- [`GET /enterprise-installation/{enterprise_or_org}/server-statistics`](/rest/reference/enterprise-admin#get-github-enterprise-server-statistics) (read) +- [`GET /orgs/{org}/interaction-limits`](/rest/reference/interactions#get-interaction-restrictions-for-an-organization) (read) +- [`PUT /orgs/{org}/interaction-limits`](/rest/reference/interactions#set-interaction-restrictions-for-an-organization) (write) +- [`DELETE /orgs/{org}/interaction-limits`](/rest/reference/interactions#remove-interaction-restrictions-for-an-organization) (write) +- [`GET /orgs/{org}/actions/cache/usage`](/rest/reference/actions#get-github-actions-cache-usage-for-an-organization) (read) +- [`GET /orgs/{org}/actions/cache/usage-by-repository`](/rest/reference/actions#list-repositories-with-github-actions-cache-usage-for-an-organization) (read) +- [`GET /orgs/{org}/actions/permissions`](/rest/reference/actions#get-github-actions-permissions-for-an-organization) (read) +- [`PUT /orgs/{org}/actions/permissions`](/rest/reference/actions#set-github-actions-permissions-for-an-organization) (write) +- [`GET /orgs/{org}/actions/permissions/repositories`](/rest/reference/actions#list-selected-repositories-enabled-for-github-actions-in-an-organization) (read) +- [`PUT /orgs/{org}/actions/permissions/repositories`](/rest/reference/actions#set-selected-repositories-enabled-for-github-actions-in-an-organization) (write) +- [`GET /orgs/{org}/actions/permissions/selected-actions`](/rest/reference/actions#get-allowed-actions-for-an-organization) (read) +- [`PUT /orgs/{org}/actions/permissions/selected-actions`](/rest/reference/actions#set-allowed-actions-for-an-organization) (write) +- [`GET /orgs/{org}/actions/permissions/workflow`](/rest/reference/actions#get-default-workflow-permissions) (read) +- [`PUT /orgs/{org}/actions/permissions/workflow`](/rest/reference/actions#set-default-workflow-permissions) (write) +- [`GET /orgs/{org}/security-managers`](/rest/reference/orgs#list-security-manager-teams) (read) +- [`PUT /orgs/{org}/security-managers/teams/{team_slug}`](/rest/reference/orgs#add-a-security-manager-team) (write) +- [`DELETE /orgs/{org}/security-managers/teams/{team_slug}`](/rest/reference/orgs#remove-a-security-manager-team) (write) +- [`PATCH /orgs/{org}`](/rest/reference/orgs/#update-an-organization) (write) +- [`GET /orgs/{org}/installations`](/rest/reference/orgs#list-app-installations-for-an-organization) (read) + +## Organization codespaces + +- [`GET /orgs/{org}/codespaces`](/rest/reference/codespaces#list-in-organization) (read) + +## Organization codespaces secrets + +- [`GET /orgs/{org}/codespaces/secrets`](/rest/reference/codespaces#list-organization-secrets) (read) +- [`GET /orgs/{org}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#get-an-organization-secret) (read) +- [`PUT /orgs/{org}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#create-or-update-an-organization-secret) (write) +- [`DELETE /orgs/{org}/codespaces/secrets/{secret_name}`](/rest/reference/codespaces#delete-an-organization-secret) (write) +- [`GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#list-selected-repositories-for-an-organization-secret) (read) +- [`PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories`](/rest/reference/codespaces#set-selected-repositories-for-an-organization-secret) (write) +- [`GET /orgs/{org}/codespaces/secrets/public-key`](/rest/reference/codespaces#get-an-organization-public-key) (read) + +## Organization codespaces settings + +- [`PUT /orgs/{org}/codespaces/billing`](/rest/reference/codespaces#set-codespaces-billing) (write) + +## Organization custom roles + +- [`GET /organizations/{organization_id}/custom_roles`](/rest/reference/orgs#list-custom-repository-roles-in-an-organization) (read) +- [`PATCH /orgs/{org}/custom_roles/{role_id}`](/rest/reference/orgs#update-a-custom-role) (write) +- [`DELETE /orgs/{org}/custom_roles/{role_id}`](/rest/reference/orgs#delete-a-custom-role) (write) +- [`GET /orgs/{org}/fine_grained_permissions`](/rest/reference/orgs#list-fine-grained-permissions-for-an-organization) (read) + +## Organization dependabot secrets + +- [`GET /orgs/{org}/dependabot/secrets`](/rest/reference/dependabot#list-organization-secrets) (read) +- [`GET /orgs/{org}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#get-an-organization-secret) (read) +- [`PUT /orgs/{org}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#create-or-update-an-organization-secret) (write) +- [`DELETE /orgs/{org}/dependabot/secrets/{secret_name}`](/rest/reference/dependabot#delete-an-organization-secret) (write) +- [`GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories`](/rest/reference/dependabot#list-selected-repositories-for-an-organization-secret) (read) +- [`PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories`](/rest/reference/dependabot#set-selected-repositories-for-an-organization-secret) (write) +- [`GET /orgs/{org}/dependabot/secrets/public-key`](/rest/reference/dependabot#get-an-organization-public-key) (read) + +## Organization events + +- [`GET /users/{username}/events/orgs/{org}`](/rest/reference/activity#list-organization-events-for-the-authenticated-user) (read) + +## Organization hooks + +- [`GET /orgs/{org}/hooks`](/rest/reference/orgs#list-organization-webhooks) (read) +- [`POST /orgs/{org}/hooks`](/rest/reference/orgs#create-an-organization-webhook) (write) +- [`GET /orgs/{org}/hooks/{hook_id}`](/rest/reference/orgs#get-an-organization-webhook) (read) +- [`PATCH /orgs/{org}/hooks/{hook_id}`](/rest/reference/orgs#update-an-organization-webhook) (write) +- [`DELETE /orgs/{org}/hooks/{hook_id}`](/rest/reference/orgs#delete-an-organization-webhook) (write) +- [`GET /orgs/{org}/hooks/{hook_id}/config`](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization) (read) +- [`PATCH /orgs/{org}/hooks/{hook_id}/config`](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization) (write) +- [`GET /orgs/{org}/hooks/{hook_id}/deliveries`](/rest/reference/orgs#list-deliveries-for-an-organization-webhook) (read) +- [`GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}`](/rest/reference/orgs#get-a-webhook-delivery-for-an-organization-webhook) (read) +- [`POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts`](/rest/reference/orgs#redeliver-a-delivery-for-an-organization-webhook) (write) +- [`POST /orgs/{org}/hooks/{hook_id}/pings`](/rest/reference/orgs#ping-an-organization-webhook) (write) + +## Organization projects + +- [`PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}`](/rest/reference/teams#add-or-update-team-project-permissions) (admin) +- [`DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}`](/rest/reference/teams#remove-a-project-from-a-team) (admin) +- [`GET /orgs/{org}/projects`](/rest/reference/projects#list-organization-projects) (read) +- [`POST /orgs/{org}/projects`](/rest/reference/projects#create-an-organization-project) (write) + +## Organization secrets + +- [`GET /orgs/{org}/actions/secrets`](/rest/reference/actions#list-organization-secrets) (read) +- [`GET /orgs/{org}/actions/secrets/{secret_name}`](/rest/reference/actions#get-an-organization-secret) (read) +- [`PUT /orgs/{org}/actions/secrets/{secret_name}`](/rest/reference/actions#create-or-update-an-organization-secret) (write) +- [`DELETE /orgs/{org}/actions/secrets/{secret_name}`](/rest/reference/actions#delete-an-organization-secret) (write) +- [`GET /orgs/{org}/actions/secrets/{secret_name}/repositories`](/rest/reference/actions#list-selected-repositories-for-an-organization-secret) (read) +- [`PUT /orgs/{org}/actions/secrets/{secret_name}/repositories`](/rest/reference/actions#set-selected-repositories-for-an-organization-secret) (write) +- [`GET /orgs/{org}/actions/secrets/public-key`](/rest/reference/actions#get-an-organization-public-key) (read) + +## Organization self hosted runners + +- [`GET /orgs/{org}/actions/runner-groups`](/rest/reference/actions#list-self-hosted-runner-groups-for-an-organization) (read) +- [`POST /orgs/{org}/actions/runner-groups`](/rest/reference/actions#create-a-self-hosted-runner-group-for-an-organization) (write) +- [`GET /orgs/{org}/actions/runner-groups/{runner_group_id}`](/rest/reference/actions#get-a-self-hosted-runner-group-for-an-organization) (read) +- [`PATCH /orgs/{org}/actions/runner-groups/{runner_group_id}`](/rest/reference/actions#update-a-self-hosted-runner-group-for-an-organization) (write) +- [`DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}`](/rest/reference/actions#delete-a-self-hosted-runner-group-from-an-organization) (write) +- [`GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories`](/rest/reference/actions#list-repository-access-to-a-self-hosted-runner-group-in-an-organization) (read) +- [`PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories`](/rest/reference/actions#set-repository-access-to-a-self-hosted-runner-group-in-an-organization) (write) +- [`GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners`](/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-organization) (read) +- [`PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/runners`](/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization) (write) +- [`PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}`](/rest/reference/actions#add-a-self-hosted-runner-to-a-group-for-an-organization) (write) +- [`DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}`](/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-organization) (write) +- [`GET /orgs/{org}/actions/runners`](/rest/reference/actions#list-self-hosted-runners-for-an-organization) (read) +- [`GET /orgs/{org}/actions/runners/{runner_id}`](/rest/reference/actions#get-a-self-hosted-runner-for-an-organization) (read) +- [`DELETE /orgs/{org}/actions/runners/{runner_id}`](/rest/reference/actions#delete-a-self-hosted-runner-from-an-organization) (write) +- [`GET /orgs/{org}/actions/runners/{runner_id}/labels`](/rest/reference/actions#list-labels-for-a-self-hosted-runner-for-an-organization) (read) +- [`POST /orgs/{org}/actions/runners/{runner_id}/labels`](/rest/reference/actions#add-custom-labels-to-a-self-hosted-runner-for-an-organization) (write) +- [`PUT /orgs/{org}/actions/runners/{runner_id}/labels`](/rest/reference/actions#set-custom-labels-for-a-self-hosted-runner-for-an-organization) (write) +- [`DELETE /orgs/{org}/actions/runners/{runner_id}/labels`](/rest/reference/actions#remove-all-custom-labels-from-a-self-hosted-runner-for-an-organization) (write) +- [`DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}`](/rest/reference/actions#remove-a-custom-label-from-a-self-hosted-runner-for-an-organization) (write) +- [`GET /orgs/{org}/actions/runners/downloads`](/rest/reference/actions#list-runner-applications-for-an-organization) (read) +- [`POST /orgs/{org}/actions/runners/registration-token`](/rest/reference/actions#create-a-registration-token-for-an-organization) (write) +- [`POST /orgs/{org}/actions/runners/remove-token`](/rest/reference/actions#create-a-remove-token-for-an-organization) (write) + +## Organization user blocking + +- [`GET /orgs/{org}/blocks`](/rest/reference/orgs#list-users-blocked-by-an-organization) (read) +- [`GET /orgs/{org}/blocks/{username}`](/rest/reference/orgs#check-if-a-user-is-blocked-by-an-organization) (read) +- [`PUT /orgs/{org}/blocks/{username}`](/rest/reference/orgs#block-a-user-from-an-organization) (write) +- [`DELETE /orgs/{org}/blocks/{username}`](/rest/reference/orgs#unblock-a-user-from-an-organization) (write) + +## Pages + +- [`GET /repos/{owner}/{repo}/pages`](/rest/pages#get-a-github-pages-site) (read) +- [`PUT /repos/{owner}/{repo}/pages`](/rest/pages#update-information-about-a-github-pages-site) (write) +- [`GET /repos/{owner}/{repo}/pages/builds`](/rest/pages#list-github-pages-builds) (read) +- [`POST /repos/{owner}/{repo}/pages/builds`](/rest/pages#request-a-github-pages-build) (write) +- [`GET /repos/{owner}/{repo}/pages/builds/{build_id}`](/rest/pages#get-github-pages-build) (read) +- [`GET /repos/{owner}/{repo}/pages/builds/latest`](/rest/pages#get-latest-pages-build) (read) +- [`POST /repos/{owner}/{repo}/pages/deployment`](/rest/pages#create-a-github-pages-deployment) (write) +- [`GET /repos/{owner}/{repo}/pages/health`](/rest/pages#get-a-dns-health-check-for-github-pages) (write) + +## Plan + +- [`GET /users/{username}/settings/billing/actions`](/rest/reference/billing#get-github-actions-billing-for-a-user) (read) +- [`GET /users/{username}/settings/billing/packages`](/rest/reference/billing#get-github-packages-billing-for-a-user) (read) +- [`GET /users/{username}/settings/billing/shared-storage`](/rest/reference/billing#get-shared-storage-billing-for-a-user) (read) + +## Profile + +- [`PATCH /user`](/rest/reference/users/#update-the-authenticated-user) (write) + +## Pull requests + +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/comments`](/rest/reference/pulls#list-review-comments-on-a-pull-request) (read) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/comments`](/rest/reference/pulls#create-a-review-comment-for-a-pull-request) (write) +- [`GET /repos/{owner}/{repo}/pulls/comments`](/rest/reference/pulls#list-review-comments-in-a-repository) (read) +- [`GET /repos/{owner}/{repo}/pulls/comments/{comment_id}`](/rest/reference/pulls#get-a-review-comment-for-a-pull-request) (read) +- [`PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}`](/rest/reference/pulls#update-a-review-comment-for-a-pull-request) (write) +- [`DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}`](/rest/reference/pulls#delete-a-review-comment-for-a-pull-request) (write) +- [`PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals`](/rest/reference/pulls#dismiss-a-review-for-a-pull-request) (write) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events`](/rest/reference/pulls#submit-a-review-for-a-pull-request) (write) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers`](/rest/reference/pulls#get-all-requested-reviewers-for-a-pull-request) (read) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers`](/rest/reference/pulls#request-reviewers-for-a-pull-request) (write) +- [`DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers`](/rest/reference/pulls#remove-requested-reviewers-from-a-pull-request) (write) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews`](/rest/reference/pulls#list-reviews-for-a-pull-request) (read) +- [`POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews`](/rest/reference/pulls#create-a-review-for-a-pull-request) (write) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}`](/rest/reference/pulls#get-a-review-for-a-pull-request) (read) +- [`PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}`](/rest/reference/pulls#update-a-review-for-a-pull-request) (write) +- [`DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}`](/rest/reference/pulls#delete-a-pending-review-for-a-pull-request) (write) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments`](/rest/reference/pulls#list-comments-for-a-pull-request-review) (read) +- [`GET /repos/{owner}/{repo}/pulls`](/rest/reference/pulls#list-pull-requests) (read) +- [`POST /repos/{owner}/{repo}/pulls`](/rest/reference/pulls#create-a-pull-request) (write) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}`](/rest/reference/pulls#get-a-pull-request) (read) +- [`PATCH /repos/{owner}/{repo}/pulls/{pull_number}`](/rest/reference/pulls/#update-a-pull-request) (write) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/commits`](/rest/reference/pulls#list-commits-on-a-pull-request) (read) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/files`](/rest/reference/pulls#list-pull-requests-files) (read) +- [`GET /repos/{owner}/{repo}/pulls/{pull_number}/merge`](/rest/reference/pulls#check-if-a-pull-request-has-been-merged) (read) +- [`PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch`](/rest/reference/pulls#update-a-pull-request-branch) (write) +- [`GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions`](/rest/reference/reactions#list-reactions-for-a-pull-request-review-comment) (read) +- [`POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions`](/rest/reference/reactions#create-reaction-for-a-pull-request-review-comment) (write) +- [`DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}`](/rest/reference/reactions#delete-a-pull-request-comment-reaction) (write) +- [`GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}`](/rest/reference/dependency-graph#get-a-diff-of-the-dependencies-between-commits) (read) + +## Repository hooks + +- [`GET /repos/{owner}/{repo}/hooks`](/rest/webhooks/repos#list-repository-webhooks) (read) +- [`POST /repos/{owner}/{repo}/hooks`](/rest/webhooks/repos#create-a-repository-webhook) (write) +- [`GET /repos/{owner}/{repo}/hooks/{hook_id}`](/rest/webhooks/repos#get-a-repository-webhook) (read) +- [`PATCH /repos/{owner}/{repo}/hooks/{hook_id}`](/rest/webhooks/repos#update-a-repository-webhook) (write) +- [`DELETE /repos/{owner}/{repo}/hooks/{hook_id}`](/rest/webhooks/repos#delete-a-repository-webhook) (write) +- [`GET /repos/{owner}/{repo}/hooks/{hook_id}/config`](/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository) (read) +- [`PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config`](/rest/webhooks/repo-config#update-a-webhook-configuration-for-a-repository) (write) +- [`GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries`](/rest/webhooks/repo-deliveries#list-deliveries-for-a-repository-webhook) (read) +- [`GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}`](/rest/webhooks/repo-deliveries#get-a-delivery-for-a-repository-webhook) (read) +- [`POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts`](/rest/webhooks/repo-deliveries#redeliver-a-delivery-for-a-repository-webhook) (write) +- [`POST /repos/{owner}/{repo}/hooks/{hook_id}/pings`](/rest/webhooks/repos#ping-a-repository-webhook) (read) +- [`POST /repos/{owner}/{repo}/hooks/{hook_id}/tests`](/rest/webhooks/repos#test-the-push-repository-webhook) (read) + +## Repository projects + +- [`GET /projects/{project_id}/collaborators`](/rest/reference/projects#list-project-collaborators) (write) +- [`PUT /projects/{project_id}/collaborators/{username}`](/rest/reference/projects#add-project-collaborator) (write) +- [`DELETE /projects/{project_id}/collaborators/{username}`](/rest/reference/projects#remove-project-collaborator) (write) +- [`GET /projects/{project_id}/collaborators/{username}/permission`](/rest/reference/projects#get-project-permission-for-a-user) (write) +- [`GET /projects/{project_id}`](/rest/reference/projects#get-a-project) (read) +- [`PATCH /projects/{project_id}`](/rest/reference/projects#update-a-project) (write) +- [`DELETE /projects/{project_id}`](/rest/reference/projects#delete-a-project) (write) +- [`GET /projects/{project_id}/columns`](/rest/reference/projects#list-project-columns) (read) +- [`POST /projects/{project_id}/columns`](/rest/reference/projects#create-a-project-column) (write) +- [`GET /projects/columns/{column_id}`](/rest/reference/projects#get-a-project-column) (read) +- [`PATCH /projects/columns/{column_id}`](/rest/reference/projects#update-a-project-column) (write) +- [`DELETE /projects/columns/{column_id}`](/rest/reference/projects#delete-a-project-column) (write) +- [`GET /projects/columns/{column_id}/cards`](/rest/reference/projects#list-project-cards) (read) +- [`POST /projects/columns/{column_id}/cards`](/rest/reference/projects#create-a-project-card) (write) +- [`POST /projects/columns/{column_id}/moves`](/rest/reference/projects#move-a-project-column) (write) +- [`GET /projects/columns/cards/{card_id}`](/rest/reference/projects#get-a-project-card) (read) +- [`PATCH /projects/columns/cards/{card_id}`](/rest/reference/projects#update-a-project-card) (write) +- [`DELETE /projects/columns/cards/{card_id}`](/rest/reference/projects#delete-a-project-card) (write) +- [`POST /projects/columns/cards/{card_id}/moves`](/rest/reference/projects#move-a-project-card) (write) +- [`GET /repos/{owner}/{repo}/projects`](/rest/reference/projects#list-repository-projects) (read) +- [`POST /repos/{owner}/{repo}/projects`](/rest/reference/projects#create-a-repository-project) (write) + +## Secret scanning alerts + +- [`GET /orgs/{org}/secret-scanning/alerts`](/rest/reference/secret-scanning#list-secret-scanning-alerts-for-an-organization) (read) +- [`GET /repos/{owner}/{repo}/secret-scanning/alerts`](/rest/reference/secret-scanning#list-secret-scanning-alerts-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}`](/rest/reference/secret-scanning#get-a-secret-scanning-alert) (read) +- [`PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}`](/rest/reference/secret-scanning#update-a-secret-scanning-alert) (write) +- [`GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations`](/rest/reference/secret-scanning#list-locations-for-a-secret-scanning-alert) (read) + +## Secrets + +- [`GET /repos/{owner}/{repo}/actions/secrets`](/rest/reference/actions#list-repository-secrets) (read) +- [`GET /repos/{owner}/{repo}/actions/secrets/{secret_name}`](/rest/reference/actions#get-a-repository-secret) (read) +- [`PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}`](/rest/reference/actions#create-or-update-a-repository-secret) (write) +- [`DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}`](/rest/reference/actions#delete-a-repository-secret) (write) +- [`GET /repos/{owner}/{repo}/actions/secrets/public-key`](/rest/reference/actions#get-a-repository-public-key) (read) + +## Security events + +- [`GET /orgs/{org}/code-scanning/alerts`](/rest/reference/code-scanning#list-code-scanning-alerts-by-organization) (read) +- [`GET /repos/{owner}/{repo}/code-scanning/alerts`](/rest/reference/code-scanning#list-code-scanning-alerts-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}`](/rest/reference/code-scanning#get-a-code-scanning-alert) (read) +- [`PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}`](/rest/reference/code-scanning#update-a-code-scanning-alert) (write) +- [`GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances`](/rest/reference/code-scanning#list-instances-of-a-code-scanning-alert) (read) +- [`GET /repos/{owner}/{repo}/code-scanning/analyses`](/rest/reference/code-scanning#list-code-scanning-analyses-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}`](/rest/reference/code-scanning#get-a-code-scanning-analysis-for-a-repository) (read) +- [`DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}`](/rest/reference/code-scanning#delete-a-code-scanning-analysis-from-a-repository) (write) +- [`GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}`](/rest/reference/code-scanning#list-recent-code-scanning-analyses-for-a-repository) (read) +- [`POST /repos/{owner}/{repo}/code-scanning/sarifs`](/rest/reference/code-scanning#upload-a-sarif-file) (write) +- [`GET /repos/{owner}/{repo}/dependabot/alerts`](/rest/reference/dependabot#list-dependabot-alerts-for-a-repository) (read) +- [`GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}`](/rest/reference/dependabot#get-a-dependabot-alert) (read) +- [`PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}`](/rest/reference/dependabot#update-a-dependabot-alert) (write) + +## Starring + +- [`GET /users/{username}/starred`](/rest/reference/activity#list-repositories-starred-by-a-user) (read) +- [`GET /user/starred`](/rest/reference/activity#list-repositories-starred-by-the-authenticated-user) (read) +- [`GET /user/starred/{owner}/{repo}`](/rest/reference/activity#check-if-a-repository-is-starred-by-the-authenticated-user) (read) +- [`PUT /user/starred/{owner}/{repo}`](/rest/reference/activity#star-a-repository-for-the-authenticated-user) (write) +- [`DELETE /user/starred/{owner}/{repo}`](/rest/reference/activity#unstar-a-repository-for-the-authenticated-user) (write) + +## Statuses + +- [`POST /repos/{owner}/{repo}/statuses/{sha}`](/rest/commits/statuses#create-a-commit-status) (write) + +## Team discussions + +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions`](/rest/reference/reactions#list-reactions-for-a-team-discussion-comment) (read) +- [`POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions`](/rest/reference/reactions#create-reaction-for-a-team-discussion-comment) (write) +- [`DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}`](/rest/reference/reactions#delete-team-discussion-comment-reaction) (write) +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions`](/rest/reference/reactions#list-reactions-for-a-team-discussion) (read) +- [`POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions`](/rest/reference/reactions#create-reaction-for-a-team-discussion) (write) +- [`DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}`](/rest/reference/reactions#delete-team-discussion-reaction) (write) +- [`GET /orgs/{org}/teams/{team_slug}/discussions`](/rest/reference/teams#list-discussions) (read) +- [`POST /orgs/{org}/teams/{team_slug}/discussions`](/rest/reference/teams#create-a-discussion) (write) +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}`](/rest/reference/teams#get-a-discussion) (read) +- [`PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}`](/rest/reference/teams#update-a-discussion) (write) +- [`DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}`](/rest/reference/teams#delete-a-discussion) (write) +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments`](/rest/reference/teams#list-discussion-comments) (read) +- [`POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments`](/rest/reference/teams#create-a-discussion-comment) (write) +- [`GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}`](/rest/reference/teams#get-a-discussion-comment) (read) +- [`PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}`](/rest/reference/teams#update-a-discussion-comment) (write) +- [`DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}`](/rest/reference/teams#delete-a-discussion-comment) (write) + +## Watching + +- [`GET /users/{username}/subscriptions`](/rest/reference/activity#list-repositories-watched-by-a-user) (read) +- [`GET /user/subscriptions`](/rest/reference/activity#list-repositories-watched-by-the-authenticated-user) (read) diff --git a/content/rest/overview/resources-in-the-rest-api.md b/content/rest/overview/resources-in-the-rest-api.md index 0432d216c9..d0348eb3b4 100644 --- a/content/rest/overview/resources-in-the-rest-api.md +++ b/content/rest/overview/resources-in-the-rest-api.md @@ -362,7 +362,7 @@ If {% data variables.product.prodname_dotcom %} takes more than 10 seconds to pr ## Rate limiting -Different types of API requests to {% data variables.product.product_location %} are subject to different rate limits. +Different types of API requests to {% data variables.location.product_location %} are subject to different rate limits. Additionally, the Search API has dedicated limits. For more information, see "[Search](/rest/reference/search#rate-limit)" in the REST API documentation. @@ -372,7 +372,7 @@ Additionally, the Search API has dedicated limits. For more information, see "[S ### Requests from personal accounts -Direct API requests that you authenticate with a personal access token are user-to-server requests. An OAuth App or GitHub App can also make a user-to-server request on your behalf after you authorize the app. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)," "[Authorizing OAuth Apps](/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps)," and "[Authorizing GitHub Apps](/authentication/keeping-your-account-and-data-secure/authorizing-github-apps)." +Direct API requests that you authenticate with a {% data variables.product.pat_generic %} are user-to-server requests. An OAuth App or GitHub App can also make a user-to-server request on your behalf after you authorize the app. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)," "[Authorizing OAuth Apps](/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps)," and "[Authorizing GitHub Apps](/authentication/keeping-your-account-and-data-secure/authorizing-github-apps)." {% data variables.product.product_name %} associates all user-to-server requests with the authenticated user. For OAuth Apps and GitHub Apps, this is the user who authorized the app. All user-to-server requests count toward the authenticated user's rate limit. @@ -398,7 +398,7 @@ Requests from a GitHub App may be either user-to-server or server-to-server requ You can use the built-in `GITHUB_TOKEN` to authenticate requests in GitHub Actions workflows. For more information, see "[Automatic token authentication](/actions/security-guides/automatic-token-authentication)." -When using `GITHUB_TOKEN`, the rate limit is 1,000 requests per hour per repository.{% ifversion fpt or ghec %} For requests to resources that belong to an enterprise account on {% data variables.product.product_location %}, {% data variables.product.prodname_ghe_cloud %}'s rate limit applies, and the limit is 15,000 requests per hour per repository.{% endif %} +When using `GITHUB_TOKEN`, the rate limit is 1,000 requests per hour per repository.{% ifversion fpt or ghec %} For requests to resources that belong to an enterprise account on {% data variables.location.product_location %}, {% data variables.product.prodname_ghe_cloud %}'s rate limit applies, and the limit is 15,000 requests per hour per repository.{% endif %} ### Checking your rate limit status diff --git a/content/rest/overview/troubleshooting.md b/content/rest/overview/troubleshooting.md index 72a862387a..bcb8e7f189 100644 --- a/content/rest/overview/troubleshooting.md +++ b/content/rest/overview/troubleshooting.md @@ -52,7 +52,7 @@ If you're using `username` and `password` for API calls, then they are no longer curl -u my_user:my_password https://api.github.com/user/repos ``` -Instead, use a [personal access token](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) when testing endpoints or doing local development: +Instead, use a [{% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) when testing endpoints or doing local development: ```bash curl -H 'Authorization: Bearer my_access_token' https://api.github.com/user/repos diff --git a/content/rest/packages.md b/content/rest/packages.md index 77137dfcfb..9388be2f7f 100644 --- a/content/rest/packages.md +++ b/content/rest/packages.md @@ -15,11 +15,11 @@ redirect_from: The {% data variables.product.prodname_registry %} API enables you to manage packages using the REST API. To learn more about restoring or deleting packages, see "[Restoring and deleting packages](/packages/learn-github-packages/deleting-and-restoring-a-package)." -To use this API, you must authenticate using a personal access token. +To use this API, you must authenticate using a {% data variables.product.pat_v1 %}. - To access package metadata, your token must include the `read:packages` scope. - To delete packages and package versions, your token must include the `read:packages` and `delete:packages` scopes. - To restore packages and package versions, your token must include the `read:packages` and `write:packages` scopes. If your `package_type` is `npm`, `maven`, `rubygems`, or `nuget`, then your token must also include the `repo` scope since your package inherits permissions from a {% data variables.product.prodname_dotcom %} repository. If your package is in the {% data variables.product.prodname_container_registry %}, then your `package_type` is `container` and your token does not need the `repo` scope to access or manage this `package_type`. `container` packages offer granular permissions separate from a repository. For more information, see "[About permissions for {% data variables.product.prodname_registry %}](/packages/learn-github-packages/about-permissions-for-github-packages#about-scopes-and-permissions-for-package-registries)." -If you want to use the {% data variables.product.prodname_registry %} API to access resources in an organization with SSO enabled, then you must enable SSO for your personal access token. For more information, see "[Authorizing a personal access token for use with SAML single sign-on](/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} +If you want to use the {% data variables.product.prodname_registry %} API to access resources in an organization with SSO enabled, then you must enable SSO for your {% data variables.product.pat_v1 %}. For more information, see "[Authorizing a {% data variables.product.pat_generic %} for use with SAML single sign-on](/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} diff --git a/content/rest/projects/projects.md b/content/rest/projects/projects.md index 79c2aaa6b1..1a6b0a537f 100644 --- a/content/rest/projects/projects.md +++ b/content/rest/projects/projects.md @@ -14,3 +14,5 @@ miniTocMaxHeadingLevel: 3 --- {% data reusables.projects.projects-api %} + +{% data reusables.user-settings.classic-projects-api-classic-pat-only %} diff --git a/content/rest/quickstart.md b/content/rest/quickstart.md index 0bd8527fe9..8ec1d59ec5 100644 --- a/content/rest/quickstart.md +++ b/content/rest/quickstart.md @@ -99,7 +99,7 @@ You can use Octokit.js to interact with the {% data variables.product.prodname_d ### Using Octokit.js -1. Create an access token. For example, create a personal access token (PAT) or a {% data variables.product.prodname_github_app %} user-to-server access token. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)" or "[Identifying and authorizing users for GitHub Apps](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps)." +1. Create an access token. For example, create a {% data variables.product.pat_generic %} or a {% data variables.product.prodname_github_app %} user-to-server access token. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)" or "[Identifying and authorizing users for GitHub Apps](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps)." {% warning %} @@ -257,7 +257,7 @@ jobs: {% endnote %} 1. Install cURL if cURL isn't already installed on your machine. To check if cURL is installed, execute `curl --version` in the command line. If the output is information about the cURL version, cURL is installed. If you get a message similar to `command not found: curl`, you need to download and install cURL. For more information, see [the cURL project download page](https://curl.se/download.html). -1. Create an access token. For example, create a personal access token (PAT) or a {% data variables.product.prodname_github_app %} user-to-server access token. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)" or "[Identifying and authorizing users for GitHub Apps](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps)." +1. Create an access token. For example, create a {% data variables.product.pat_generic %} or a {% data variables.product.prodname_github_app %} user-to-server access token. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)" or "[Identifying and authorizing users for GitHub Apps](/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps)." {% warning %} diff --git a/content/rest/scim.md b/content/rest/scim.md index 13ac48b3f8..cc680f5db1 100644 --- a/content/rest/scim.md +++ b/content/rest/scim.md @@ -20,13 +20,13 @@ The SCIM API is used by SCIM-enabled Identity Providers (IdPs) to automate provi **Notes:** - The SCIM API is available only for individual organizations that use [{% data variables.product.prodname_ghe_cloud %}](/billing/managing-billing-for-your-github-account/about-billing-for-github-accounts) with [SAML SSO](/rest/overview/other-authentication-methods#authenticating-for-saml-sso) enabled. For more information about SCIM, see "[About SCIM for organizations](/enterprise-cloud@latest/organizations/managing-saml-single-sign-on-for-your-organization/about-scim-for-organizations)." - - The SCIM API cannot be used with an enterprise account or with an {% data variables.product.prodname_emu_org %}. + - The SCIM API cannot be used with an enterprise account or with an {% data variables.enterprise.prodname_emu_org %}. {% endnote %} ### Authenticating calls to the SCIM API -You must authenticate as an owner of a {% data variables.product.product_name %} organization to use its SCIM API. The API expects an [OAuth 2.0 Bearer](/developers/apps/authenticating-with-github-apps) token to be included in the `Authorization` header. If you use a personal access token for authentication, it must have the `admin:org` scope and you must also [authorize it for use with your SAML SSO organization](/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on). +You must authenticate as an owner of a {% data variables.product.product_name %} organization to use its SCIM API. The API expects an [OAuth 2.0 Bearer](/developers/apps/authenticating-with-github-apps) token to be included in the `Authorization` header. If you use a {% data variables.product.pat_v1 %} for authentication, it must have the `admin:org` scope and you must also [authorize it for use with your SAML SSO organization](/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on). ### Mapping of SAML and SCIM data diff --git a/content/rest/teams/team-sync.md b/content/rest/teams/team-sync.md index 6d688cb344..83a7cfda33 100644 --- a/content/rest/teams/team-sync.md +++ b/content/rest/teams/team-sync.md @@ -11,12 +11,12 @@ allowTitleToDifferFromFilename: true ## About the Team synchronization API -To use this API, the authenticated user must be a team maintainer or an owner of the organization associated with the team. The token you use to authenticate will also need to be authorized for use with your IdP (SSO) provider. For more information, see "[Authorizing a personal access token for use with a SAML single sign-on organization](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)." +To use this API, the authenticated user must be a team maintainer or an owner of the organization associated with the team. The token you use to authenticate will also need to be authorized for use with your IdP (SSO) provider. For more information, see "[Authorizing a {% data variables.product.pat_generic %} for use with a SAML single sign-on organization](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)." You can manage GitHub team members through your IdP with team synchronization. Team synchronization must be enabled to use the Team Synchronization API. For more information, see "[Synchronizing teams between your identity provider and GitHub](/enterprise-cloud@latest/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization)." {% note %} -**Note:** The Team Synchronization API cannot be used with {% data variables.product.prodname_emus %}. To learn more about managing an {% data variables.product.prodname_emu_org %}, see "[External groups API](/enterprise-cloud@latest/rest/reference/teams#external-groups)". +**Note:** The Team Synchronization API cannot be used with {% data variables.product.prodname_emus %}. To learn more about managing an {% data variables.enterprise.prodname_emu_org %}, see "[External groups API](/enterprise-cloud@latest/rest/reference/teams#external-groups)". {% endnote %} diff --git a/content/search-github/getting-started-with-searching-on-github/about-searching-on-github.md b/content/search-github/getting-started-with-searching-on-github/about-searching-on-github.md index b750d726a8..503c7cbd7a 100644 --- a/content/search-github/getting-started-with-searching-on-github/about-searching-on-github.md +++ b/content/search-github/getting-started-with-searching-on-github/about-searching-on-github.md @@ -41,7 +41,7 @@ After running a search on {% data variables.product.product_name %}, you can sor ## Types of searches on {% data variables.product.prodname_dotcom %} -You can search for the following information across all repositories you can access on {% data variables.product.product_location %}. +You can search for the following information across all repositories you can access on {% data variables.location.product_location %}. - [Repositories](/search-github/searching-on-github/searching-for-repositories) - [Topics](/search-github/searching-on-github/searching-topics) @@ -65,15 +65,15 @@ The {% data variables.search.advanced_url %} provides a visual interface for con {% ifversion fpt or ghec %} -If you use both {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_ghe_managed %}, and an enterprise owner has enabled {% data variables.product.prodname_unified_search %}, you can search across both environments at the same time from {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_ghe_managed %}. For more information, see [the {% data variables.product.prodname_ghe_server %} documentation](/enterprise-server@latest/search-github/getting-started-with-searching-on-github/about-searching-on-github#searching-repositories-on-githubcom-from-your-private-enterprise-environment) or [the {% data variables.product.prodname_ghe_managed %} documentation](/github-ae@latest/search-github/getting-started-with-searching-on-github/about-searching-on-github#searching-repositories-on-githubcom-from-your-private-enterprise-environment). +If you use both {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_ghe_managed %}, and an enterprise owner has enabled {% data variables.enterprise.prodname_unified_search %}, you can search across both environments at the same time from {% data variables.product.prodname_ghe_server %} or {% data variables.product.prodname_ghe_managed %}. For more information, see [the {% data variables.product.prodname_ghe_server %} documentation](/enterprise-server@latest/search-github/getting-started-with-searching-on-github/about-searching-on-github#searching-repositories-on-githubcom-from-your-private-enterprise-environment) or [the {% data variables.product.prodname_ghe_managed %} documentation](/github-ae@latest/search-github/getting-started-with-searching-on-github/about-searching-on-github#searching-repositories-on-githubcom-from-your-private-enterprise-environment). {% else %} -If you use both {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.product_name %}, and an enterprise owner has enabled {% data variables.product.prodname_unified_search %}, you can search across both environments at the same time from {% data variables.product.product_name %}. For more information about how enterprise owners can enable {% data variables.product.prodname_unified_search %}, see "[Enabling {% data variables.product.prodname_unified_search %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise)." +If you use both {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.product_name %}, and an enterprise owner has enabled {% data variables.enterprise.prodname_unified_search %}, you can search across both environments at the same time from {% data variables.product.product_name %}. For more information about how enterprise owners can enable {% data variables.enterprise.prodname_unified_search %}, see "[Enabling {% data variables.enterprise.prodname_unified_search %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise)." -Your enterprise owner on {% data variables.product.product_name %} can separately enable {% data variables.product.prodname_unified_search %} for all public repositories on {% data variables.product.prodname_dotcom_the_website %} and for private repositories owned by the organization or enterprise on {% data variables.product.prodname_dotcom_the_website %} that is connected to {% data variables.product.product_name %} through {% data variables.product.prodname_github_connect %}. +Your enterprise owner on {% data variables.product.product_name %} can separately enable {% data variables.enterprise.prodname_unified_search %} for all public repositories on {% data variables.product.prodname_dotcom_the_website %} and for private repositories owned by the organization or enterprise on {% data variables.product.prodname_dotcom_the_website %} that is connected to {% data variables.product.product_name %} through {% data variables.product.prodname_github_connect %}. -Before you can use {% data variables.product.prodname_unified_search %} for private repositories, you must connect your personal accounts on {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.product_name %}. For more information, see "[Enabling {% data variables.product.prodname_dotcom_the_website %} repository search from your private enterprise environment](/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment)." +Before you can use {% data variables.enterprise.prodname_unified_search %} for private repositories, you must connect your personal accounts on {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.product_name %}. For more information, see "[Enabling {% data variables.product.prodname_dotcom_the_website %} repository search from your private enterprise environment](/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment)." When you search from {% data variables.product.product_name %}, only private repositories that you have access to and that are owned by the connected organization or enterprise account will be included in search results. Neither you nor anyone else will be able to search private repositories owned by your personal account on {% data variables.product.prodname_dotcom_the_website %} from {% data variables.product.product_name %}. diff --git a/content/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment.md b/content/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment.md index 883d83b758..2c6c969728 100644 --- a/content/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment.md +++ b/content/search-github/getting-started-with-searching-on-github/enabling-githubcom-repository-search-from-your-private-enterprise-environment.md @@ -18,11 +18,11 @@ topics: ## About search for {% data variables.product.prodname_dotcom_the_website %} repositories from {% data variables.product.product_name %} -You can search for designated private repositories on {% data variables.product.prodname_ghe_cloud %} from {% data variables.product.product_location %}{% ifversion ghae %} on {% data variables.product.prodname_ghe_managed %}{% endif %}. For more information about searching across environments, see "[About searching on GitHub](/github/searching-for-information-on-github/getting-started-with-searching-on-github/about-searching-on-github#searching-repositories-on-githubcom-from-your-private-enterprise-environment)." +You can search for designated private repositories on {% data variables.product.prodname_ghe_cloud %} from {% data variables.location.product_location %}{% ifversion ghae %} on {% data variables.product.prodname_ghe_managed %}{% endif %}. For more information about searching across environments, see "[About searching on GitHub](/github/searching-for-information-on-github/getting-started-with-searching-on-github/about-searching-on-github#searching-repositories-on-githubcom-from-your-private-enterprise-environment)." ## Prerequisites -An enterprise owner for {% data variables.product.product_name %} must enable {% data variables.product.prodname_github_connect %} and {% data variables.product.prodname_unified_search %} for private repositories. For more information, see "[Enabling {% data variables.product.prodname_unified_search %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise)." +An enterprise owner for {% data variables.product.product_name %} must enable {% data variables.product.prodname_github_connect %} and {% data variables.enterprise.prodname_unified_search %} for private repositories. For more information, see "[Enabling {% data variables.enterprise.prodname_unified_search %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-unified-search-for-your-enterprise)." ## Enabling {% data variables.product.prodname_dotcom_the_website %} repository search from {% data variables.product.product_name %} diff --git a/content/search-github/searching-on-github/searching-for-repositories.md b/content/search-github/searching-on-github/searching-for-repositories.md index 243e2b9651..69c5aeed59 100644 --- a/content/search-github/searching-on-github/searching-for-repositories.md +++ b/content/search-github/searching-on-github/searching-for-repositories.md @@ -15,7 +15,7 @@ topics: - GitHub search shortTitle: Search for repositories --- -You can search for repositories globally across all of {% data variables.product.product_location %}, or search for repositories within a particular organization. For more information, see "[About searching on {% data variables.product.prodname_dotcom %}](/search-github/getting-started-with-searching-on-github/about-searching-on-github)." +You can search for repositories globally across all of {% data variables.location.product_location %}, or search for repositories within a particular organization. For more information, see "[About searching on {% data variables.product.prodname_dotcom %}](/search-github/getting-started-with-searching-on-github/about-searching-on-github)." To include forks in the search results, you will need to add `fork:true` or `fork:only` to your query. For more information, see "[Searching in forks](/search-github/searching-on-github/searching-in-forks)." diff --git a/content/search-github/searching-on-github/searching-issues-and-pull-requests.md b/content/search-github/searching-on-github/searching-issues-and-pull-requests.md index 4e6d036ae3..0054f0a88c 100644 --- a/content/search-github/searching-on-github/searching-issues-and-pull-requests.md +++ b/content/search-github/searching-on-github/searching-issues-and-pull-requests.md @@ -20,7 +20,7 @@ You can search for issues and pull requests globally across all of {% data varia {% tip %} **Tips:**{% ifversion ghes or ghae %} - - This article contains example searches on the {% data variables.product.prodname_dotcom %}.com website, but you can use the same search filters on {% data variables.product.product_location %}.{% endif %} + - This article contains example searches on the {% data variables.product.prodname_dotcom %}.com website, but you can use the same search filters on {% data variables.location.product_location %}.{% endif %} - For a list of search syntaxes that you can add to any search qualifier to further improve your results, see "[Understanding the search syntax](/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax)". - Use quotations around multi-word search terms. For example, if you want to search for issues with the label "In progress," you'd search for `label:"in progress"`. Search is not case sensitive. - {% data reusables.search.search_issues_and_pull_requests_shortcut %} diff --git a/content/site-policy/acceptable-use-policies/github-acceptable-use-policies.md b/content/site-policy/acceptable-use-policies/github-acceptable-use-policies.md index ace61dda57..6df64f63d2 100644 --- a/content/site-policy/acceptable-use-policies/github-acceptable-use-policies.md +++ b/content/site-policy/acceptable-use-policies/github-acceptable-use-policies.md @@ -67,7 +67,7 @@ We do not allow content or activity on GitHub that is: We do not allow content or activity on GitHub that: - directly supports [unlawful active attack or malware campaigns](/github/site-policy/github-active-malware-or-exploits) that are causing technical harms — such as using our platform to deliver malicious executables or as attack infrastructure, for example by organizing denial of service attacks or managing command and control servers — with no implicit or explicit dual-use purpose prior to the abuse occurring; or -- uses our servers to disrupt or to attempt to disrupt, or to gain or to attempt to gain unauthorized access to, any service, device, data, account or network. Please note, activities permitted under bug bounty programs, such as the [GitHub Bug Bounty program](https://bounty.github.com), are not considered “unauthorized.” +- uses our servers to disrupt or to attempt to disrupt, or to gain or to attempt to gain unauthorized access to, any service, device, data, account or network. Please note, activities permitted under bug bounty programs, such as the [GitHub Bug Bounty program](https://bounty.github.com), are not considered “unauthorized,” but must only affect the organization whose bug bounty program authorized the activity. ## 6. Services Usage Limits diff --git a/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-organization.md b/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-organization.md index 7fff95c1c3..b96b7c361a 100644 --- a/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-organization.md +++ b/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-organization.md @@ -83,7 +83,7 @@ If you choose to receive payouts to a bank account, your bank account can be a d ## Enabling two-factor authentication (2FA) on your {% data variables.product.prodname_dotcom %} account -Before your organization can become a sponsored organization, you must enable 2FA for your account on {% data variables.product.product_location %}. For more information, see "[Configuring two-factor authentication](/articles/configuring-two-factor-authentication)." +Before your organization can become a sponsored organization, you must enable 2FA for your account on {% data variables.location.product_location %}. For more information, see "[Configuring two-factor authentication](/articles/configuring-two-factor-authentication)." ## Submitting your application to {% data variables.product.prodname_dotcom %} for approval diff --git a/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account.md b/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account.md index a5929f0a51..77f5cb9377 100644 --- a/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account.md +++ b/content/sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account.md @@ -1,6 +1,6 @@ --- title: Setting up GitHub Sponsors for your personal account -intro: 'You can become a sponsored developer by joining {% data variables.product.prodname_sponsors %}, completing your sponsored developer profile, creating sponsorship tiers, submitting your bank and tax information, and enabling two-factor authentication for your account on {% data variables.product.product_location %}.' +intro: 'You can become a sponsored developer by joining {% data variables.product.prodname_sponsors %}, completing your sponsored developer profile, creating sponsorship tiers, submitting your bank and tax information, and enabling two-factor authentication for your account on {% data variables.location.product_location %}.' redirect_from: - /articles/becoming-a-sponsored-developer - /github/supporting-the-open-source-community-with-github-sponsors/becoming-a-sponsored-developer @@ -84,7 +84,7 @@ If you choose to receive payouts to a bank account, your region of residence and ## Enabling two-factor authentication (2FA) on your {% data variables.product.prodname_dotcom %} account -Before you can become a sponsored developer, you must enable 2FA for your account on {% data variables.product.product_location %}. For more information, see "[Configuring two-factor authentication](/articles/configuring-two-factor-authentication)." +Before you can become a sponsored developer, you must enable 2FA for your account on {% data variables.location.product_location %}. For more information, see "[Configuring two-factor authentication](/articles/configuring-two-factor-authentication)." ## Submitting your application to {% data variables.product.prodname_dotcom %} for approval diff --git a/content/support/contacting-github-support/providing-data-to-github-support.md b/content/support/contacting-github-support/providing-data-to-github-support.md index 7e3c1432ec..c2460886cc 100644 --- a/content/support/contacting-github-support/providing-data-to-github-support.md +++ b/content/support/contacting-github-support/providing-data-to-github-support.md @@ -113,7 +113,7 @@ You can use these steps to create and share a support bundle if you can access t ### Creating a support bundle using SSH -You can use these steps to create and share a support bundle if you have SSH access to {% data variables.product.product_location %} and have outbound internet access. +You can use these steps to create and share a support bundle if you have SSH access to {% data variables.location.product_location %} and have outbound internet access. {% data reusables.enterprise_enterprise_support.use_ghe_cluster_support_bundle %} @@ -142,8 +142,8 @@ You can use these steps to create and share a support bundle if you have SSH acc ### Uploading a support bundle directly using SSH You can directly upload a support bundle to our server if: -- You have SSH access to {% data variables.product.product_location %}. -- Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.product.product_location %} to _enterprise-bundles.github.com_ and _esbtoolsproduction.blob.core.windows.net_. +- You have SSH access to {% data variables.location.product_location %}. +- Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.location.product_location %} to _enterprise-bundles.github.com_ and _esbtoolsproduction.blob.core.windows.net_. 1. Upload the bundle to our support bundle server: ```shell @@ -158,7 +158,7 @@ To prevent bundles from becoming too large, bundles only contain logs that haven ### Creating an extended support bundle using SSH -You can use these steps to create and share an extended support bundle if you have SSH access to {% data variables.product.product_location %} and you have outbound internet access. +You can use these steps to create and share an extended support bundle if you have SSH access to {% data variables.location.product_location %} and you have outbound internet access. 1. Download the extended support bundle via SSH by adding the `-x` flag to the `ghe-support-bundle` command: ```shell @@ -170,8 +170,8 @@ You can use these steps to create and share an extended support bundle if you ha ### Uploading an extended support bundle directly using SSH You can directly upload a support bundle to our server if: -- You have SSH access to {% data variables.product.product_location %}. -- Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.product.product_location %} to _enterprise-bundles.github.com_ and _esbtoolsproduction.blob.core.windows.net_. +- You have SSH access to {% data variables.location.product_location %}. +- Outbound HTTPS connections over TCP port 443 are allowed from {% data variables.location.product_location %} to _enterprise-bundles.github.com_ and _esbtoolsproduction.blob.core.windows.net_. 1. Upload the bundle to our support bundle server: ```shell diff --git a/content/support/learning-about-github-support/about-github-premium-support.md b/content/support/learning-about-github-support/about-github-premium-support.md index 444c81cb70..6e5bd60a19 100644 --- a/content/support/learning-about-github-support/about-github-premium-support.md +++ b/content/support/learning-about-github-support/about-github-premium-support.md @@ -127,7 +127,7 @@ If you don't receive an initial response within the guaranteed response time to The credit request must be made within 30 days of the end of the quarter during which {% data variables.contact.premium_support %} did not respond to your tickets within the designated response time. Credit requests will not be honored if the respective deadline has passed. Once the respective deadline passes, you have waived the ability to claim a refund for the qualified credit. To receive a refund, you must submit a completed credit request to . To be eligible, the credit request must: -- Be sent from an email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} +- Be sent from an email address associated with your account on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} - Be received by {% data variables.product.company_short %} by the end of the 30th day after the quarter in which the four qualifying credits occurred - Include "Credit Request" in the subject line diff --git a/contributing/content-templates.md b/contributing/content-templates.md index 587cd60bcb..630545efeb 100644 --- a/contributing/content-templates.md +++ b/contributing/content-templates.md @@ -162,7 +162,7 @@ versions: ### Task chunk - + @@ -219,7 +219,7 @@ versions: ### Task chunk - + diff --git a/data/features/README.md b/data/features/README.md index 78ac5b3ce1..d817087169 100644 --- a/data/features/README.md +++ b/data/features/README.md @@ -13,6 +13,7 @@ Add a `versions` block to the YML file with the short names of the versions the ```yaml versions: fpt: '*' + ghec: '*' ghes: '>3.1' ghae: '*' ``` @@ -30,6 +31,7 @@ You can also use the feature in frontmatter in content files: ```yaml versions: fpt: '*' + ghec: '*' ghes: '>3.1' feature: 'meow' ``` diff --git a/data/features/code-security-audit-log-events.yml b/data/features/code-security-audit-log-events.yml new file mode 100644 index 0000000000..70c216ad00 --- /dev/null +++ b/data/features/code-security-audit-log-events.yml @@ -0,0 +1,4 @@ +versions: + ghec: '*' + ghes: '>3.7' + ghae: '>3.7' diff --git a/data/features/pat-v2-enterprise.yml b/data/features/pat-v2-enterprise.yml new file mode 100644 index 0000000000..9447179633 --- /dev/null +++ b/data/features/pat-v2-enterprise.yml @@ -0,0 +1,7 @@ +# This flag is required for the site to not error for enterprise-only articles. Refer to data/features/pat-v2.yml for the full feature. +# Issue 7942 +# PAT v2 +versions: + ghec: '*' + ghes: '>=3.8' + ghae: '>=3.8' diff --git a/data/features/pat-v2.yml b/data/features/pat-v2.yml new file mode 100644 index 0000000000..8c23edde77 --- /dev/null +++ b/data/features/pat-v2.yml @@ -0,0 +1,7 @@ +# Issue 7942 +# PAT v2 +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.8' + ghae: '>=3.8' diff --git a/data/features/projects-v2-auto-archive.yml b/data/features/projects-v2-auto-archive.yml new file mode 100644 index 0000000000..f13bdedb18 --- /dev/null +++ b/data/features/projects-v2-auto-archive.yml @@ -0,0 +1,7 @@ +# Issue 7910 +# ProjectV2 auto-archiving +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.8' + ghae: '>=3.8' diff --git a/data/features/projects-v2-column-visibility.yml b/data/features/projects-v2-column-visibility.yml new file mode 100644 index 0000000000..97ba28797e --- /dev/null +++ b/data/features/projects-v2-column-visibility.yml @@ -0,0 +1,5 @@ +# Issue 8166 +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.8' diff --git a/data/features/projects-v2-numeric-summary.yml b/data/features/projects-v2-numeric-summary.yml new file mode 100644 index 0000000000..5ee9694d14 --- /dev/null +++ b/data/features/projects-v2-numeric-summary.yml @@ -0,0 +1,4 @@ +# Issue 8166 +versions: + fpt: '*' + ghec: '*' diff --git a/data/features/releases-set-latest-release.yml b/data/features/releases-set-latest-release.yml new file mode 100644 index 0000000000..352447f4f5 --- /dev/null +++ b/data/features/releases-set-latest-release.yml @@ -0,0 +1,7 @@ +# Reference: #8172. +# Documentation for explicitly declarable latest release. +versions: + fpt: '*' + ghec: '*' + ghes: '>=3.8' + ghae: '>= 3.8' diff --git a/data/features/secret-scanning-ghas-store-tokens.yml b/data/features/secret-scanning-ghas-store-tokens.yml new file mode 100644 index 0000000000..9428d6b099 --- /dev/null +++ b/data/features/secret-scanning-ghas-store-tokens.yml @@ -0,0 +1,5 @@ +# Issue 8348 +# Secret Scanning - Persist detected secrets in encrypted storage +versions: + ghec: '*' + ghes: '>=3.8' diff --git a/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml b/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml index e9053d9f8a..b878c8c5a4 100644 --- a/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml +++ b/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml @@ -265,3 +265,23 @@ upcoming_changes: date: '2023-04-01T00:00:00+00:00' criticality: breaking owner: alcere + - location: ProjectV2View.sortBy + description: + '`sortBy` will be removed. Check out the `ProjectV2View#sort_by_fields` + API as an example for the more capable alternative.' + reason: + The `ProjectV2View#sort_by` API is deprecated in favour of the more capable + `ProjectV2View#sort_by_fields` API. + date: '2023-04-01T00:00:00+00:00' + criticality: breaking + owner: traumverloren + - location: ProjectV2View.verticalGroupBy + description: + '`verticalGroupBy` will be removed. Check out the `ProjectV2View#vertical_group_by_fields` + API as an example for the more capable alternative.' + reason: + The `ProjectV2View#vertical_group_by` API is deprecated in favour of the + more capable `ProjectV2View#vertical_group_by_fields` API. + date: '2023-04-01T00:00:00+00:00' + criticality: breaking + owner: traumverloren diff --git a/data/graphql/ghae/schema.docs-ghae.graphql b/data/graphql/ghae/schema.docs-ghae.graphql index f459eb4787..235cb881b6 100644 --- a/data/graphql/ghae/schema.docs-ghae.graphql +++ b/data/graphql/ghae/schema.docs-ghae.graphql @@ -4654,6 +4654,117 @@ input CommittableBranch { repositoryNameWithOwner: String } +""" +Represents a comparison between two commit revisions. +""" +type Comparison implements Node { + """ + The number of commits ahead of the base branch. + """ + aheadBy: Int! + + """ + The base revision of this comparison. + """ + baseTarget: GitObject! + + """ + The number of commits behind the base branch. + """ + behindBy: Int! + + """ + The commits which compose this comparison. + """ + commits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ComparisonCommitConnection! + + """ + The head revision of this comparison. + """ + headTarget: GitObject! + id: ID! + + """ + The status of this comparison. + """ + status: ComparisonStatus! +} + +""" +The connection type for Commit. +""" +type ComparisonCommitConnection { + """ + The total count of authors and co-authors across all commits. + """ + authorCount: Int! + + """ + A list of edges. + """ + edges: [CommitEdge] + + """ + A list of nodes. + """ + nodes: [Commit] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The status of a git comparison between two refs. +""" +enum ComparisonStatus { + """ + The head ref is ahead of the base ref. + """ + AHEAD + + """ + The head ref is behind the base ref. + """ + BEHIND + + """ + The head ref is both ahead and behind of the base ref, indicating git history has diverged. + """ + DIVERGED + + """ + The head ref and base ref are identical. + """ + IDENTICAL +} + """ Represents a 'connected' event on a given issue or pull request. """ @@ -9517,17 +9628,22 @@ input EnablePullRequestAutoMergeInput { clientMutationId: String """ - Commit body to use for the commit when the PR is mergable; if omitted, a default message will be used. + Commit body to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit message is ignored. """ commitBody: String """ - Commit headline to use for the commit when the PR is mergable; if omitted, a default message will be used. + Commit headline to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit headline is ignored. """ commitHeadline: String """ - The merge method to use. If omitted, defaults to `MERGE` + The merge method to use. If omitted, defaults to `MERGE`. NOTE: when merging + with a merge queue any input value for merge method is ignored. """ mergeMethod: PullRequestMergeMethod = MERGE @@ -28738,6 +28854,16 @@ type Ref implements Node { Branch protection rules for this ref """ branchProtectionRule: BranchProtectionRule + + """ + Compares the current ref as a base ref to another head ref, if the comparison can be made. + """ + compare( + """ + The head ref to compare against. + """ + headRef: String! + ): Comparison id: ID! """ @@ -39395,6 +39521,11 @@ type TreeEntry { """ isGenerated: Boolean! + """ + The programming language this file is written in. + """ + language: Language + """ Number of lines in the file. """ diff --git a/data/graphql/ghec/graphql_previews.yml b/data/graphql/ghec/graphql_previews.yml index f74f01abb1..6f33df14dd 100644 --- a/data/graphql/ghec/graphql_previews.yml +++ b/data/graphql/ghec/graphql_previews.yml @@ -68,7 +68,7 @@ - DependencyGraphDependencyConnection - DependencyGraphPackageRelease.dependencies owning_teams: - - '@github/dsp-dependency-graph' + - '@github/dependency-graph' - title: Project Event Details description: >- This preview adds project, project card, and project column details to diff --git a/data/graphql/ghec/graphql_upcoming_changes.public.yml b/data/graphql/ghec/graphql_upcoming_changes.public.yml index d26711ac7a..c3c177fd07 100644 --- a/data/graphql/ghec/graphql_upcoming_changes.public.yml +++ b/data/graphql/ghec/graphql_upcoming_changes.public.yml @@ -1756,3 +1756,23 @@ upcoming_changes: date: '2023-04-01T00:00:00+00:00' criticality: breaking owner: alcere + - location: ProjectV2View.sortBy + description: + '`sortBy` will be removed. Check out the `ProjectV2View#sort_by_fields` + API as an example for the more capable alternative.' + reason: + The `ProjectV2View#sort_by` API is deprecated in favour of the more capable + `ProjectV2View#sort_by_fields` API. + date: '2023-04-01T00:00:00+00:00' + criticality: breaking + owner: traumverloren + - location: ProjectV2View.verticalGroupBy + description: + '`verticalGroupBy` will be removed. Check out the `ProjectV2View#vertical_group_by_fields` + API as an example for the more capable alternative.' + reason: + The `ProjectV2View#vertical_group_by` API is deprecated in favour of the + more capable `ProjectV2View#vertical_group_by_fields` API. + date: '2023-04-01T00:00:00+00:00' + criticality: breaking + owner: traumverloren diff --git a/data/graphql/ghec/schema.docs.graphql b/data/graphql/ghec/schema.docs.graphql index 0f913a43ec..f88cdaec1a 100644 --- a/data/graphql/ghec/schema.docs.graphql +++ b/data/graphql/ghec/schema.docs.graphql @@ -5128,6 +5128,117 @@ input CommittableBranch { repositoryNameWithOwner: String } +""" +Represents a comparison between two commit revisions. +""" +type Comparison implements Node { + """ + The number of commits ahead of the base branch. + """ + aheadBy: Int! + + """ + The base revision of this comparison. + """ + baseTarget: GitObject! + + """ + The number of commits behind the base branch. + """ + behindBy: Int! + + """ + The commits which compose this comparison. + """ + commits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ComparisonCommitConnection! + + """ + The head revision of this comparison. + """ + headTarget: GitObject! + id: ID! + + """ + The status of this comparison. + """ + status: ComparisonStatus! +} + +""" +The connection type for Commit. +""" +type ComparisonCommitConnection { + """ + The total count of authors and co-authors across all commits. + """ + authorCount: Int! + + """ + A list of edges. + """ + edges: [CommitEdge] + + """ + A list of nodes. + """ + nodes: [Commit] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The status of a git comparison between two refs. +""" +enum ComparisonStatus { + """ + The head ref is ahead of the base ref. + """ + AHEAD + + """ + The head ref is behind the base ref. + """ + BEHIND + + """ + The head ref is both ahead and behind of the base ref, indicating git history has diverged. + """ + DIVERGED + + """ + The head ref and base ref are identical. + """ + IDENTICAL +} + """ Represents a 'connected' event on a given issue or pull request. """ @@ -10890,17 +11001,22 @@ input EnablePullRequestAutoMergeInput { clientMutationId: String """ - Commit body to use for the commit when the PR is mergable; if omitted, a default message will be used. + Commit body to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit message is ignored. """ commitBody: String """ - Commit headline to use for the commit when the PR is mergable; if omitted, a default message will be used. + Commit headline to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit headline is ignored. """ commitHeadline: String """ - The merge method to use. If omitted, defaults to `MERGE` + The merge method to use. If omitted, defaults to `MERGE`. NOTE: when merging + with a merge queue any input value for merge method is ignored. """ mergeMethod: PullRequestMergeMethod = MERGE @@ -31325,6 +31441,61 @@ type ProjectV2SortByEdge { node: ProjectV2SortBy } +""" +Represents a sort by field and direction. +""" +type ProjectV2SortByField { + """ + The direction of the sorting. Possible values are ASC and DESC. + """ + direction: OrderDirection! + + """ + The field by which items are sorted. + """ + field: ProjectV2FieldConfiguration! +} + +""" +The connection type for ProjectV2SortByField. +""" +type ProjectV2SortByFieldConnection { + """ + A list of edges. + """ + edges: [ProjectV2SortByFieldEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2SortByField] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2SortByFieldEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2SortByField +} + """ A view within a ProjectV2. """ @@ -31482,6 +31653,34 @@ type ProjectV2View implements Node { """ last: Int ): ProjectV2SortByConnection + @deprecated( + reason: "The `ProjectV2View#sort_by` API is deprecated in favour of the more capable `ProjectV2View#sort_by_fields` API. Check out the `ProjectV2View#sort_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's sort-by config. + """ + sortByFields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2SortByFieldConnection """ Identifies the date and time when the object was last updated. @@ -31517,6 +31716,39 @@ type ProjectV2View implements Node { """ orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} ): ProjectV2FieldConnection + @deprecated( + reason: "The `ProjectV2View#vertical_group_by` API is deprecated in favour of the more capable `ProjectV2View#vertical_group_by_fields` API. Check out the `ProjectV2View#vertical_group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's vertical-group-by field. + """ + verticalGroupByFields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} + ): ProjectV2FieldConfigurationConnection """ The view's visible fields. @@ -35898,6 +36130,16 @@ type Ref implements Node { Branch protection rules for this ref """ branchProtectionRule: BranchProtectionRule + + """ + Compares the current ref as a base ref to another head ref, if the comparison can be made. + """ + compare( + """ + The head ref to compare against. + """ + headRef: String! + ): Comparison id: ID! """ @@ -48561,6 +48803,11 @@ type TreeEntry { """ isGenerated: Boolean! + """ + The programming language this file is written in. + """ + language: Language + """ Number of lines in the file. """ diff --git a/data/graphql/graphql_previews.yml b/data/graphql/graphql_previews.yml index f74f01abb1..6f33df14dd 100644 --- a/data/graphql/graphql_previews.yml +++ b/data/graphql/graphql_previews.yml @@ -68,7 +68,7 @@ - DependencyGraphDependencyConnection - DependencyGraphPackageRelease.dependencies owning_teams: - - '@github/dsp-dependency-graph' + - '@github/dependency-graph' - title: Project Event Details description: >- This preview adds project, project card, and project column details to diff --git a/data/graphql/graphql_upcoming_changes.public.yml b/data/graphql/graphql_upcoming_changes.public.yml index d26711ac7a..c3c177fd07 100644 --- a/data/graphql/graphql_upcoming_changes.public.yml +++ b/data/graphql/graphql_upcoming_changes.public.yml @@ -1756,3 +1756,23 @@ upcoming_changes: date: '2023-04-01T00:00:00+00:00' criticality: breaking owner: alcere + - location: ProjectV2View.sortBy + description: + '`sortBy` will be removed. Check out the `ProjectV2View#sort_by_fields` + API as an example for the more capable alternative.' + reason: + The `ProjectV2View#sort_by` API is deprecated in favour of the more capable + `ProjectV2View#sort_by_fields` API. + date: '2023-04-01T00:00:00+00:00' + criticality: breaking + owner: traumverloren + - location: ProjectV2View.verticalGroupBy + description: + '`verticalGroupBy` will be removed. Check out the `ProjectV2View#vertical_group_by_fields` + API as an example for the more capable alternative.' + reason: + The `ProjectV2View#vertical_group_by` API is deprecated in favour of the + more capable `ProjectV2View#vertical_group_by_fields` API. + date: '2023-04-01T00:00:00+00:00' + criticality: breaking + owner: traumverloren diff --git a/data/graphql/schema.docs.graphql b/data/graphql/schema.docs.graphql index 0f913a43ec..f88cdaec1a 100644 --- a/data/graphql/schema.docs.graphql +++ b/data/graphql/schema.docs.graphql @@ -5128,6 +5128,117 @@ input CommittableBranch { repositoryNameWithOwner: String } +""" +Represents a comparison between two commit revisions. +""" +type Comparison implements Node { + """ + The number of commits ahead of the base branch. + """ + aheadBy: Int! + + """ + The base revision of this comparison. + """ + baseTarget: GitObject! + + """ + The number of commits behind the base branch. + """ + behindBy: Int! + + """ + The commits which compose this comparison. + """ + commits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ComparisonCommitConnection! + + """ + The head revision of this comparison. + """ + headTarget: GitObject! + id: ID! + + """ + The status of this comparison. + """ + status: ComparisonStatus! +} + +""" +The connection type for Commit. +""" +type ComparisonCommitConnection { + """ + The total count of authors and co-authors across all commits. + """ + authorCount: Int! + + """ + A list of edges. + """ + edges: [CommitEdge] + + """ + A list of nodes. + """ + nodes: [Commit] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The status of a git comparison between two refs. +""" +enum ComparisonStatus { + """ + The head ref is ahead of the base ref. + """ + AHEAD + + """ + The head ref is behind the base ref. + """ + BEHIND + + """ + The head ref is both ahead and behind of the base ref, indicating git history has diverged. + """ + DIVERGED + + """ + The head ref and base ref are identical. + """ + IDENTICAL +} + """ Represents a 'connected' event on a given issue or pull request. """ @@ -10890,17 +11001,22 @@ input EnablePullRequestAutoMergeInput { clientMutationId: String """ - Commit body to use for the commit when the PR is mergable; if omitted, a default message will be used. + Commit body to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit message is ignored. """ commitBody: String """ - Commit headline to use for the commit when the PR is mergable; if omitted, a default message will be used. + Commit headline to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit headline is ignored. """ commitHeadline: String """ - The merge method to use. If omitted, defaults to `MERGE` + The merge method to use. If omitted, defaults to `MERGE`. NOTE: when merging + with a merge queue any input value for merge method is ignored. """ mergeMethod: PullRequestMergeMethod = MERGE @@ -31325,6 +31441,61 @@ type ProjectV2SortByEdge { node: ProjectV2SortBy } +""" +Represents a sort by field and direction. +""" +type ProjectV2SortByField { + """ + The direction of the sorting. Possible values are ASC and DESC. + """ + direction: OrderDirection! + + """ + The field by which items are sorted. + """ + field: ProjectV2FieldConfiguration! +} + +""" +The connection type for ProjectV2SortByField. +""" +type ProjectV2SortByFieldConnection { + """ + A list of edges. + """ + edges: [ProjectV2SortByFieldEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2SortByField] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2SortByFieldEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2SortByField +} + """ A view within a ProjectV2. """ @@ -31482,6 +31653,34 @@ type ProjectV2View implements Node { """ last: Int ): ProjectV2SortByConnection + @deprecated( + reason: "The `ProjectV2View#sort_by` API is deprecated in favour of the more capable `ProjectV2View#sort_by_fields` API. Check out the `ProjectV2View#sort_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's sort-by config. + """ + sortByFields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2SortByFieldConnection """ Identifies the date and time when the object was last updated. @@ -31517,6 +31716,39 @@ type ProjectV2View implements Node { """ orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} ): ProjectV2FieldConnection + @deprecated( + reason: "The `ProjectV2View#vertical_group_by` API is deprecated in favour of the more capable `ProjectV2View#vertical_group_by_fields` API. Check out the `ProjectV2View#vertical_group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's vertical-group-by field. + """ + verticalGroupByFields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} + ): ProjectV2FieldConfigurationConnection """ The view's visible fields. @@ -35898,6 +36130,16 @@ type Ref implements Node { Branch protection rules for this ref """ branchProtectionRule: BranchProtectionRule + + """ + Compares the current ref as a base ref to another head ref, if the comparison can be made. + """ + compare( + """ + The head ref to compare against. + """ + headRef: String! + ): Comparison id: ID! """ @@ -48561,6 +48803,11 @@ type TreeEntry { """ isGenerated: Boolean! + """ + The programming language this file is written in. + """ + language: Language + """ Number of lines in the file. """ diff --git a/data/learning-tracks/admin.yml b/data/learning-tracks/admin.yml index 23816673a1..6c84460f88 100644 --- a/data/learning-tracks/admin.yml +++ b/data/learning-tracks/admin.yml @@ -100,7 +100,7 @@ improve_security_of_your_instance: configure_github_actions: title: 'Configure {% data variables.product.prodname_actions %}' - description: 'Allow your developers to create, automate, customize, and execute powerful software development workflows for {% data variables.product.product_location %} with {% data variables.product.prodname_actions %}.' + description: 'Allow your developers to create, automate, customize, and execute powerful software development workflows for {% data variables.location.product_location %} with {% data variables.product.prodname_actions %}.' versions: ghes: '*' guides: diff --git a/data/release-notes/enterprise-server/3-1/0-rc1.yml b/data/release-notes/enterprise-server/3-1/0-rc1.yml index 5aaf027f61..520bfd612f 100644 --- a/data/release-notes/enterprise-server/3-1/0-rc1.yml +++ b/data/release-notes/enterprise-server/3-1/0-rc1.yml @@ -1,7 +1,7 @@ date: '2021-05-06' release_candidate: true deprecated: true -intro: If {% data variables.product.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. +intro: If {% data variables.location.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. sections: security_fixes: - '**MEDIUM** Under certain circumstances, users who were removed from a team or organization could retain write access to branches they had existing pull requests opened for.' diff --git a/data/release-notes/enterprise-server/3-2/0-rc1.yml b/data/release-notes/enterprise-server/3-2/0-rc1.yml index 0213319af5..634366e5e1 100644 --- a/data/release-notes/enterprise-server/3-2/0-rc1.yml +++ b/data/release-notes/enterprise-server/3-2/0-rc1.yml @@ -1,7 +1,7 @@ date: '2021-09-09' release_candidate: true deprecated: true -intro: If {% data variables.product.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. +intro: If {% data variables.location.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. sections: features: - heading: Custom patterns for secret scanning @@ -92,7 +92,7 @@ sections: - When viewing the commit history of a single file, you can now click {% octicon "file-code" aria-label="The code icon" %} to view that file at the selected point in history. # https://github.com/github/releases/issues/1254 - - When a submodule is defined with a relative path in {% data variables.product.product_location %}, the submodule is now clickable in the web UI. Clicking the submodule in the web UI will take you to the linked repository. Previously, only submodules with absolute URLs were clickable. This is supported for relative paths for repositories with the same owner that follow the pattern ../REPOSITORY or relative paths for repositories with a different owner that follow the pattern ../OWNER/REPOSITORY. For more information about working with submodules, see [Working with submodules](https://github.blog/2016-02-01-working-with-submodules/) on {% data variables.product.prodname_blog %}. + - When a submodule is defined with a relative path in {% data variables.location.product_location %}, the submodule is now clickable in the web UI. Clicking the submodule in the web UI will take you to the linked repository. Previously, only submodules with absolute URLs were clickable. This is supported for relative paths for repositories with the same owner that follow the pattern ../REPOSITORY or relative paths for repositories with a different owner that follow the pattern ../OWNER/REPOSITORY. For more information about working with submodules, see [Working with submodules](https://github.blog/2016-02-01-working-with-submodules/) on {% data variables.product.prodname_blog %}. # https://github.com/github/releases/issues/1250 - The web UI can now be used to synchronize an out-of-date branch of a fork with the fork's upstream branch. If there are no merge conflicts between the branches, the branch is updated either by fast-forwarding or by merging from upstream. If there are conflicts, you will be prompted to create a pull request to resolve the conflicts. For more information, see "[Syncing a fork](/github/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-from-the-web-ui)." diff --git a/data/release-notes/enterprise-server/3-2/0.yml b/data/release-notes/enterprise-server/3-2/0.yml index ba34f7a61d..708b798394 100644 --- a/data/release-notes/enterprise-server/3-2/0.yml +++ b/data/release-notes/enterprise-server/3-2/0.yml @@ -90,7 +90,7 @@ sections: - When viewing the commit history of a single file, you can now click {% octicon "file-code" aria-label="The code icon" %} to view that file at the selected point in history. # https://github.com/github/releases/issues/1254 - - When a submodule is defined with a relative path in {% data variables.product.product_location %}, the submodule is now clickable in the web UI. Clicking the submodule in the web UI will take you to the linked repository. Previously, only submodules with absolute URLs were clickable. This is supported for relative paths for repositories with the same owner that follow the pattern ../REPOSITORY or relative paths for repositories with a different owner that follow the pattern ../OWNER/REPOSITORY. For more information about working with submodules, see [Working with submodules](https://github.blog/2016-02-01-working-with-submodules/) on {% data variables.product.prodname_blog %}. + - When a submodule is defined with a relative path in {% data variables.location.product_location %}, the submodule is now clickable in the web UI. Clicking the submodule in the web UI will take you to the linked repository. Previously, only submodules with absolute URLs were clickable. This is supported for relative paths for repositories with the same owner that follow the pattern ../REPOSITORY or relative paths for repositories with a different owner that follow the pattern ../OWNER/REPOSITORY. For more information about working with submodules, see [Working with submodules](https://github.blog/2016-02-01-working-with-submodules/) on {% data variables.product.prodname_blog %}. # https://github.com/github/releases/issues/1250 - The web UI can now be used to synchronize an out-of-date branch of a fork with the fork's upstream branch. If there are no merge conflicts between the branches, the branch is updated either by fast-forwarding or by merging from upstream. If there are conflicts, you will be prompted to create a pull request to resolve the conflicts. For more information, see "[Syncing a fork](/github/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-from-the-web-ui)." diff --git a/data/release-notes/enterprise-server/3-2/16.yml b/data/release-notes/enterprise-server/3-2/16.yml index c46d272363..bcd8841c50 100644 --- a/data/release-notes/enterprise-server/3-2/16.yml +++ b/data/release-notes/enterprise-server/3-2/16.yml @@ -3,7 +3,8 @@ sections: security_fixes: - "**MEDIUM**: Prevents an attack where a server-side request forgery (SSRF) could potentially force the Subversion (SVN) bridge to execute remote code by injecting arbitrary data into Memcached." - Updates Grafana to version 7.5.16, which addresses various security vulnerabilities including [CVE-2020-13379](https://github.com/advisories/GHSA-wc9w-wvq2-ffm9) and [CVE-2022-21702](https://github.com/grafana/grafana/security/advisories/GHSA-xc3p-28hw-q24g). - - Packages have been updated to the latest security versions. + - Packages have been updated to the latest security versions. + - "**MEDIUM**: A vulnerability involving deserialization of untrusted data was identified in GitHub Enterprise Server that could potentially lead to remote code execution on the Subversion (SVN) bridge. To exploit this vulnerability, an attacker would need to gain access via a server-side request forgery (SSRF) that would let an attacker control the data being deserialized. This vulnerability was reported via the GitHub Bug Bounty program and has been assigned [CVE-2022-23734](https://www.cve.org/CVERecord?id=CVE-2022-23734)." bugs: - Fixed an issue where the files inside the artifact zip archives had permissions of 000 when unpacked using an unzip tool. Now the files will have the permissions set to 644, the same way as it works in GitHub.com. - In some cases, the collectd daemon could consume excess memory. @@ -23,4 +24,4 @@ sections: - When "Users can search GitHub.com" is enabled with {% data variables.product.prodname_github_connect %}, issues in private and internal repositories are not included in {% data variables.product.prodname_dotcom_the_website %} search results. - The {% data variables.product.prodname_registry %} npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues. - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. - - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' \ No newline at end of file + - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' diff --git a/data/release-notes/enterprise-server/3-3/0-rc1.yml b/data/release-notes/enterprise-server/3-3/0-rc1.yml index eaa5046942..840bd35324 100644 --- a/data/release-notes/enterprise-server/3-3/0-rc1.yml +++ b/data/release-notes/enterprise-server/3-3/0-rc1.yml @@ -4,7 +4,7 @@ deprecated: true intro: | {% note %} - **Note:** If {% data variables.product.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. + **Note:** If {% data variables.location.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. {% endnote %} @@ -31,7 +31,7 @@ sections: - | {% data variables.product.prodname_actions %} now supports ephemeral (single job) self-hosted runners and a new [`workflow_job`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) webhook to make autoscaling runners easier. - Ephemeral runners are good for self-managed environments where each job is required to run on a clean image. After a job is run, ephemeral runners are automatically unregistered from {% data variables.product.product_location %}, allowing you to perform any post-job management. + Ephemeral runners are good for self-managed environments where each job is required to run on a clean image. After a job is run, ephemeral runners are automatically unregistered from {% data variables.location.product_location %}, allowing you to perform any post-job management. You can combine ephemeral runners with the new `workflow_job` webhook to automatically scale self-hosted runners in response to {% data variables.product.prodname_actions %} job requests. @@ -289,7 +289,7 @@ sections: - | Starting in {% data variables.product.prodname_ghe_server %} 3.1, support for {% data variables.product.company_short %}'s proprietary bit-cache extensions began to be phased out. These extensions are now deprecated in {% data variables.product.prodname_ghe_server %} 3.3. - Any repositories that were already present and active on {% data variables.product.product_location %} running version 3.1 or 3.2 will have been automatically updated. + Any repositories that were already present and active on {% data variables.location.product_location %} running version 3.1 or 3.2 will have been automatically updated. Repositories which were not present and active before upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may not perform optimally until a repository maintenance task is run and has successfully completed. diff --git a/data/release-notes/enterprise-server/3-3/0.yml b/data/release-notes/enterprise-server/3-3/0.yml index f321bb7caa..5aec8eca3f 100644 --- a/data/release-notes/enterprise-server/3-3/0.yml +++ b/data/release-notes/enterprise-server/3-3/0.yml @@ -22,7 +22,7 @@ sections: - | {% data variables.product.prodname_actions %} now supports ephemeral (single job) self-hosted runners and a new [`workflow_job`](/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) webhook to make autoscaling runners easier. - Ephemeral runners are good for self-managed environments where each job is required to run on a clean image. After a job is run, ephemeral runners are automatically unregistered from {% data variables.product.product_location %}, allowing you to perform any post-job management. + Ephemeral runners are good for self-managed environments where each job is required to run on a clean image. After a job is run, ephemeral runners are automatically unregistered from {% data variables.location.product_location %}, allowing you to perform any post-job management. You can combine ephemeral runners with the new `workflow_job` webhook to automatically scale self-hosted runners in response to {% data variables.product.prodname_actions %} job requests. @@ -289,7 +289,7 @@ sections: - | Starting in {% data variables.product.prodname_ghe_server %} 3.1, support for {% data variables.product.company_short %}'s proprietary bit-cache extensions began to be phased out. These extensions are now deprecated in {% data variables.product.prodname_ghe_server %} 3.3. - Any repositories that were already present and active on {% data variables.product.product_location %} running version 3.1 or 3.2 will have been automatically updated. + Any repositories that were already present and active on {% data variables.location.product_location %} running version 3.1 or 3.2 will have been automatically updated. Repositories which were not present and active before upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may not perform optimally until a repository maintenance task is run and has successfully completed. diff --git a/data/release-notes/enterprise-server/3-3/11.yml b/data/release-notes/enterprise-server/3-3/11.yml index 33c76ba280..27c6bc0e9a 100644 --- a/data/release-notes/enterprise-server/3-3/11.yml +++ b/data/release-notes/enterprise-server/3-3/11.yml @@ -6,8 +6,7 @@ sections: - Updates Grafana to version 7.5.16, which addresses various security vulnerabilities including [CVE-2020-13379](https://github.com/advisories/GHSA-wc9w-wvq2-ffm9) and [CVE-2022-21702](https://github.com/grafana/grafana/security/advisories/GHSA-xc3p-28hw-q24g). - Packages have been updated to the latest security versions. - "**MEDIUM**: A stored XSS vulnerability was identified in GitHub Enterprise Server that allowed the injection of arbitrary attributes. This injection was blocked by Github's Content Security Policy (CSP). This vulnerability was reported via the GitHub Bug Bounty program and has been assigned [CVE-2022-23733](https://www.cve.org/CVERecord?id=CVE-2022-23733). [Updated: 2022-07-31]" - - + - "**MEDIUM**: A vulnerability involving deserialization of untrusted data was identified in GitHub Enterprise Server that could potentially lead to remote code execution on the Subversion (SVN) bridge. To exploit this vulnerability, an attacker would need to gain access via a server-side request forgery (SSRF) that would let an attacker control the data being deserialized. This vulnerability was reported via the GitHub Bug Bounty program and has been assigned [CVE-2022-23734](https://www.cve.org/CVERecord?id=CVE-2022-23734)." bugs: - Fixed an issue where the files inside the artifact zip archives had permissions of 000 when unpacked using an unzip tool. Now the files will have the permissions set to 644, the same way as it works in GitHub.com. - In some cases, the collectd daemon could consume excess memory. @@ -29,4 +28,4 @@ sections: - The {% data variables.product.prodname_registry %} npm registry no longer returns a time value in metadata responses. This was done to allow for substantial performance improvements. We continue to have all the data necessary to return a time value as part of the metadata response and will resume returning this value in the future once we have solved the existing performance issues. - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. - '{% data variables.product.prodname_actions %} storage settings cannot be validated and saved in the {% data variables.enterprise.management_console %} when "Force Path Style" is selected, and must instead be configured with the `ghe-actions-precheck` command line utility.' - - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' \ No newline at end of file + - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' diff --git a/data/release-notes/enterprise-server/3-4/0-rc1.yml b/data/release-notes/enterprise-server/3-4/0-rc1.yml index f49bb7d8e3..534c6d7f00 100644 --- a/data/release-notes/enterprise-server/3-4/0-rc1.yml +++ b/data/release-notes/enterprise-server/3-4/0-rc1.yml @@ -4,7 +4,7 @@ deprecated: true intro: | {% note %} - **Note:** If {% data variables.product.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. + **Note:** If {% data variables.location.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. {% endnote %} @@ -276,7 +276,7 @@ sections: - | Starting in {% data variables.product.prodname_ghe_server %} 3.1, support for {% data variables.product.company_short %}'s proprietary bit-cache extensions began to be phased out. These extensions are deprecated in {% data variables.product.prodname_ghe_server %} 3.3 onwards. - Any repositories that were already present and active on {% data variables.product.product_location %} running version 3.1 or 3.2 will have been automatically updated. + Any repositories that were already present and active on {% data variables.location.product_location %} running version 3.1 or 3.2 will have been automatically updated. Repositories which were not present and active before upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may not perform optimally until a repository maintenance task is run and has successfully completed. diff --git a/data/release-notes/enterprise-server/3-4/0.yml b/data/release-notes/enterprise-server/3-4/0.yml index 0ff37f4058..8f3df3ef18 100644 --- a/data/release-notes/enterprise-server/3-4/0.yml +++ b/data/release-notes/enterprise-server/3-4/0.yml @@ -37,7 +37,7 @@ sections: notes: # https://github.com/github/releases/issues/1946 - | - If you use SAML authentication for {% data variables.product.prodname_ghe_server %}, you can now configure encrypted assertions from your IdP to improve security. Encrypted assertions add an additional layer of encryption when your IdP transmits information to {% data variables.product.product_location %}. For more information, see "[Using SAML](/admin/identity-and-access-management/authenticating-users-for-your-github-enterprise-server-instance/using-saml#enabling-encrypted-assertions)." + If you use SAML authentication for {% data variables.product.prodname_ghe_server %}, you can now configure encrypted assertions from your IdP to improve security. Encrypted assertions add an additional layer of encryption when your IdP transmits information to {% data variables.location.product_location %}. For more information, see "[Using SAML](/admin/identity-and-access-management/authenticating-users-for-your-github-enterprise-server-instance/using-saml#enabling-encrypted-assertions)." - heading: Edit files within pull requests in GitHub Mobile for iOS notes: @@ -298,7 +298,7 @@ sections: - | Starting in {% data variables.product.prodname_ghe_server %} 3.1, support for {% data variables.product.company_short %}'s proprietary bit-cache extensions began to be phased out. These extensions are deprecated in {% data variables.product.prodname_ghe_server %} 3.3 onwards. - Any repositories that were already present and active on {% data variables.product.product_location %} running version 3.1 or 3.2 will have been automatically updated. + Any repositories that were already present and active on {% data variables.location.product_location %} running version 3.1 or 3.2 will have been automatically updated. Repositories which were not present and active before upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may not perform optimally until a repository maintenance task is run and has successfully completed. diff --git a/data/release-notes/enterprise-server/3-4/1.yml b/data/release-notes/enterprise-server/3-4/1.yml index 85b5feeb65..c1e26d10e7 100644 --- a/data/release-notes/enterprise-server/3-4/1.yml +++ b/data/release-notes/enterprise-server/3-4/1.yml @@ -95,7 +95,7 @@ sections: - | Starting in {% data variables.product.prodname_ghe_server %} 3.1, support for {% data variables.product.company_short %}'s proprietary bit-cache extensions began to be phased out. These extensions are deprecated in {% data variables.product.prodname_ghe_server %} 3.3 onwards. - Any repositories that were already present and active on {% data variables.product.product_location %} running version 3.1 or 3.2 will have been automatically updated. + Any repositories that were already present and active on {% data variables.location.product_location %} running version 3.1 or 3.2 will have been automatically updated. Repositories which were not present and active before upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may not perform optimally until a repository maintenance task is run and has successfully completed. diff --git a/data/release-notes/enterprise-server/3-4/2.yml b/data/release-notes/enterprise-server/3-4/2.yml index be2036c2f4..a6e465aae2 100644 --- a/data/release-notes/enterprise-server/3-4/2.yml +++ b/data/release-notes/enterprise-server/3-4/2.yml @@ -71,7 +71,7 @@ sections: - | Starting in {% data variables.product.prodname_ghe_server %} 3.1, support for {% data variables.product.company_short %}'s proprietary bit-cache extensions began to be phased out. These extensions are deprecated in {% data variables.product.prodname_ghe_server %} 3.3 onwards. - Any repositories that were already present and active on {% data variables.product.product_location %} running version 3.1 or 3.2 will have been automatically updated. + Any repositories that were already present and active on {% data variables.location.product_location %} running version 3.1 or 3.2 will have been automatically updated. Repositories which were not present and active before upgrading to {% data variables.product.prodname_ghe_server %} 3.3 may not perform optimally until a repository maintenance task is run and has successfully completed. diff --git a/data/release-notes/enterprise-server/3-4/6.yml b/data/release-notes/enterprise-server/3-4/6.yml index e9bd1dcf8f..c1f8fa7628 100644 --- a/data/release-notes/enterprise-server/3-4/6.yml +++ b/data/release-notes/enterprise-server/3-4/6.yml @@ -6,6 +6,7 @@ sections: - Updates Grafana to version 7.5.16, which addresses various security vulnerabilities including [CVE-2020-13379](https://github.com/advisories/GHSA-wc9w-wvq2-ffm9) and [CVE-2022-21702](https://github.com/grafana/grafana/security/advisories/GHSA-xc3p-28hw-q24g). - Packages have been updated to the latest security versions. - "**MEDIUM**: A stored XSS vulnerability was identified in GitHub Enterprise Server that allowed the injection of arbitrary attributes. This injection was blocked by Github's Content Security Policy (CSP). This vulnerability was reported via the GitHub Bug Bounty program and has been assigned [CVE-2022-23733](https://www.cve.org/CVERecord?id=CVE-2022-23733). [Updated: 2022-07-31]" + - "**MEDIUM**: A vulnerability involving deserialization of untrusted data was identified in GitHub Enterprise Server that could potentially lead to remote code execution on the Subversion (SVN) bridge. To exploit this vulnerability, an attacker would need to gain access via a server-side request forgery (SSRF) that would let an attacker control the data being deserialized. This vulnerability was reported via the GitHub Bug Bounty program and has been assigned [CVE-2022-23734](https://www.cve.org/CVERecord?id=CVE-2022-23734)." bugs: - In some cases, the collectd daemon could consume excess memory. - In some cases, backups of rotated log files could accumulate and consume excess storage. @@ -30,4 +31,4 @@ sections: - | After registering a self-hosted runner with the `--ephemeral` parameter on more than one level (for example, both enterprise and organization), the runner may get stuck in an idle state and require re-registration. [Updated: 2022-06-17] - After upgrading to {% data variables.product.prodname_ghe_server %} 3.4, releases may appear to be missing from repositories. This can occur when the required Elasticsearch index migrations have not successfully completed. - - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' \ No newline at end of file + - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' diff --git a/data/release-notes/enterprise-server/3-5/0-rc1.yml b/data/release-notes/enterprise-server/3-5/0-rc1.yml index 378a8b6706..527354bda7 100644 --- a/data/release-notes/enterprise-server/3-5/0-rc1.yml +++ b/data/release-notes/enterprise-server/3-5/0-rc1.yml @@ -4,7 +4,7 @@ deprecated: true intro: | {% note %} - **Note:** If {% data variables.product.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. + **Note:** If {% data variables.location.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend only running release candidates on test environments. {% endnote %} diff --git a/data/release-notes/enterprise-server/3-5/3.yml b/data/release-notes/enterprise-server/3-5/3.yml index 26c012f38e..884aea7de5 100644 --- a/data/release-notes/enterprise-server/3-5/3.yml +++ b/data/release-notes/enterprise-server/3-5/3.yml @@ -6,7 +6,7 @@ sections: - Updates Grafana to version 7.5.16, which addresses various security vulnerabilities including [CVE-2020-13379](https://github.com/advisories/GHSA-wc9w-wvq2-ffm9) and [CVE-2022-21702](https://github.com/grafana/grafana/security/advisories/GHSA-xc3p-28hw-q24g). - Packages have been updated to the latest security versions. - "**MEDIUM**: A stored XSS vulnerability was identified in GitHub Enterprise Server that allowed the injection of arbitrary attributes. This injection was blocked by Github's Content Security Policy (CSP). This vulnerability was reported via the GitHub Bug Bounty program and has been assigned [CVE-2022-23733](https://www.cve.org/CVERecord?id=CVE-2022-23733). [Updated: 2022-07-31]" - + - "**MEDIUM**: A vulnerability involving deserialization of untrusted data was identified in GitHub Enterprise Server that could potentially lead to remote code execution on the Subversion (SVN) bridge. To exploit this vulnerability, an attacker would need to gain access via a server-side request forgery (SSRF) that would let an attacker control the data being deserialized. This vulnerability was reported via the GitHub Bug Bounty program and has been assigned [CVE-2022-23734](https://www.cve.org/CVERecord?id=CVE-2022-23734)." bugs: - In some cases, the collectd daemon could consume excess memory. - In some cases, backups of rotated log files could accumulate and consume excess storage. diff --git a/data/release-notes/enterprise-server/3-6/0-rc1.yml b/data/release-notes/enterprise-server/3-6/0-rc1.yml index fc7707911b..d4c97c5267 100644 --- a/data/release-notes/enterprise-server/3-6/0-rc1.yml +++ b/data/release-notes/enterprise-server/3-6/0-rc1.yml @@ -4,7 +4,7 @@ deprecated: true intro: | {% note %} - **Note:** If {% data variables.product.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend that you only run release candidates in a test environment. + **Note:** If {% data variables.location.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend that you only run release candidates in a test environment. {% endnote %} diff --git a/data/release-notes/enterprise-server/3-6/0.yml b/data/release-notes/enterprise-server/3-6/0.yml index a6306f89ee..3fea8268e9 100644 --- a/data/release-notes/enterprise-server/3-6/0.yml +++ b/data/release-notes/enterprise-server/3-6/0.yml @@ -3,7 +3,7 @@ deprecated: false intro: | {% note %} - **Note:** If {% data variables.product.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend that you only run release candidates in a test environment. + **Note:** If {% data variables.location.product_location %} is running a release candidate build, you can't upgrade with a hotpatch. We recommend that you only run release candidates in a test environment. {% endnote %} diff --git a/data/release-notes/github-ae/3-1/0.yml b/data/release-notes/github-ae/3-1/0.yml index 822a5a2f31..85fd2fdadd 100644 --- a/data/release-notes/github-ae/3-1/0.yml +++ b/data/release-notes/github-ae/3-1/0.yml @@ -6,7 +6,7 @@ sections: - | [{% data variables.product.prodname_actions %}](https://github.com/features/actions) is a powerful, flexible solution for CI/CD and workflow automation. For more information, see "[Introduction to {% data variables.product.prodname_actions %}](/actions/learn-github-actions/introduction-to-github-actions)." - Please note that when {% data variables.product.prodname_actions %} is enabled during this upgrade, two organizations named "GitHub Actions" (@**actions** and @**github**) will appear in {% data variables.product.product_location %}. These organizations are required by {% data variables.product.prodname_actions %}. Users named @**ghost** and @**actions** appear as the actors for creation of these organizations in the audit log. + Please note that when {% data variables.product.prodname_actions %} is enabled during this upgrade, two organizations named "GitHub Actions" (@**actions** and @**github**) will appear in {% data variables.location.product_location %}. These organizations are required by {% data variables.product.prodname_actions %}. Users named @**ghost** and @**actions** appear as the actors for creation of these organizations in the audit log. - heading: 'GitHub Packages beta' notes: - | diff --git a/data/release-notes/github-ae/3-2/0.yml b/data/release-notes/github-ae/3-2/0.yml index f951d6347e..0dd318cdaf 100644 --- a/data/release-notes/github-ae/3-2/0.yml +++ b/data/release-notes/github-ae/3-2/0.yml @@ -40,7 +40,7 @@ sections: - heading: 'GitHub Connect' notes: - | - GitHub Connect is now available in beta for {% data variables.product.product_name %}. GitHub Connect brings the power of the world's largest open source community to {% data variables.product.product_location %}. You can allow users to view search results from {% data variables.product.prodname_dotcom_the_website %} on {% data variables.product.product_name %}, show contribution counts from {% data variables.product.product_name %} on {% data variables.product.prodname_dotcom_the_website %}, and use GitHub Actions from {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Managing connections between your enterprise accounts](/admin/configuration/managing-connections-between-your-enterprise-accounts)." + GitHub Connect is now available in beta for {% data variables.product.product_name %}. GitHub Connect brings the power of the world's largest open source community to {% data variables.location.product_location %}. You can allow users to view search results from {% data variables.product.prodname_dotcom_the_website %} on {% data variables.product.product_name %}, show contribution counts from {% data variables.product.product_name %} on {% data variables.product.prodname_dotcom_the_website %}, and use GitHub Actions from {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Managing connections between your enterprise accounts](/admin/configuration/managing-connections-between-your-enterprise-accounts)." - heading: 'GitHub Packages' notes: - | @@ -102,7 +102,7 @@ sections: - | The Repositories REST API's "compare two commits" endpoint, which returns a list of commits reachable from one commit or branch, but unreachable from another, now supports pagination. The API can also now return the results for comparisons over 250 commits. For more information, see the "[Commits](/rest/reference/commits#compare-two-commits)" REST API documentation and "[Traversing with pagination](/rest/guides/traversing-with-pagination)." - | - When you define a submodule in {% data variables.product.product_location %} with a relative path, the submodule is now clickable in the web UI. Clicking the submodule in the web UI will take you to the linked repository. Previously, only submodules with absolute URLs were clickable. Relative paths for repositories with the same owner that follow the pattern ../REPOSITORY or relative paths for repositories with a different owner that follow the pattern ../OWNER/REPOSITORY are supported. For more information about working with submodules, see [Working with submodules](https://github.blog/2016-02-01-working-with-submodules/) on {% data variables.product.prodname_blog %}. + When you define a submodule in {% data variables.location.product_location %} with a relative path, the submodule is now clickable in the web UI. Clicking the submodule in the web UI will take you to the linked repository. Previously, only submodules with absolute URLs were clickable. Relative paths for repositories with the same owner that follow the pattern ../REPOSITORY or relative paths for repositories with a different owner that follow the pattern ../OWNER/REPOSITORY are supported. For more information about working with submodules, see [Working with submodules](https://github.blog/2016-02-01-working-with-submodules/) on {% data variables.product.prodname_blog %}. - | By precomputing checksums, the amount of time a repository is under lock has reduced dramatically, allowing more write operations to succeed immediately and improving monorepo performance. - heading: 'Releases' @@ -126,7 +126,7 @@ sections: - heading: 'GitHub Apps' notes: - | - API requests to create an installation access token now respect IP allow lists for an enterprise or organization. Any API requests made with an installation access token for a GitHub App installed on your organization already respect IP allow lists. This feature does not currently consider any Azure network security group (NSG) rules that {% data variables.product.company_short %} Support has configured for {% data variables.product.product_location %}. For more information, see "[Restricting network traffic to your enterprise](/admin/configuration/configuring-your-enterprise/restricting-network-traffic-to-your-enterprise#about-ip-allow-lists)," "[Managing allowed IP addresses for your organization](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization)," and "[Apps](https://docs.github.com/en/rest/reference/apps#create-an-installation-access-token-for-an-app)" in the REST API documentation. + API requests to create an installation access token now respect IP allow lists for an enterprise or organization. Any API requests made with an installation access token for a GitHub App installed on your organization already respect IP allow lists. This feature does not currently consider any Azure network security group (NSG) rules that {% data variables.product.company_short %} Support has configured for {% data variables.location.product_location %}. For more information, see "[Restricting network traffic to your enterprise](/admin/configuration/configuring-your-enterprise/restricting-network-traffic-to-your-enterprise#about-ip-allow-lists)," "[Managing allowed IP addresses for your organization](/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization)," and "[Apps](https://docs.github.com/en/rest/reference/apps#create-an-installation-access-token-for-an-app)" in the REST API documentation. - heading: 'Webhooks' notes: - | diff --git a/data/reusables/accounts/create-personal-access-tokens.md b/data/reusables/accounts/create-personal-access-tokens.md index 8e3a7e1dc1..f68aaad4ba 100644 --- a/data/reusables/accounts/create-personal-access-tokens.md +++ b/data/reusables/accounts/create-personal-access-tokens.md @@ -1 +1 @@ -1. For each of your accounts, create a dedicated PAT with `repo` scope. For more information, see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." \ No newline at end of file +1. For each of your accounts, create a dedicated {% data variables.product.pat_v1 %} with `repo` scope. {% ifversion pat-v2 %}Or, for each of your accounts and for each organization that you are a member of, create a {% data variables.product.pat_v2 %} that can access the desired repositories and that has read and write permissions on repository contents.{% endif %} For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." \ No newline at end of file diff --git a/data/reusables/actions/about-actions-for-enterprises.md b/data/reusables/actions/about-actions-for-enterprises.md index ce6ff86813..ff8b663350 100644 --- a/data/reusables/actions/about-actions-for-enterprises.md +++ b/data/reusables/actions/about-actions-for-enterprises.md @@ -1 +1 @@ -{% data variables.product.prodname_actions %} allows {% ifversion ghec or ghae %}members of your enterprise{% elsif ghes %}people who use {% data variables.product.product_location %}{% endif %} to improve productivity by automating every phase of the software development workflow. +{% data variables.product.prodname_actions %} allows {% ifversion ghec or ghae %}members of your enterprise{% elsif ghes %}people who use {% data variables.location.product_location %}{% endif %} to improve productivity by automating every phase of the software development workflow. diff --git a/data/reusables/actions/cache-default-size.md b/data/reusables/actions/cache-default-size.md index 1a8fa94590..c79aef489f 100644 --- a/data/reusables/actions/cache-default-size.md +++ b/data/reusables/actions/cache-default-size.md @@ -1 +1 @@ -By default, the total cache storage that {% data variables.product.prodname_actions %} uses on the external storage for {% data variables.product.product_location %} is limited to a maximum of 10 GB per repository, and the maximum allowed size that can be set for a repository is 25 GB. +By default, the total cache storage that {% data variables.product.prodname_actions %} uses on the external storage for {% data variables.location.product_location %} is limited to a maximum of 10 GB per repository, and the maximum allowed size that can be set for a repository is 25 GB. diff --git a/data/reusables/actions/disabling-github-actions.md b/data/reusables/actions/disabling-github-actions.md index ffdb103610..ef2c62fe2f 100644 --- a/data/reusables/actions/disabling-github-actions.md +++ b/data/reusables/actions/disabling-github-actions.md @@ -1 +1 @@ -By default, {% ifversion ghes or ghae %}after {% data variables.product.prodname_actions %} is enabled on {% data variables.product.product_location %}, it{% elsif fpt or ghec %}{% data variables.product.prodname_actions %}{% endif %} is enabled on all repositories and organizations. You can choose to disable {% data variables.product.prodname_actions %} or limit it to actions {% ifversion actions-workflow-policy %}and reusable workflows{% endif %} in your {% ifversion ghec or ghes or ghae %}enterprise{% else %}organization{% endif %}. +By default, {% ifversion ghes or ghae %}after {% data variables.product.prodname_actions %} is enabled on {% data variables.location.product_location %}, it{% elsif fpt or ghec %}{% data variables.product.prodname_actions %}{% endif %} is enabled on all repositories and organizations. You can choose to disable {% data variables.product.prodname_actions %} or limit it to actions {% ifversion actions-workflow-policy %}and reusable workflows{% endif %} in your {% ifversion ghec or ghes or ghae %}enterprise{% else %}organization{% endif %}. diff --git a/data/reusables/actions/enterprise-common-prereqs.md b/data/reusables/actions/enterprise-common-prereqs.md index f477ffc204..b0541a2c44 100644 --- a/data/reusables/actions/enterprise-common-prereqs.md +++ b/data/reusables/actions/enterprise-common-prereqs.md @@ -1,5 +1,5 @@ * Review the hardware requirements for {% data variables.product.prodname_actions %}. For more information, see "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-github-enterprise-server#review-hardware-considerations)." -* TLS must be configured for {% data variables.product.product_location %}'s domain. For more information, see "[Configuring TLS](/admin/configuration/configuring-tls)." +* TLS must be configured for {% data variables.location.product_location %}'s domain. For more information, see "[Configuring TLS](/admin/configuration/configuring-tls)." {% note %} diff --git a/data/reusables/actions/enterprise-http-proxy.md b/data/reusables/actions/enterprise-http-proxy.md index a250623b87..62d80c0c34 100644 --- a/data/reusables/actions/enterprise-http-proxy.md +++ b/data/reusables/actions/enterprise-http-proxy.md @@ -1,4 +1,4 @@ -If you have an **HTTP Proxy Server** configured on {% data variables.product.product_location %}: +If you have an **HTTP Proxy Server** configured on {% data variables.location.product_location %}: - You must add `localhost` and `127.0.0.1` to the **HTTP Proxy Exclusion** list. - If the BYOS bucket is not routable, then you must also add the bucket's URL to the exclusion list. diff --git a/data/reusables/actions/enterprise-marketplace-actions.md b/data/reusables/actions/enterprise-marketplace-actions.md index 77cf1f0458..44dd8a398e 100644 --- a/data/reusables/actions/enterprise-marketplace-actions.md +++ b/data/reusables/actions/enterprise-marketplace-actions.md @@ -2,7 +2,7 @@ {% note %} -**Note:** {% data variables.product.prodname_actions %} on {% data variables.product.product_location %} may have limited access to actions on {% data variables.product.prodname_dotcom_the_website %} or {% data variables.product.prodname_marketplace %}. For more information, see "[Managing access to actions from {% data variables.product.prodname_dotcom_the_website %}](/enterprise/admin/github-actions/managing-access-to-actions-from-githubcom)" and contact your {% data variables.product.prodname_enterprise %} site administrator. +**Note:** {% data variables.product.prodname_actions %} on {% data variables.location.product_location %} may have limited access to actions on {% data variables.product.prodname_dotcom_the_website %} or {% data variables.product.prodname_marketplace %}. For more information, see "[Managing access to actions from {% data variables.product.prodname_dotcom_the_website %}](/enterprise/admin/github-actions/managing-access-to-actions-from-githubcom)" and contact your {% data variables.product.prodname_enterprise %} site administrator. {% endnote %} diff --git a/data/reusables/actions/enterprise-postinstall-nextsteps.md b/data/reusables/actions/enterprise-postinstall-nextsteps.md index d8ce2dabc0..f241306500 100644 --- a/data/reusables/actions/enterprise-postinstall-nextsteps.md +++ b/data/reusables/actions/enterprise-postinstall-nextsteps.md @@ -1,3 +1,3 @@ ### Next steps -After the configuration run has successfully completed, {% data variables.product.prodname_actions %} will be enabled on {% data variables.product.product_location %}. For your next steps, such as managing {% data variables.product.prodname_actions %} access permissions and adding self-hosted runners, return to "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-github-enterprise-server#enabling-github-actions-with-your-storage-provider)." +After the configuration run has successfully completed, {% data variables.product.prodname_actions %} will be enabled on {% data variables.location.product_location %}. For your next steps, such as managing {% data variables.product.prodname_actions %} access permissions and adding self-hosted runners, return to "[Getting started with {% data variables.product.prodname_actions %} for {% data variables.product.prodname_ghe_server %}](/admin/github-actions/getting-started-with-github-actions-for-github-enterprise-server#enabling-github-actions-with-your-storage-provider)." diff --git a/data/reusables/actions/github-connect-resolution.md b/data/reusables/actions/github-connect-resolution.md index 8a5c8e91f1..54fa9eebde 100644 --- a/data/reusables/actions/github-connect-resolution.md +++ b/data/reusables/actions/github-connect-resolution.md @@ -1 +1 @@ -When a workflow uses an action by referencing the repository where the action is stored, {% data variables.product.prodname_actions %} will first try to find the repository on {% data variables.product.product_location %}. If the repository does not exist on {% data variables.product.product_location %}, and if you have automatic access to {% data variables.product.prodname_dotcom_the_website %} enabled, {% data variables.product.prodname_actions %} will try to find the repository on {% data variables.product.prodname_dotcom_the_website %}. +When a workflow uses an action by referencing the repository where the action is stored, {% data variables.product.prodname_actions %} will first try to find the repository on {% data variables.location.product_location %}. If the repository does not exist on {% data variables.location.product_location %}, and if you have automatic access to {% data variables.product.prodname_dotcom_the_website %} enabled, {% data variables.product.prodname_actions %} will try to find the repository on {% data variables.product.prodname_dotcom_the_website %}. diff --git a/data/reusables/actions/self-hosted-runner-management-permissions-required.md b/data/reusables/actions/self-hosted-runner-management-permissions-required.md index 847f487696..9c3f42102f 100644 --- a/data/reusables/actions/self-hosted-runner-management-permissions-required.md +++ b/data/reusables/actions/self-hosted-runner-management-permissions-required.md @@ -1,4 +1,4 @@ -A self-hosted runner can be located in either your repository, organization, or {% ifversion fpt or ghec %}enterprise account settings on {% data variables.product.prodname_dotcom %}{% elsif ghes or ghae %} enterprise settings on {% data variables.product.product_location %}{% endif %}. To manage a self-hosted runner, you must have the following permissions, depending on where the self-hosted runner was added: +A self-hosted runner can be located in either your repository, organization, or {% ifversion fpt or ghec %}enterprise account settings on {% data variables.product.prodname_dotcom %}{% elsif ghes or ghae %} enterprise settings on {% data variables.location.product_location %}{% endif %}. To manage a self-hosted runner, you must have the following permissions, depending on where the self-hosted runner was added: - **User repository**: You must be the repository owner. - **Organization**: You must be an organization owner. - **Organization repository**: You must be an organization owner, or have admin access to the repository. diff --git a/data/reusables/actions/self-hosted-runner-networking-to-dotcom.md b/data/reusables/actions/self-hosted-runner-networking-to-dotcom.md index 4e5e86b2fb..a648712470 100644 --- a/data/reusables/actions/self-hosted-runner-networking-to-dotcom.md +++ b/data/reusables/actions/self-hosted-runner-networking-to-dotcom.md @@ -1 +1 @@ -To use actions from {% data variables.product.prodname_dotcom_the_website %},{% ifversion ghes %} both {% data variables.product.product_location %} and{% endif %} your self-hosted runners must be able to make outbound connections to {% data variables.product.prodname_dotcom_the_website %}. No inbound connections from {% data variables.product.prodname_dotcom_the_website %} are required. For more information. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#communication-betweens-self-hosted-runners-and-githubcom)." +To use actions from {% data variables.product.prodname_dotcom_the_website %},{% ifversion ghes %} both {% data variables.location.product_location %} and{% endif %} your self-hosted runners must be able to make outbound connections to {% data variables.product.prodname_dotcom_the_website %}. No inbound connections from {% data variables.product.prodname_dotcom_the_website %} are required. For more information. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners#communication-betweens-self-hosted-runners-and-githubcom)." diff --git a/data/reusables/actions/self-hosted-runner-ports-protocols.md b/data/reusables/actions/self-hosted-runner-ports-protocols.md index d81e3706fb..862638d843 100644 --- a/data/reusables/actions/self-hosted-runner-ports-protocols.md +++ b/data/reusables/actions/self-hosted-runner-ports-protocols.md @@ -1,3 +1,3 @@ {% ifversion ghes or ghae %} -The connection between self-hosted runners and {% data variables.product.product_name %} is over {% ifversion ghes %}HTTP (port 80) or {% endif %}HTTPS (port 443). {% ifversion ghes %}To ensure connectivity over HTTPS, configure TLS for {% data variables.product.product_location %}. For more information, see "[Configuring TLS](/admin/configuration/configuring-network-settings/configuring-tls)."{% endif %} +The connection between self-hosted runners and {% data variables.product.product_name %} is over {% ifversion ghes %}HTTP (port 80) or {% endif %}HTTPS (port 443). {% ifversion ghes %}To ensure connectivity over HTTPS, configure TLS for {% data variables.location.product_location %}. For more information, see "[Configuring TLS](/admin/configuration/configuring-network-settings/configuring-tls)."{% endif %} {% endif %} diff --git a/data/reusables/actions/upgrade-runners-before-upgrade-ghes.md b/data/reusables/actions/upgrade-runners-before-upgrade-ghes.md index 58c93a9860..1290be8b1c 100644 --- a/data/reusables/actions/upgrade-runners-before-upgrade-ghes.md +++ b/data/reusables/actions/upgrade-runners-before-upgrade-ghes.md @@ -1 +1 @@ -If you use ephemeral runners and have disabled automatic updates, before you upgrade {% data variables.product.product_location %}, you should first upgrade your self-hosted runners to the version of the runner application that your upgraded instance will run. Upgrading {% data variables.product.product_location %} before you upgrade ephemeral runners may result in your runners going offline. For more information, see "[Upgrading {% data variables.product.product_name %}](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server)." +If you use ephemeral runners and have disabled automatic updates, before you upgrade {% data variables.location.product_location %}, you should first upgrade your self-hosted runners to the version of the runner application that your upgraded instance will run. Upgrading {% data variables.location.product_location %} before you upgrade ephemeral runners may result in your runners going offline. For more information, see "[Upgrading {% data variables.product.product_name %}](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server)." diff --git a/data/reusables/actions/use-request-body-api.md b/data/reusables/actions/use-request-body-api.md index 1d37d0c4f0..38fa43dbe0 100644 --- a/data/reusables/actions/use-request-body-api.md +++ b/data/reusables/actions/use-request-body-api.md @@ -1 +1 @@ -To apply this configuration, submit a request to the API endpoint and include the required configuration in the request body. For more information, see "[Set the customization template for an OIDC subject claim for an organization](/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization)". \ No newline at end of file +To apply this configuration, submit a request to the API endpoint and include the required configuration in the request body. For organizations, see "[Set the customization template for an OIDC subject claim for an organization](/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-an-organization), and for repositories, see "[Set the customization template for an OIDC subject claim for a repository](/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository)." \ No newline at end of file diff --git a/data/reusables/actions/workflow-template-overview.md b/data/reusables/actions/workflow-template-overview.md index 24446416ca..bc08e3019b 100644 --- a/data/reusables/actions/workflow-template-overview.md +++ b/data/reusables/actions/workflow-template-overview.md @@ -1,3 +1,3 @@ {% data variables.product.prodname_dotcom %} provides preconfigured starter workflows that you can customize to create your own continuous integration workflow. {% data variables.product.product_name %} analyzes your code and shows you CI starter workflows that might be useful for your repository. For example, if your repository contains Node.js code, you'll see suggestions for Node.js projects. You can use starter workflows as a starting place to build your custom workflow or use them as-is. -You can browse the full list of starter workflows in the {% ifversion fpt or ghec %}[actions/starter-workflows](https://github.com/actions/starter-workflows) repository{% else %} `actions/starter-workflows` repository on {% data variables.product.product_location %}{% endif %}. +You can browse the full list of starter workflows in the {% ifversion fpt or ghec %}[actions/starter-workflows](https://github.com/actions/starter-workflows) repository{% else %} `actions/starter-workflows` repository on {% data variables.location.product_location %}{% endif %}. diff --git a/data/reusables/advanced-security/about-committer-numbers-ghec-ghes.md b/data/reusables/advanced-security/about-committer-numbers-ghec-ghes.md index 7d2ada7680..6f3376cb84 100644 --- a/data/reusables/advanced-security/about-committer-numbers-ghec-ghes.md +++ b/data/reusables/advanced-security/about-committer-numbers-ghec-ghes.md @@ -1,4 +1,4 @@ -We record and display two numbers of committers for {% data variables.product.prodname_GH_advanced_security %} on {% data variables.product.product_location %}: +We record and display two numbers of committers for {% data variables.product.prodname_GH_advanced_security %} on {% data variables.location.product_location %}: - **Committers** is the number of committers who contributed to at least one {% ifversion fpt or ghec %}private {% endif %}repository in an organization and who use a seat in your enterprise license. That is, they are also an organization member, an external collaborator, or have a pending invitation to join an organization in your enterprise. - **Unique to this repository/organization** is the number of committers who contributed only to this repository, or to repositories in this organization. This number shows how many license seats you can free up by disabling {% data variables.product.prodname_GH_advanced_security %} for that repository or organization. diff --git a/data/reusables/apps/user-to-server-rate-limits.md b/data/reusables/apps/user-to-server-rate-limits.md index 60ba02467d..f56f5c3e0c 100644 --- a/data/reusables/apps/user-to-server-rate-limits.md +++ b/data/reusables/apps/user-to-server-rate-limits.md @@ -1 +1 @@ -{% ifversion ghes %}By default, user-to-server{% else %}User-to-server{% endif %} requests are limited to {% ifversion ghae %}15,000{% elsif fpt or ghec or ghes %}5,000{% endif %} requests per hour and per authenticated user. All requests from OAuth applications authorized by a user or a personal access token owned by the user, and requests authenticated with any of the user's authentication credentials, share the same quota of {% ifversion ghae %}15,000{% elsif fpt or ghec or ghes %}5,000{% endif %} requests per hour for that user. +{% ifversion ghes %}By default, user-to-server{% else %}User-to-server{% endif %} requests are limited to {% ifversion ghae %}15,000{% elsif fpt or ghec or ghes %}5,000{% endif %} requests per hour and per authenticated user. All requests from OAuth applications authorized by a user or a {% data variables.product.pat_generic %} owned by the user, and requests authenticated with any of the user's authentication credentials, share the same quota of {% ifversion ghae %}15,000{% elsif fpt or ghec or ghes %}5,000{% endif %} requests per hour for that user. diff --git a/data/reusables/audit_log/audit-log-action-categories.md b/data/reusables/audit_log/audit-log-action-categories.md index 50e40c031d..a135b85355 100644 --- a/data/reusables/audit_log/audit-log-action-categories.md +++ b/data/reusables/audit_log/audit-log-action-categories.md @@ -14,11 +14,16 @@ {%- ifversion ghec or ghes or ghae %} | `business` | Contains activities related to business settings for an enterprise. {%- endif %} -{%- ifversion ghec or ghes or ghae %} -| `business` | Contains activities related to business settings for an enterprise. +{%- ifversion code-security-audit-log-events %} +| `business_advanced_security` | Contains activities related to {% data variables.product.prodname_GH_advanced_security %} in an enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning` | Contains activities related to {% data variables.product.prodname_secret_scanning %} in an enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." {%- endif %} {%- ifversion secret-scanning-audit-log-custom-patterns %} -| `business_secret_scanning_custom_pattern` | Contains activities related to custom patterns for secret scanning in an enterprise. +| `business_secret_scanning_custom_pattern` | Contains activities related to custom patterns for {% data variables.product.prodname_secret_scanning %} in an enterprise. +{%- endif %} +{%- ifversion code-security-audit-log-events %} +| `business_secret_scanning_push_protection` | Contains activities related to the push protection feature of {% data variables.product.prodname_secret_scanning %} in an enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." +| `business_secret_scanning_push_protection_custom_message` | Contains activities related to the custom message displayed when push protection is triggered in an enterprise. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} features for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise/managing-github-advanced-security-features-for-your-enterprise)." {%- endif %} | `checks` | Contains activities related to check suites and runs. {%- ifversion fpt or ghec %} diff --git a/data/reusables/branches/new-repo-default-branch.md b/data/reusables/branches/new-repo-default-branch.md index d85e1174ba..17f774ac0d 100644 --- a/data/reusables/branches/new-repo-default-branch.md +++ b/data/reusables/branches/new-repo-default-branch.md @@ -1,2 +1,2 @@ -When you create a repository with content on {% data variables.product.product_location %}, {% data variables.product.product_name %} creates the repository with a single branch. This first branch in the repository is the default branch. +When you create a repository with content on {% data variables.location.product_location %}, {% data variables.product.product_name %} creates the repository with a single branch. This first branch in the repository is the default branch. diff --git a/data/reusables/classroom/about-autograding.md b/data/reusables/classroom/about-autograding.md index 04ed2b067c..29cde59f64 100644 --- a/data/reusables/classroom/about-autograding.md +++ b/data/reusables/classroom/about-autograding.md @@ -1 +1 @@ -You can use autograding to automatically check a student's work for an assignment on {% data variables.product.prodname_classroom %}. You configure tests for an assignment, and the tests run immediately every time a student pushes to an assignment repository on {% data variables.product.product_location %}. The student can view the test results, make changes, and push to see new results. +You can use autograding to automatically check a student's work for an assignment on {% data variables.product.prodname_classroom %}. You configure tests for an assignment, and the tests run immediately every time a student pushes to an assignment repository on {% data variables.location.product_location %}. The student can view the test results, make changes, and push to see new results. diff --git a/data/reusables/code-scanning/codeql-context-for-actions-and-third-party-tools.md b/data/reusables/code-scanning/codeql-context-for-actions-and-third-party-tools.md index 8ee0fc92dc..9a06bcca8f 100644 --- a/data/reusables/code-scanning/codeql-context-for-actions-and-third-party-tools.md +++ b/data/reusables/code-scanning/codeql-context-for-actions-and-third-party-tools.md @@ -1 +1 @@ -You can run {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} within {% data variables.product.product_name %} using {% data variables.product.prodname_actions %}. Alternatively, if you use a third-party continuous integration or continuous delivery/deployment (CI/CD) system, you can run {% data variables.product.prodname_codeql %} analysis in your existing system and upload the results to {% data variables.product.product_location %}. +You can run {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} within {% data variables.product.product_name %} using {% data variables.product.prodname_actions %}. Alternatively, if you use a third-party continuous integration or continuous delivery/deployment (CI/CD) system, you can run {% data variables.product.prodname_codeql %} analysis in your existing system and upload the results to {% data variables.location.product_location %}. diff --git a/data/reusables/code-scanning/enterprise-enable-code-scanning-actions.md b/data/reusables/code-scanning/enterprise-enable-code-scanning-actions.md index cabd553499..df8cfa6027 100644 --- a/data/reusables/code-scanning/enterprise-enable-code-scanning-actions.md +++ b/data/reusables/code-scanning/enterprise-enable-code-scanning-actions.md @@ -2,7 +2,7 @@ {% note %} -**Note:** Your site administrator must enable {% data variables.product.prodname_code_scanning %} for {% data variables.product.product_location %} before you can use this feature. If you want to use {% data variables.product.prodname_actions %} to scan your code, the site administrator must also enable {% data variables.product.prodname_actions %} and set up the infrastructure required. For more information, see "[Configuring {% data variables.product.prodname_code_scanning %} for your appliance](/enterprise/admin/configuration/configuring-code-scanning-for-your-appliance)." +**Note:** Your site administrator must enable {% data variables.product.prodname_code_scanning %} for {% data variables.location.product_location %} before you can use this feature. If you want to use {% data variables.product.prodname_actions %} to scan your code, the site administrator must also enable {% data variables.product.prodname_actions %} and set up the infrastructure required. For more information, see "[Configuring {% data variables.product.prodname_code_scanning %} for your appliance](/enterprise/admin/configuration/configuring-code-scanning-for-your-appliance)." {% endnote %} diff --git a/data/reusables/code-scanning/enterprise-enable-code-scanning.md b/data/reusables/code-scanning/enterprise-enable-code-scanning.md index 0216539bcb..700cd26b27 100644 --- a/data/reusables/code-scanning/enterprise-enable-code-scanning.md +++ b/data/reusables/code-scanning/enterprise-enable-code-scanning.md @@ -2,7 +2,7 @@ {% note %} -**Note:** Your site administrator must enable {% data variables.product.prodname_code_scanning %} for {% data variables.product.product_location %} before you can use this feature. For more information, see "[Configuring {% data variables.product.prodname_code_scanning %} for your appliance](/enterprise/admin/configuration/configuring-code-scanning-for-your-appliance)." +**Note:** Your site administrator must enable {% data variables.product.prodname_code_scanning %} for {% data variables.location.product_location %} before you can use this feature. For more information, see "[Configuring {% data variables.product.prodname_code_scanning %} for your appliance](/enterprise/admin/configuration/configuring-code-scanning-for-your-appliance)." {% ifversion security-feature-enablement-policies %} You may not be able to enable or disable {% data variables.product.prodname_code_scanning %} if an enterprise owner has set a policy at the enterprise level. For more information, see "[Enforcing policies for code security and analysis for your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise)."{% endif %} diff --git a/data/reusables/code-scanning/what-is-codeql-cli.md b/data/reusables/code-scanning/what-is-codeql-cli.md index 5d73e332af..2d4e1c65b1 100644 --- a/data/reusables/code-scanning/what-is-codeql-cli.md +++ b/data/reusables/code-scanning/what-is-codeql-cli.md @@ -1 +1 @@ -The {% data variables.product.prodname_codeql_cli %} is a standalone product that you can use to analyze code. Its main purpose is to generate a database representation of a codebase, a {% data variables.product.prodname_codeql %} database. Once the database is ready, you can query it interactively, or run a suite of queries to generate a set of results in SARIF format and upload the results to {% data variables.product.product_location %}. +The {% data variables.product.prodname_codeql_cli %} is a standalone product that you can use to analyze code. Its main purpose is to generate a database representation of a codebase, a {% data variables.product.prodname_codeql %} database. Once the database is ready, you can query it interactively, or run a suite of queries to generate a set of results in SARIF format and upload the results to {% data variables.location.product_location %}. diff --git a/data/reusables/codespaces/creating-a-codespace-in-vscode.md b/data/reusables/codespaces/creating-a-codespace-in-vscode.md index 545324000c..1039481541 100644 --- a/data/reusables/codespaces/creating-a-codespace-in-vscode.md +++ b/data/reusables/codespaces/creating-a-codespace-in-vscode.md @@ -1,4 +1,4 @@ -After you connect your account on {% data variables.product.product_location %} to the {% data variables.product.prodname_github_codespaces %} extension, you can create a new codespace. For more information about the {% data variables.product.prodname_github_codespaces %} extension, see the [{% data variables.product.prodname_vs_marketplace_shortname %} marketplace](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces). +After you connect your account on {% data variables.location.product_location %} to the {% data variables.product.prodname_github_codespaces %} extension, you can create a new codespace. For more information about the {% data variables.product.prodname_github_codespaces %} extension, see the [{% data variables.product.prodname_vs_marketplace_shortname %} marketplace](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces). {% data reusables.codespaces.click-remote-explorer-icon-vscode %} 2. Click the Add icon: {% octicon "plus" aria-label="The plus icon" %}. diff --git a/data/reusables/command_line/provide-an-access-token.md b/data/reusables/command_line/provide-an-access-token.md index eebb60fc19..f2a89e69b4 100644 --- a/data/reusables/command_line/provide-an-access-token.md +++ b/data/reusables/command_line/provide-an-access-token.md @@ -1 +1 @@ -{% ifversion fpt or ghec %}If you are accessing an organization that uses SAML SSO, you must also authorize your personal access token to access the organization before you authenticate. For more information, see "[About authentication with SAML single sign-on](/github/authenticating-to-github/about-authentication-with-saml-single-sign-on)" and "[Authorizing a personal access token for use with SAML single sign-on](/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)."{% endif %} +{% ifversion fpt or ghec %}If you are accessing an organization that uses SAML SSO{% ifversion pat-v2%} and you are using a {% data variables.product.pat_v1 %}{% endif %}, you must also authorize your {% data variables.product.pat_generic %} to access the organization before you authenticate. For more information, see "[About authentication with SAML single sign-on](/github/authenticating-to-github/about-authentication-with-saml-single-sign-on)" and "[Authorizing a {% data variables.product.pat_generic %} for use with SAML single sign-on](/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)."{% endif %} diff --git a/data/reusables/dependabot/enabling-actions-for-ghes.md b/data/reusables/dependabot/enabling-actions-for-ghes.md index 9ca53373eb..8e26f9ae0a 100644 --- a/data/reusables/dependabot/enabling-actions-for-ghes.md +++ b/data/reusables/dependabot/enabling-actions-for-ghes.md @@ -1 +1 @@ -Before you enable {% data variables.product.prodname_dependabot_updates %}, you must configure {% data variables.product.product_location %} to use {% data variables.product.prodname_actions %} with self-hosted runners. \ No newline at end of file +Before you enable {% data variables.product.prodname_dependabot_updates %}, you must configure {% data variables.location.product_location %} to use {% data variables.product.prodname_actions %} with self-hosted runners. \ No newline at end of file diff --git a/data/reusables/dependabot/enterprise-enable-dependabot.md b/data/reusables/dependabot/enterprise-enable-dependabot.md index a74ef3620a..844b35d9ea 100644 --- a/data/reusables/dependabot/enterprise-enable-dependabot.md +++ b/data/reusables/dependabot/enterprise-enable-dependabot.md @@ -2,7 +2,7 @@ {% note %} -**Note:** Your site administrator must set up {% data variables.product.prodname_dependabot_updates %} for {% data variables.product.product_location %} before you can use this feature. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)." +**Note:** Your site administrator must set up {% data variables.product.prodname_dependabot_updates %} for {% data variables.location.product_location %} before you can use this feature. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)." {% ifversion security-feature-enablement-policies %} You may not be able to enable or disable {% data variables.product.prodname_dependabot_updates %} if an enterprise owner has set a policy at the enterprise level. For more information, see "[Enforcing policies for code security and analysis for your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise)."{% endif %} diff --git a/data/reusables/desktop/get-an-account.md b/data/reusables/desktop/get-an-account.md index a31f76705e..545cc0f5b9 100644 --- a/data/reusables/desktop/get-an-account.md +++ b/data/reusables/desktop/get-an-account.md @@ -1,4 +1,4 @@ -you must already have an account on {% data variables.product.product_location %}. +you must already have an account on {% data variables.location.product_location %}. -- For more information on creating an account on {% data variables.product.product_location %} account, see "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/articles/signing-up-for-a-new-github-account/)". +- For more information on creating an account on {% data variables.location.product_location %} account, see "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/articles/signing-up-for-a-new-github-account/)". - For a {% data variables.product.prodname_enterprise %} account, contact your {% data variables.product.prodname_enterprise %} site administrator. diff --git a/data/reusables/discussions/enabling-or-disabling-github-discussions-for-your-organization.md b/data/reusables/discussions/enabling-or-disabling-github-discussions-for-your-organization.md index 131c0bbbcf..e80cf9e28e 100644 --- a/data/reusables/discussions/enabling-or-disabling-github-discussions-for-your-organization.md +++ b/data/reusables/discussions/enabling-or-disabling-github-discussions-for-your-organization.md @@ -1,4 +1,4 @@ -1. On {% data variables.product.product_location %}, navigate to the main page of your organization. +1. On {% data variables.location.product_location %}, navigate to the main page of your organization. 1. Under your organization name, click {% octicon "gear" aria-label="The gear icon" %} **Settings**. ![Organization settings button](/assets/images/help/discussions/org-settings.png) diff --git a/data/reusables/discussions/navigate-to-repo-or-org.md b/data/reusables/discussions/navigate-to-repo-or-org.md index 92670f998b..17ca81827c 100644 --- a/data/reusables/discussions/navigate-to-repo-or-org.md +++ b/data/reusables/discussions/navigate-to-repo-or-org.md @@ -1 +1 @@ -1. On {% data variables.product.product_location %}, navigate to the main page of the repository or organization. +1. On {% data variables.location.product_location %}, navigate to the main page of the repository or organization. diff --git a/data/reusables/discussions/starting-a-discussion.md b/data/reusables/discussions/starting-a-discussion.md index 3ef3f047d0..fb8a039155 100644 --- a/data/reusables/discussions/starting-a-discussion.md +++ b/data/reusables/discussions/starting-a-discussion.md @@ -1,4 +1,4 @@ -1. On {% data variables.product.product_location %}, navigate to the main page of the repository or organization where you want to start a discussion. +1. On {% data variables.location.product_location %}, navigate to the main page of the repository or organization where you want to start a discussion. {% data reusables.discussions.discussions-tab %} 1. Click **New discussion**. !["New discussion" button within the "Discussions" tab for a repository](/assets/images/help/discussions/new-discussion-button.png) diff --git a/data/reusables/dotcom_billing/view-all-subscriptions.md b/data/reusables/dotcom_billing/view-all-subscriptions.md index 582598b93a..8403ca7ead 100644 --- a/data/reusables/dotcom_billing/view-all-subscriptions.md +++ b/data/reusables/dotcom_billing/view-all-subscriptions.md @@ -1 +1 @@ -To view all the subscriptions for your account on {% data variables.product.product_location %}, see "[Viewing your subscriptions and billing date](/articles/viewing-your-subscriptions-and-billing-date)." +To view all the subscriptions for your account on {% data variables.location.product_location %}, see "[Viewing your subscriptions and billing date](/articles/viewing-your-subscriptions-and-billing-date)." diff --git a/data/reusables/enterprise-accounts/dormant-user-activity.md b/data/reusables/enterprise-accounts/dormant-user-activity.md index 1b551e2ea5..80878d1726 100644 --- a/data/reusables/enterprise-accounts/dormant-user-activity.md +++ b/data/reusables/enterprise-accounts/dormant-user-activity.md @@ -1,6 +1,6 @@ -A user is considered active if the user has performed any of the following activities on {% ifversion fpt or ghec or ghes %}{% data variables.product.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}. +A user is considered active if the user has performed any of the following activities on {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %}. -- Signing into {% data variables.product.product_location %} +- Signing into {% data variables.location.product_location %} - Creating a repository - Pushing to a repository - Being added to a repository @@ -20,4 +20,4 @@ A user is considered active if the user has performed any of the following activ - Watching a repository - Starring a repository - Deleting a repository -- Accessing resources by using a personal access token or SSH key +- Accessing resources by using a {% data variables.product.pat_generic %} or SSH key diff --git a/data/reusables/enterprise-accounts/emu-cap-validates.md b/data/reusables/enterprise-accounts/emu-cap-validates.md index 0f5e2fb0f4..f362c9b0ab 100644 --- a/data/reusables/enterprise-accounts/emu-cap-validates.md +++ b/data/reusables/enterprise-accounts/emu-cap-validates.md @@ -1 +1 @@ -When your enterprise uses OIDC SSO, {% data variables.product.prodname_dotcom %} will automatically use your IdP's conditional access policy (CAP) IP conditions to validate user interactions with {% data variables.product.prodname_dotcom %}, when members change IP addresses, and each time a personal access token or SSH key is used. +When your enterprise uses OIDC SSO, {% data variables.product.prodname_dotcom %} will automatically use your IdP's conditional access policy (CAP) IP conditions to validate user interactions with {% data variables.product.prodname_dotcom %}, when members change IP addresses, and each time a {% data variables.product.pat_generic %} or SSH key is used. diff --git a/data/reusables/enterprise-accounts/emu-forks.md b/data/reusables/enterprise-accounts/emu-forks.md index 5393e5378b..f78720f3bc 100644 --- a/data/reusables/enterprise-accounts/emu-forks.md +++ b/data/reusables/enterprise-accounts/emu-forks.md @@ -1 +1 @@ -{% data variables.product.prodname_managed_users_caps %} cannot fork repositories from outside of the enterprise or fork internal repositories. {% data variables.product.prodname_managed_users_caps %} can fork private repositories owned by organizations in the enterprise into other organizations owned by the enterprise, or as a fork owned by the {% data variables.product.prodname_managed_user %}. +{% data variables.enterprise.prodname_managed_users_caps %} cannot fork repositories from outside of the enterprise or fork internal repositories. {% data variables.enterprise.prodname_managed_users_caps %} can fork private repositories owned by organizations in the enterprise into other organizations owned by the enterprise, or as a fork owned by the {% data variables.enterprise.prodname_managed_user %}. diff --git a/data/reusables/enterprise-accounts/emu-only-emails-within-the-enterprise-can-conflict.md b/data/reusables/enterprise-accounts/emu-only-emails-within-the-enterprise-can-conflict.md index 2b5710f414..fc9b61015f 100644 --- a/data/reusables/enterprise-accounts/emu-only-emails-within-the-enterprise-can-conflict.md +++ b/data/reusables/enterprise-accounts/emu-only-emails-within-the-enterprise-can-conflict.md @@ -1 +1,5 @@ -{% data variables.product.prodname_dotcom %} only checks for conflicts within an {% data variables.product.prodname_emu_enterprise %}. {% data variables.product.prodname_managed_users_caps %} can have the same username or email address as a user account outside of the enterprise on {% data variables.product.prodname_dotcom_the_website %}. +{% note %} + +**Note:** Because {% data variables.product.prodname_dotcom %} adds an underscore and short code to the normalized identifier provided by your IdP when creating each username, conflicts can only occur within each {% data variables.enterprise.prodname_emu_enterprise %}. {% data variables.enterprise.prodname_managed_users_caps %} can share IdP identifiers or email addresses with other user accounts on {% data variables.product.prodname_dotcom_the_website %} that are outside the enterprise. + +{% endnote %} diff --git a/data/reusables/enterprise-accounts/emu-permission-follow.md b/data/reusables/enterprise-accounts/emu-permission-follow.md index 2f8f57f652..a27bed899e 100644 --- a/data/reusables/enterprise-accounts/emu-permission-follow.md +++ b/data/reusables/enterprise-accounts/emu-permission-follow.md @@ -1 +1 @@ -{% ifversion ghec %} Members of an {% data variables.product.prodname_emu_enterprise %} can only follow other members of their enterprise. {% endif %} +{% ifversion ghec %} Members of an {% data variables.enterprise.prodname_emu_enterprise %} can only follow other members of their enterprise. {% endif %} diff --git a/data/reusables/enterprise-accounts/emu-permission-fork.md b/data/reusables/enterprise-accounts/emu-permission-fork.md index 4676332b48..c3bf0cb89e 100644 --- a/data/reusables/enterprise-accounts/emu-permission-fork.md +++ b/data/reusables/enterprise-accounts/emu-permission-fork.md @@ -1 +1 @@ -{% ifversion ghec %}Members of an {% data variables.product.prodname_emu_enterprise %} cannot fork repositories from outside of the enterprise or fork internal repositories.{% endif %} +{% ifversion ghec %}Members of an {% data variables.enterprise.prodname_emu_enterprise %} cannot fork repositories from outside of the enterprise or fork internal repositories.{% endif %} diff --git a/data/reusables/enterprise-accounts/emu-permission-gist.md b/data/reusables/enterprise-accounts/emu-permission-gist.md index 83a7ef0ed5..5093627199 100644 --- a/data/reusables/enterprise-accounts/emu-permission-gist.md +++ b/data/reusables/enterprise-accounts/emu-permission-gist.md @@ -1 +1 @@ -{% ifversion ghec %}Members of an {% data variables.product.prodname_emu_enterprise %} cannot create gists and have read-only access to gists.{% endif %} +{% ifversion ghec %}Members of an {% data variables.enterprise.prodname_emu_enterprise %} cannot create gists and have read-only access to gists.{% endif %} diff --git a/data/reusables/enterprise-accounts/emu-permission-interact.md b/data/reusables/enterprise-accounts/emu-permission-interact.md index 1cacf9ffa4..b2162ba7e2 100644 --- a/data/reusables/enterprise-accounts/emu-permission-interact.md +++ b/data/reusables/enterprise-accounts/emu-permission-interact.md @@ -1 +1 @@ -{% ifversion ghec %} Members of an {% data variables.product.prodname_emu_enterprise %} can only interact with repositories within their enterprise. {% endif %} +{% ifversion ghec %} Members of an {% data variables.enterprise.prodname_emu_enterprise %} can only interact with repositories within their enterprise. {% endif %} diff --git a/data/reusables/enterprise-accounts/emu-permission-propose.md b/data/reusables/enterprise-accounts/emu-permission-propose.md index 7a796b726b..2c473bfaa3 100644 --- a/data/reusables/enterprise-accounts/emu-permission-propose.md +++ b/data/reusables/enterprise-accounts/emu-permission-propose.md @@ -1 +1 @@ -{% ifversion ghec %} Members of an {% data variables.product.prodname_emu_enterprise %} can only propose changes in repositories that are part of their enterprise. {% endif %} +{% ifversion ghec %} Members of an {% data variables.enterprise.prodname_emu_enterprise %} can only propose changes in repositories that are part of their enterprise. {% endif %} diff --git a/data/reusables/enterprise-accounts/emu-permission-repo.md b/data/reusables/enterprise-accounts/emu-permission-repo.md index 0802199c70..4112f4ef25 100644 --- a/data/reusables/enterprise-accounts/emu-permission-repo.md +++ b/data/reusables/enterprise-accounts/emu-permission-repo.md @@ -1 +1 @@ -{% ifversion ghec %} Members of an {% data variables.product.prodname_emu_enterprise %} can only make changes in repositories that are part of their enterprise. {% endif %} +{% ifversion ghec %} Members of an {% data variables.enterprise.prodname_emu_enterprise %} can only make changes in repositories that are part of their enterprise. {% endif %} diff --git a/data/reusables/enterprise-accounts/emu-short-summary.md b/data/reusables/enterprise-accounts/emu-short-summary.md index e4322eabae..c80082fe07 100644 --- a/data/reusables/enterprise-accounts/emu-short-summary.md +++ b/data/reusables/enterprise-accounts/emu-short-summary.md @@ -1 +1 @@ -{% data variables.product.prodname_emus %} is a feature of {% data variables.product.prodname_ghe_cloud %} that provides even greater control over enterprise members and resources. With {% data variables.product.prodname_emus %}, all members are provisioned and managed through your identity provider (IdP) instead of users creating their own accounts on {% data variables.product.product_name %}. Team membership can be managed using groups on your IdP. {% data variables.product.prodname_managed_users_caps %} are restricted to their enterprise and are unable to push code, collaborate, or interact with users, repositories, and organizations outside of their enterprise. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion not ghec %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} +{% data variables.product.prodname_emus %} is a feature of {% data variables.product.prodname_ghe_cloud %} that provides even greater control over enterprise members and resources. With {% data variables.product.prodname_emus %}, all members are provisioned and managed through your identity provider (IdP) instead of users creating their own accounts on {% data variables.product.product_name %}. Team membership can be managed using groups on your IdP. {% data variables.enterprise.prodname_managed_users_caps %} are restricted to their enterprise and are unable to push code, collaborate, or interact with users, repositories, and organizations outside of their enterprise. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion not ghec %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} diff --git a/data/reusables/enterprise-accounts/oidc-gei-warning.md b/data/reusables/enterprise-accounts/oidc-gei-warning.md index 440961984d..5ec0d137b6 100644 --- a/data/reusables/enterprise-accounts/oidc-gei-warning.md +++ b/data/reusables/enterprise-accounts/oidc-gei-warning.md @@ -1,5 +1,5 @@ {% warning %} -**Warning:** If you use {% data variables.product.prodname_importer_proper_name %} to migrate an organization from {% data variables.product.product_location_enterprise %}, make sure to use a service account that is exempt from Azure AD's CAP otherwise your migration may be blocked. +**Warning:** If you use {% data variables.product.prodname_importer_proper_name %} to migrate an organization from {% data variables.location.product_location_enterprise %}, make sure to use a service account that is exempt from Azure AD's CAP otherwise your migration may be blocked. {% endwarning %} diff --git a/data/reusables/enterprise/apply-configuration.md b/data/reusables/enterprise/apply-configuration.md index 2a6e2c40d3..7af7ba5163 100644 --- a/data/reusables/enterprise/apply-configuration.md +++ b/data/reusables/enterprise/apply-configuration.md @@ -2,7 +2,7 @@ {% note %} - **Note**: During a configuration run, services on {% data variables.product.product_location %} may restart, which can cause brief downtime for users. + **Note**: During a configuration run, services on {% data variables.location.product_location %} may restart, which can cause brief downtime for users. {% endnote %} diff --git a/data/reusables/enterprise/rate_limit.md b/data/reusables/enterprise/rate_limit.md index a79474a3b3..e6863783bd 100644 --- a/data/reusables/enterprise/rate_limit.md +++ b/data/reusables/enterprise/rate_limit.md @@ -2,7 +2,7 @@ {% note %} -**Note**: The following rate limits are the default rate limits for {% data variables.product.product_name %}. Contact your site administrator to confirm the rate limits for {% data variables.product.product_location %}. +**Note**: The following rate limits are the default rate limits for {% data variables.product.product_name %}. Contact your site administrator to confirm the rate limits for {% data variables.location.product_location %}. {% endnote %} diff --git a/data/reusables/enterprise/test-in-staging.md b/data/reusables/enterprise/test-in-staging.md index 94eede5d3c..43fe854c49 100644 --- a/data/reusables/enterprise/test-in-staging.md +++ b/data/reusables/enterprise/test-in-staging.md @@ -1 +1 @@ -{% data variables.product.company_short %} strongly recommends that you verify any new configuration for authentication in a staging environment. An incorrect configuration could result in downtime for {% data variables.product.product_location %}. For more information, see "[Setting up a staging instance](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)." +{% data variables.product.company_short %} strongly recommends that you verify any new configuration for authentication in a staging environment. An incorrect configuration could result in downtime for {% data variables.location.product_location %}. For more information, see "[Setting up a staging instance](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)." diff --git a/data/reusables/enterprise_clustering/network-latency.md b/data/reusables/enterprise_clustering/network-latency.md new file mode 100644 index 0000000000..f5178140f5 --- /dev/null +++ b/data/reusables/enterprise_clustering/network-latency.md @@ -0,0 +1 @@ +For high availability, the latency between the network with the active nodes and the network with the passive nodes must be less than 70 milliseconds. We don't recommend configuring a firewall between the two networks. \ No newline at end of file diff --git a/data/reusables/enterprise_enterprise_support/installing-releases.md b/data/reusables/enterprise_enterprise_support/installing-releases.md index 142eefc78c..444818f8fe 100644 --- a/data/reusables/enterprise_enterprise_support/installing-releases.md +++ b/data/reusables/enterprise_enterprise_support/installing-releases.md @@ -2,6 +2,6 @@ ## Installing {% data variables.product.prodname_ghe_server %} releases -To ensure that {% data variables.product.product_location %} is stable, you must install and implement {% data variables.product.prodname_ghe_server %} releases. Installing {% data variables.product.prodname_ghe_server %} releases ensures that you have the latest features, modifications, and enhancements as well as any updates to features, code corrections, patches or other general updates and fixes to {% data variables.product.prodname_ghe_server %}. +To ensure that {% data variables.location.product_location %} is stable, you must install and implement {% data variables.product.prodname_ghe_server %} releases. Installing {% data variables.product.prodname_ghe_server %} releases ensures that you have the latest features, modifications, and enhancements as well as any updates to features, code corrections, patches or other general updates and fixes to {% data variables.product.prodname_ghe_server %}. {% endif %} \ No newline at end of file diff --git a/data/reusables/enterprise_installation/download-package.md b/data/reusables/enterprise_installation/download-package.md index e051e1cc9e..6dd8199681 100644 --- a/data/reusables/enterprise_installation/download-package.md +++ b/data/reusables/enterprise_installation/download-package.md @@ -1,4 +1,4 @@ -1. Download the upgrade package to {% data variables.product.product_location %} using `curl `: +1. Download the upgrade package to {% data variables.location.product_location %} using `curl `: ```shell admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL ``` diff --git a/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md b/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md index b8c4a7d8f3..1d514c4aae 100644 --- a/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md +++ b/data/reusables/enterprise_installation/hardware-considerations-all-platforms.md @@ -4,7 +4,7 @@ ### Minimum requirements -We recommend different hardware configurations depending on the number of user licenses for {% data variables.product.product_location %}. If you provision more resources than the minimum requirements, your instance will perform and scale better. +We recommend different hardware configurations depending on the number of user licenses for {% data variables.location.product_location %}. If you provision more resources than the minimum requirements, your instance will perform and scale better. {% data reusables.enterprise_installation.hardware-rec-table %} diff --git a/data/reusables/enterprise_installation/hotpatching-explanation.md b/data/reusables/enterprise_installation/hotpatching-explanation.md index 076badfeae..84970a0e35 100644 --- a/data/reusables/enterprise_installation/hotpatching-explanation.md +++ b/data/reusables/enterprise_installation/hotpatching-explanation.md @@ -4,4 +4,4 @@ You can use hotpatching to upgrade to a newer patch release, but not a feature r Hotpatches do not generally require a reboot. If a hotpatch does require a reboot, the {% data variables.product.product_name %} release notes will indicate the requirement. -Hotpatches require a configuration run, which can cause a brief period of errors or unresponsiveness for some or all services on {% data variables.product.product_location %}. You are not required to enable maintenance mode during installation of a hotpatch, but doing so will guarantee that users see a maintenance page instead of errors or timeouts. For more information, see "[Enabling and scheduling maintenance mode](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode)." +Hotpatches require a configuration run, which can cause a brief period of errors or unresponsiveness for some or all services on {% data variables.location.product_location %}. You are not required to enable maintenance mode during installation of a hotpatch, but doing so will guarantee that users see a maintenance page instead of errors or timeouts. For more information, see "[Enabling and scheduling maintenance mode](/admin/configuration/configuring-your-enterprise/enabling-and-scheduling-maintenance-mode)." diff --git a/data/reusables/enterprise_installation/image-urls-viewable-warning.md b/data/reusables/enterprise_installation/image-urls-viewable-warning.md index 9d3ec6f6c8..ecff795df4 100644 --- a/data/reusables/enterprise_installation/image-urls-viewable-warning.md +++ b/data/reusables/enterprise_installation/image-urls-viewable-warning.md @@ -1,5 +1,5 @@ {% warning %} -**Warning:** If you add an image attachment to a pull request or issue comment, anyone can view the anonymized image URL without authentication{% ifversion ghes %}, even if the pull request is in a private repository, or if private mode is enabled. To prevent unauthorized access to the images, ensure that you restrict network access to the systems that serve the images, including {% data variables.product.product_location %}{% endif %}.{% ifversion ghae %} To prevent unauthorized access to image URLs on {% data variables.product.product_name %}, consider restricting network traffic to your enterprise. For more information, see "[Restricting network traffic to your enterprise](/admin/configuration/restricting-network-traffic-to-your-enterprise)."{% endif %} +**Warning:** If you add an image attachment to a pull request or issue comment, anyone can view the anonymized image URL without authentication{% ifversion ghes %}, even if the pull request is in a private repository, or if private mode is enabled. To prevent unauthorized access to the images, ensure that you restrict network access to the systems that serve the images, including {% data variables.location.product_location %}{% endif %}.{% ifversion ghae %} To prevent unauthorized access to image URLs on {% data variables.product.product_name %}, consider restricting network traffic to your enterprise. For more information, see "[Restricting network traffic to your enterprise](/admin/configuration/restricting-network-traffic-to-your-enterprise)."{% endif %} {% endwarning %} diff --git a/data/reusables/enterprise_installation/ssh-into-instance.md b/data/reusables/enterprise_installation/ssh-into-instance.md index cd5b8ce2cd..86f7f9ac05 100644 --- a/data/reusables/enterprise_installation/ssh-into-instance.md +++ b/data/reusables/enterprise_installation/ssh-into-instance.md @@ -1,4 +1,4 @@ -1. SSH into {% data variables.product.product_location %}. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)." +1. SSH into {% data variables.location.product_location %}. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "[Accessing the administrative shell (SSH)](/admin/configuration/accessing-the-administrative-shell-ssh)." ```shell $ ssh -p 122 admin@HOSTNAME diff --git a/data/reusables/enterprise_site_admin_settings/dormancy-threshold.md b/data/reusables/enterprise_site_admin_settings/dormancy-threshold.md index 65cd4b1d65..4ab76aace6 100644 --- a/data/reusables/enterprise_site_admin_settings/dormancy-threshold.md +++ b/data/reusables/enterprise_site_admin_settings/dormancy-threshold.md @@ -1 +1 @@ -The dormancy threshold is the length of time a user must be inactive to be considered dormant. The default dormancy threshold is 90 days, however you can customize the dormancy threshold for {% data variables.product.product_location %}. +The dormancy threshold is the length of time a user must be inactive to be considered dormant. The default dormancy threshold is 90 days, however you can customize the dormancy threshold for {% data variables.location.product_location %}. diff --git a/data/reusables/enterprise_site_admin_settings/sign-in.md b/data/reusables/enterprise_site_admin_settings/sign-in.md index 93291bff5c..404565e28e 100644 --- a/data/reusables/enterprise_site_admin_settings/sign-in.md +++ b/data/reusables/enterprise_site_admin_settings/sign-in.md @@ -1 +1 @@ -1. Sign in to {% data variables.product.product_location %} at `http(s)://HOSTNAME/login`. +1. Sign in to {% data variables.location.product_location %} at `http(s)://HOSTNAME/login`. diff --git a/data/reusables/enterprise_site_admin_settings/tls-downtime.md b/data/reusables/enterprise_site_admin_settings/tls-downtime.md index a1cc2ae3c0..06f181e152 100644 --- a/data/reusables/enterprise_site_admin_settings/tls-downtime.md +++ b/data/reusables/enterprise_site_admin_settings/tls-downtime.md @@ -1,5 +1,5 @@ {% warning %} -**Warning:** Configuring TLS causes a small amount of downtime for {% data variables.product.product_location %}. +**Warning:** Configuring TLS causes a small amount of downtime for {% data variables.location.product_location %}. {% endwarning %} diff --git a/data/reusables/enterprise_user_management/alternatively-enable-external-authentication.md b/data/reusables/enterprise_user_management/alternatively-enable-external-authentication.md index 70b8f88726..a8ccf8f70b 100644 --- a/data/reusables/enterprise_user_management/alternatively-enable-external-authentication.md +++ b/data/reusables/enterprise_user_management/alternatively-enable-external-authentication.md @@ -1 +1 @@ -Alternatively, you can configure external authentication for {% data variables.product.product_location %}. If you use external authentication, you must invite people to use your instance through your authentication provider. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#external-authentication)." +Alternatively, you can configure external authentication for {% data variables.location.product_location %}. If you use external authentication, you must invite people to use your instance through your authentication provider. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#external-authentication)." diff --git a/data/reusables/enterprise_user_management/built-in-authentication-new-accounts.md b/data/reusables/enterprise_user_management/built-in-authentication-new-accounts.md index b79a776b0f..d1c1d86a0d 100644 --- a/data/reusables/enterprise_user_management/built-in-authentication-new-accounts.md +++ b/data/reusables/enterprise_user_management/built-in-authentication-new-accounts.md @@ -1 +1 @@ -When you use built-in authentication for {% data variables.product.product_location %}, each person creates a personal account from an invitation or by signing up. +When you use built-in authentication for {% data variables.location.product_location %}, each person creates a personal account from an invitation or by signing up. diff --git a/data/reusables/enterprise_user_management/built-in-authentication.md b/data/reusables/enterprise_user_management/built-in-authentication.md index f3dd9376bb..49151a385f 100644 --- a/data/reusables/enterprise_user_management/built-in-authentication.md +++ b/data/reusables/enterprise_user_management/built-in-authentication.md @@ -1 +1 @@ -If you want to allow authentication for some people who don't have an account on your external authentication provider, you can allow fallback authentication to local accounts on {% data variables.product.product_location %}. For more information, see "[Allowing built-in authentication for users outside your provider](/admin/identity-and-access-management/managing-iam-for-your-enterprise/allowing-built-in-authentication-for-users-outside-your-provider)." +If you want to allow authentication for some people who don't have an account on your external authentication provider, you can allow fallback authentication to local accounts on {% data variables.location.product_location %}. For more information, see "[Allowing built-in authentication for users outside your provider](/admin/identity-and-access-management/managing-iam-for-your-enterprise/allowing-built-in-authentication-for-users-outside-your-provider)." diff --git a/data/reusables/enterprise_user_management/consider-usernames-for-external-authentication.md b/data/reusables/enterprise_user_management/consider-usernames-for-external-authentication.md index e88fdc5bfd..c52e1e5433 100644 --- a/data/reusables/enterprise_user_management/consider-usernames-for-external-authentication.md +++ b/data/reusables/enterprise_user_management/consider-usernames-for-external-authentication.md @@ -1 +1 @@ -{% data variables.product.product_name %} normalizes a value from your {% ifversion ghec or ghae %}IdP{% elsif ghes %}external authentication provider{% endif %} to determine the username for each new personal account {% ifversion ghae %}on {% data variables.product.product_name %}{% elsif ghec %}in your enterprise on {% data variables.product.product_location %}{% elsif ghes %}on {% data variables.product.product_location %}{% endif %}. +{% data variables.product.product_name %} normalizes a value from your {% ifversion ghec or ghae %}IdP{% elsif ghes %}external authentication provider{% endif %} to determine the username for each new personal account {% ifversion ghae %}on {% data variables.product.product_name %}{% elsif ghec %}in your enterprise on {% data variables.location.product_location %}{% elsif ghes %}on {% data variables.location.product_location %}{% endif %}. diff --git a/data/reusables/enterprise_user_management/disclaimer-for-git-read-access.md b/data/reusables/enterprise_user_management/disclaimer-for-git-read-access.md index 18a28a7745..7e914e8766 100644 --- a/data/reusables/enterprise_user_management/disclaimer-for-git-read-access.md +++ b/data/reusables/enterprise_user_management/disclaimer-for-git-read-access.md @@ -4,6 +4,6 @@ - The Git protocol is unauthenticated and unencrypted. An attacker could intercept repository data transferred over connections using this protocol. - If you enable anonymous Git read access, you're responsible for all access and use of the feature. {% data variables.product.company_short %} is not responsible for any unintended access, security risks, or misuse of the feature. -- You may not use this feature to violate your license from {% data variables.product.company_short %}, including the limit on the number of user licenses for {% data variables.product.product_location %}. +- You may not use this feature to violate your license from {% data variables.product.company_short %}, including the limit on the number of user licenses for {% data variables.location.product_location %}. {% endwarning %} diff --git a/data/reusables/files/choose-commit-email.md b/data/reusables/files/choose-commit-email.md index bdab65d532..e8e07c32bf 100644 --- a/data/reusables/files/choose-commit-email.md +++ b/data/reusables/files/choose-commit-email.md @@ -1,4 +1,4 @@ {% ifversion fpt or ghec %} -1. If you have more than one email address associated with your account on {% data variables.product.product_location %}, click the email address drop-down menu and select the email address to use as the Git author email address. Only verified email addresses appear in this drop-down menu. If you enabled email address privacy, then `@users.noreply.github.com` is the default commit author email address. For more information, see "[Setting your commit email address](/articles/setting-your-commit-email-address)." +1. If you have more than one email address associated with your account on {% data variables.location.product_location %}, click the email address drop-down menu and select the email address to use as the Git author email address. Only verified email addresses appear in this drop-down menu. If you enabled email address privacy, then `@users.noreply.github.com` is the default commit author email address. For more information, see "[Setting your commit email address](/articles/setting-your-commit-email-address)." ![Choose commit email addresses](/assets/images/help/repository/choose-commit-email-address.png) {% endif %} diff --git a/data/reusables/getting-started/actions.md b/data/reusables/getting-started/actions.md index 6fe3b20843..c655219426 100644 --- a/data/reusables/getting-started/actions.md +++ b/data/reusables/getting-started/actions.md @@ -1 +1 @@ -With {% data variables.product.prodname_actions %}, you can automate and customize {% data variables.product.product_location %}'s development workflow on {% data variables.product.product_name %}. You can create your own actions, and use and customize actions shared by the {% data variables.product.prodname_dotcom %} community. For more information, see "[Learn {% data variables.product.prodname_actions %}](/actions/learn-github-actions)." +With {% data variables.product.prodname_actions %}, you can automate and customize {% data variables.location.product_location %}'s development workflow on {% data variables.product.product_name %}. You can create your own actions, and use and customize actions shared by the {% data variables.product.prodname_dotcom %} community. For more information, see "[Learn {% data variables.product.prodname_actions %}](/actions/learn-github-actions)." diff --git a/data/reusables/getting-started/adding-members-to-organizations.md b/data/reusables/getting-started/adding-members-to-organizations.md index 7b4b952a80..42d5f43d6f 100644 --- a/data/reusables/getting-started/adding-members-to-organizations.md +++ b/data/reusables/getting-started/adding-members-to-organizations.md @@ -1 +1 @@ -You can add members to organizations in {% data variables.product.product_location %} as long as you are an organization owner in the organizations you want to manage. You can also configure visibility of organization membership. For more information, see "[Adding people to your organization](/organizations/managing-membership-in-your-organization/adding-people-to-your-organization)" and "[Configuring visibility for organization membership](/admin/user-management/managing-organizations-in-your-enterprise/configuring-visibility-for-organization-membership)." +You can add members to organizations in {% data variables.location.product_location %} as long as you are an organization owner in the organizations you want to manage. You can also configure visibility of organization membership. For more information, see "[Adding people to your organization](/organizations/managing-membership-in-your-organization/adding-people-to-your-organization)" and "[Configuring visibility for organization membership](/admin/user-management/managing-organizations-in-your-enterprise/configuring-visibility-for-organization-membership)." diff --git a/data/reusables/getting-started/configuring-security-features.md b/data/reusables/getting-started/configuring-security-features.md index 872e7b4ef6..be2ff1bb50 100644 --- a/data/reusables/getting-started/configuring-security-features.md +++ b/data/reusables/getting-started/configuring-security-features.md @@ -1 +1 @@ -To keep {% ifversion ghes or ghae %}the organizations in {% data variables.product.product_location %}{% else %}your organization{% endif %} secure, you can use a variety of {% data variables.product.prodname_dotcom %} security features, including security policies, dependency graphs, secret scanning and Dependabot security and version updates. For more information, see "[Securing your organization](/code-security/getting-started/securing-your-organization)" and "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)." +To keep {% ifversion ghes or ghae %}the organizations in {% data variables.location.product_location %}{% else %}your organization{% endif %} secure, you can use a variety of {% data variables.product.prodname_dotcom %} security features, including security policies, dependency graphs, secret scanning and Dependabot security and version updates. For more information, see "[Securing your organization](/code-security/getting-started/securing-your-organization)" and "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)." diff --git a/data/reusables/getting-started/creating-organizations.md b/data/reusables/getting-started/creating-organizations.md index da604ffe7c..70551a4383 100644 --- a/data/reusables/getting-started/creating-organizations.md +++ b/data/reusables/getting-started/creating-organizations.md @@ -1 +1 @@ -You can create new organizations in {% data variables.product.product_location %} to reflect your company or group's structure. For more information, see "[Creating a new organization from scratch](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)." +You can create new organizations in {% data variables.location.product_location %} to reflect your company or group's structure. For more information, see "[Creating a new organization from scratch](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)." diff --git a/data/reusables/getting-started/enforcing-repo-management-policies.md b/data/reusables/getting-started/enforcing-repo-management-policies.md index 8a1089c3de..a684eecaa6 100644 --- a/data/reusables/getting-started/enforcing-repo-management-policies.md +++ b/data/reusables/getting-started/enforcing-repo-management-policies.md @@ -1 +1 @@ -As an enterprise owner, you can set repository management policies for all organizations in {% data variables.product.product_location %}, or allow policies to be set separately in each organization. For more information, see "[Enforcing repository management policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise)." +As an enterprise owner, you can set repository management policies for all organizations in {% data variables.location.product_location %}, or allow policies to be set separately in each organization. For more information, see "[Enforcing repository management policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise)." diff --git a/data/reusables/getting-started/managing-enterprise-members.md b/data/reusables/getting-started/managing-enterprise-members.md index e178feaeb3..7c74a811a0 100644 --- a/data/reusables/getting-started/managing-enterprise-members.md +++ b/data/reusables/getting-started/managing-enterprise-members.md @@ -1 +1 @@ -You can manage settings and audit activity for the members of {% data variables.product.product_location %}. You can {% ifversion ghes %}promote an enterprise member to be a site administrator, {% endif %}manage dormant users, view the audit log for user activity, and customize messages that enterprise members will see. For more information, see "[Managing users in your enterprise](/admin/user-management/managing-users-in-your-enterprise)." +You can manage settings and audit activity for the members of {% data variables.location.product_location %}. You can {% ifversion ghes %}promote an enterprise member to be a site administrator, {% endif %}manage dormant users, view the audit log for user activity, and customize messages that enterprise members will see. For more information, see "[Managing users in your enterprise](/admin/user-management/managing-users-in-your-enterprise)." diff --git a/data/reusables/git/git-push.md b/data/reusables/git/git-push.md index 850aca63b9..58c2a216e0 100644 --- a/data/reusables/git/git-push.md +++ b/data/reusables/git/git-push.md @@ -1,4 +1,4 @@ -1. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.product.product_location %}. +1. [Push the changes](/github/getting-started-with-github/pushing-commits-to-a-remote-repository/) in your local repository to {% data variables.location.product_location %}. ```shell $ git push origin YOUR_BRANCH # Pushes the changes in your local repository up to the remote repository you specified as the origin diff --git a/data/reusables/git/provide-credentials.md b/data/reusables/git/provide-credentials.md index 351a1e87d1..613014fb92 100644 --- a/data/reusables/git/provide-credentials.md +++ b/data/reusables/git/provide-credentials.md @@ -1,3 +1,3 @@ -1. The first time that you use Git to clone a repository or access data in a repository that you've already cloned, Git will request credentials. Provide the PAT for the account with access to the repository. +1. The first time that you use Git to clone a repository or access data in a repository that you've already cloned, Git will request credentials. Provide the {% data variables.product.pat_generic %} for the account with access to the repository. - Git will cache the PAT for the directory you're in, and you'll be able to access and write repository data on {% data variables.product.product_location %} using the correct account. + Git will cache the {% data variables.product.pat_generic %} for the directory you're in, and you'll be able to access and write repository data on {% data variables.location.product_location %} using the correct account. diff --git a/data/reusables/large_files/storage_assets_location.md b/data/reusables/large_files/storage_assets_location.md index 391d35a2f9..cfc3b76dfa 100644 --- a/data/reusables/large_files/storage_assets_location.md +++ b/data/reusables/large_files/storage_assets_location.md @@ -1,3 +1,3 @@ {% ifversion ghes %} -By default, the {% data variables.large_files.product_name_long %} client stores large assets on the same server that hosts the Git repository. When {% data variables.large_files.product_name_short %} is enabled on {% data variables.product.product_location %}, large assets are stored on the data partition in `/data/user/storage`. +By default, the {% data variables.large_files.product_name_long %} client stores large assets on the same server that hosts the Git repository. When {% data variables.large_files.product_name_short %} is enabled on {% data variables.location.product_location %}, large assets are stored on the data partition in `/data/user/storage`. {% endif %} diff --git a/data/reusables/large_files/use_lfs_tip.md b/data/reusables/large_files/use_lfs_tip.md index f146f79d94..5c45786e34 100644 --- a/data/reusables/large_files/use_lfs_tip.md +++ b/data/reusables/large_files/use_lfs_tip.md @@ -1,5 +1,5 @@ {% tip %} -**Tip:** If you regularly push large files to {% data variables.product.product_location %}, consider using {% data variables.large_files.product_name_long %} ({% data variables.large_files.product_name_short %}). For more information, see "[Versioning large files](/articles/versioning-large-files)." +**Tip:** If you regularly push large files to {% data variables.location.product_location %}, consider using {% data variables.large_files.product_name_long %} ({% data variables.large_files.product_name_short %}). For more information, see "[Versioning large files](/articles/versioning-large-files)." {% endtip %} diff --git a/data/reusables/notifications/outbound_email_tip.md b/data/reusables/notifications/outbound_email_tip.md index 9c7e66a4ee..e8f714d69a 100644 --- a/data/reusables/notifications/outbound_email_tip.md +++ b/data/reusables/notifications/outbound_email_tip.md @@ -1,7 +1,7 @@ {% ifversion ghes or ghae %} {% note %} -**Note**: You'll only receive email notifications if outbound email support is enabled on {% data variables.product.product_location %}. For more information, contact your site administrator. +**Note**: You'll only receive email notifications if outbound email support is enabled on {% data variables.location.product_location %}. For more information, contact your site administrator. {% endnote %} {% endif %} diff --git a/data/reusables/notifications/shared_state.md b/data/reusables/notifications/shared_state.md index dc4a2f89dd..76f7bb93f6 100644 --- a/data/reusables/notifications/shared_state.md +++ b/data/reusables/notifications/shared_state.md @@ -1,5 +1,5 @@ {% tip %} -**Tip:** If you receive both web and email notifications, you can automatically sync the read or unread status of the notification so that web notifications are automatically marked as read once you've read the corresponding email notification. To enable this sync, your email client must be able to view images from {% ifversion fpt or ghec %}`notifications@github.com`{% else %}the `no-reply` email address {% ifversion ghae %}for your {% data variables.product.product_name %} hostname{% elsif ghes %}for {% data variables.product.product_location %}, which your site administrator configures{% endif %}{% endif %}. +**Tip:** If you receive both web and email notifications, you can automatically sync the read or unread status of the notification so that web notifications are automatically marked as read once you've read the corresponding email notification. To enable this sync, your email client must be able to view images from {% ifversion fpt or ghec %}`notifications@github.com`{% else %}the `no-reply` email address {% ifversion ghae %}for your {% data variables.product.product_name %} hostname{% elsif ghes %}for {% data variables.location.product_location %}, which your site administrator configures{% endif %}{% endif %}. {% endtip %} diff --git a/data/reusables/organizations/navigate-to-org.md b/data/reusables/organizations/navigate-to-org.md index f3ae7af034..ef3f95d2c2 100644 --- a/data/reusables/organizations/navigate-to-org.md +++ b/data/reusables/organizations/navigate-to-org.md @@ -1 +1 @@ -1. On {% data variables.product.product_location %}, navigate to the main page of the organization. +1. On {% data variables.location.product_location %}, navigate to the main page of the organization. diff --git a/data/reusables/package_registry/authenticate-packages.md b/data/reusables/package_registry/authenticate-packages.md index 79ac179767..bc3e424d23 100644 --- a/data/reusables/package_registry/authenticate-packages.md +++ b/data/reusables/package_registry/authenticate-packages.md @@ -1,7 +1,9 @@ +{% data reusables.package_registry.packages-classic-pat-only %} + You need an access token to publish, install, and delete private, internal, and public packages. -You can use a personal access token (PAT) to authenticate to {% data variables.product.prodname_registry %} or the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API. When you create a personal access token, you can assign the token different scopes depending on your needs. For more information about packages-related scopes for a PAT, see "[About permissions for GitHub Packages](/packages/learn-github-packages/about-permissions-for-github-packages#about-scopes-and-permissions-for-package-registries)." +You can use a {% data variables.product.pat_v1 %} to authenticate to {% data variables.product.prodname_registry %} or the {% ifversion fpt or ghec %}{% data variables.product.prodname_dotcom %}{% else %}{% data variables.product.product_name %}{% endif %} API. When you create a {% data variables.product.pat_v1 %}, you can assign the token different scopes depending on your needs. For more information about packages-related scopes for a {% data variables.product.pat_v1 %}, see "[About permissions for GitHub Packages](/packages/learn-github-packages/about-permissions-for-github-packages#about-scopes-and-permissions-for-package-registries)." To authenticate to a {% data variables.product.prodname_registry %} registry within a {% data variables.product.prodname_actions %} workflow, you can use: - `GITHUB_TOKEN` to publish packages associated with the workflow repository. -- a PAT with at least `packages:read` scope to install packages associated with other private repositories (which `GITHUB_TOKEN` can't access). +- a {% data variables.product.pat_v1 %} with at least `packages:read` scope to install packages associated with other private repositories (which `GITHUB_TOKEN` can't access). diff --git a/data/reusables/package_registry/authenticate-to-container-registry-steps.md b/data/reusables/package_registry/authenticate-to-container-registry-steps.md index 468bb23641..cc61c65d06 100644 --- a/data/reusables/package_registry/authenticate-to-container-registry-steps.md +++ b/data/reusables/package_registry/authenticate-to-container-registry-steps.md @@ -1,7 +1,9 @@ -1. Create a new personal access token (PAT) with the appropriate scopes for the tasks you want to accomplish. If your organization requires SSO, you must enable SSO for your new token. +{% data reusables.package_registry.packages-classic-pat-only %} + +1. Create a new {% data variables.product.pat_v1 %} with the appropriate scopes for the tasks you want to accomplish. If your organization requires SSO, you must enable SSO for your new token. {% warning %} - **Note:** By default, when you select the `write:packages` scope for your personal access token (PAT) in the user interface, the `repo` scope will also be selected. The `repo` scope offers unnecessary and broad access, which we recommend you avoid using for GitHub Actions workflows in particular. For more information, see "[Security hardening for GitHub Actions](/actions/getting-started-with-github-actions/security-hardening-for-github-actions#considering-cross-repository-access)." As a workaround, you can select just the `write:packages` scope for your PAT in the user interface with this url: `https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/settings/tokens/new?scopes=write:packages`. + **Note:** By default, when you select the `write:packages` scope for your {% data variables.product.pat_v1 %} in the user interface, the `repo` scope will also be selected. The `repo` scope offers unnecessary and broad access, which we recommend you avoid using for {% data variables.product.prodname_actions %} workflows in particular. For more information, see "[Security hardening for GitHub Actions](/actions/getting-started-with-github-actions/security-hardening-for-github-actions#considering-cross-repository-access)." As a workaround, you can select just the `write:packages` scope for your {% data variables.product.pat_v1 %} in the user interface with this url: `https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/settings/tokens/new?scopes=write:packages`. {% endwarning %} @@ -9,9 +11,9 @@ - Select the `write:packages` scope to download and upload container images and read and write their metadata. - Select the `delete:packages` scope to delete container images. - For more information, see "[Creating a personal access token for the command line](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)." + For more information, see "[Creating a {% data variables.product.pat_generic %} for the command line](/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line)." -2. Save your PAT. We recommend saving your PAT as an environment variable. +2. Save your {% data variables.product.pat_v1 %}. We recommend saving your token as an environment variable. ```shell $ export CR_PAT=YOUR_TOKEN ``` diff --git a/data/reusables/package_registry/authenticate_with_pat_for_v2_registry.md b/data/reusables/package_registry/authenticate_with_pat_for_v2_registry.md index 023e44c78c..db1256da20 100644 --- a/data/reusables/package_registry/authenticate_with_pat_for_v2_registry.md +++ b/data/reusables/package_registry/authenticate_with_pat_for_v2_registry.md @@ -1,7 +1,7 @@ -If your workflow is using a personal access token (PAT) to authenticate to a registry, then we highly recommend you update your workflow to use the `GITHUB_TOKEN`. +If your workflow is using a {% data variables.product.pat_generic %} to authenticate to a registry, then we highly recommend you update your workflow to use the `GITHUB_TOKEN`. -{% ifversion fpt or ghec %}For guidance on updating your workflows that authenticate to a registry with a personal access token, see "[Upgrading a workflow that accesses a registry using a PAT](/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#upgrading-a-workflow-that-accesses-a-registry-using-a-pat)."{% endif %} +{% ifversion fpt or ghec %}For guidance on updating your workflows that authenticate to a registry with a {% data variables.product.pat_generic %}, see "[Upgrading a workflow that accesses a registry using a {% data variables.product.pat_generic %}](/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#upgrading-a-workflow-that-accesses-a-registry-using-a-pat)."{% endif %} For more information about the `GITHUB_TOKEN`, see "[Authentication in a workflow](/actions/reference/authentication-in-a-workflow#using-the-github_token-in-a-workflow)." -For more information about the best practises when using a registry in actions, see "[Security hardening for GitHub Actions](/actions/getting-started-with-github-actions/security-hardening-for-github-actions#considering-cross-repository-access)." +For more information about the best practices when using a registry in actions, see "[Security hardening for GitHub Actions](/actions/getting-started-with-github-actions/security-hardening-for-github-actions#considering-cross-repository-access)." diff --git a/data/reusables/package_registry/next-steps-for-packages-enterprise-setup.md b/data/reusables/package_registry/next-steps-for-packages-enterprise-setup.md index f9080682a0..7a5938bed8 100644 --- a/data/reusables/package_registry/next-steps-for-packages-enterprise-setup.md +++ b/data/reusables/package_registry/next-steps-for-packages-enterprise-setup.md @@ -1,3 +1,3 @@ -As a next step, you can customize which package ecosystems you would like to make available to end users on {% data variables.product.product_location %}. For more information, see "[Configuring package ecosystem support for your enterprise](/admin/packages/configuring-package-ecosystem-support-for-your-enterprise)." +As a next step, you can customize which package ecosystems you would like to make available to end users on {% data variables.location.product_location %}. For more information, see "[Configuring package ecosystem support for your enterprise](/admin/packages/configuring-package-ecosystem-support-for-your-enterprise)." For an overview of getting started with {% data variables.product.prodname_registry %} on {% data variables.product.prodname_dotcom %}, see "[Getting started with GitHub Packages for your enterprise](/admin/packages/getting-started-with-github-packages-for-your-enterprise)." diff --git a/data/reusables/package_registry/package-registry-with-github-tokens.md b/data/reusables/package_registry/package-registry-with-github-tokens.md index 05412fb971..e6f45e55dd 100644 --- a/data/reusables/package_registry/package-registry-with-github-tokens.md +++ b/data/reusables/package_registry/package-registry-with-github-tokens.md @@ -1 +1 @@ -If you are using a {% data variables.product.prodname_actions %} workflow, you can use a `GITHUB_TOKEN` to publish and consume packages in {% data variables.product.prodname_registry %} without needing to store and manage a personal access token. For more information, see "[Authenticating with the `GITHUB_TOKEN`](/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token)." +If you are using a {% data variables.product.prodname_actions %} workflow, you can use a `GITHUB_TOKEN` to publish and consume packages in {% data variables.product.prodname_registry %} without needing to store and manage a {% data variables.product.pat_generic %}. For more information, see "[Authenticating with the `GITHUB_TOKEN`](/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token)." diff --git a/data/reusables/package_registry/packages-billing.md b/data/reusables/package_registry/packages-billing.md index afa94b0611..07e599fb33 100644 --- a/data/reusables/package_registry/packages-billing.md +++ b/data/reusables/package_registry/packages-billing.md @@ -1 +1 @@ -{% data variables.product.prodname_registry %} usage is free for public packages. For private packages, each account on {% data variables.product.product_location %} receives a certain amount of free storage and data transfer, depending on the product used with the account. Any usage beyond the included amounts is controlled by spending limits. +{% data variables.product.prodname_registry %} usage is free for public packages. For private packages, each account on {% data variables.location.product_location %} receives a certain amount of free storage and data transfer, depending on the product used with the account. Any usage beyond the included amounts is controlled by spending limits. diff --git a/data/reusables/package_registry/packages-classic-pat-only.md b/data/reusables/package_registry/packages-classic-pat-only.md new file mode 100644 index 0000000000..3eb7f72150 --- /dev/null +++ b/data/reusables/package_registry/packages-classic-pat-only.md @@ -0,0 +1,7 @@ +{% ifversion pat-v2 %} +{% note %} + +{% data variables.product.prodname_registry %} only supports authentication using a {% data variables.product.pat_v1 %}. For more information, see "[Creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + +{% endnote %} +{% endif %} \ No newline at end of file diff --git a/data/reusables/package_registry/required-scopes.md b/data/reusables/package_registry/required-scopes.md index 364cdccaef..9a69fbda9b 100644 --- a/data/reusables/package_registry/required-scopes.md +++ b/data/reusables/package_registry/required-scopes.md @@ -1 +1 @@ -You must use a personal access token with the appropriate scopes to publish and install packages in {% data variables.product.prodname_registry %}. For more information, see "[About {% data variables.product.prodname_registry %}](/packages/learn-github-packages/about-github-packages#authenticating-to-github-packages)." +You must use a {% data variables.product.pat_v1 %} with the appropriate scopes to publish and install packages in {% data variables.product.prodname_registry %}. For more information, see "[About {% data variables.product.prodname_registry %}](/packages/learn-github-packages/about-github-packages#authenticating-to-github-packages)." diff --git a/data/reusables/pages/build-failure-email-server.md b/data/reusables/pages/build-failure-email-server.md index 45955fd205..89e9253b46 100644 --- a/data/reusables/pages/build-failure-email-server.md +++ b/data/reusables/pages/build-failure-email-server.md @@ -1,7 +1,7 @@ {% ifversion ghes or ghae %} {% tip %} - You will only receive an email if outbound email support is enabled on {% data variables.product.product_location %}. For more information, contact your site administrator. + You will only receive an email if outbound email support is enabled on {% data variables.location.product_location %}. For more information, contact your site administrator. {% endtip %} {% endif %} diff --git a/data/reusables/pages/emu-org-only.md b/data/reusables/pages/emu-org-only.md index 19bc6d27fc..fb1844ee17 100644 --- a/data/reusables/pages/emu-org-only.md +++ b/data/reusables/pages/emu-org-only.md @@ -1,7 +1,7 @@ {% ifversion ghec %} {% note %} -**Note:** If you're a {% data variables.product.prodname_managed_user %}, you can only publish {% data variables.product.prodname_pages %} sites from repositories owned by organizations. For more information, see "[About {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/about-github-pages#limitations-for-enterprise-managed-users)." +**Note:** If you're a {% data variables.enterprise.prodname_managed_user %}, you can only publish {% data variables.product.prodname_pages %} sites from repositories owned by organizations. For more information, see "[About {% data variables.product.prodname_pages %}](/pages/getting-started-with-github-pages/about-github-pages#limitations-for-enterprise-managed-users)." {% endnote %} {% endif %} diff --git a/data/reusables/projects/access-workflows.md b/data/reusables/projects/access-workflows.md new file mode 100644 index 0000000000..adb7a70de5 --- /dev/null +++ b/data/reusables/projects/access-workflows.md @@ -0,0 +1,5 @@ +1. Navigate to your project. +1. In the top-right, click {% octicon "kebab-horizontal" aria-label="The menu icon" %} to open the menu. + ![Screenshot showing the menu icon](/assets/images/help/projects-v2/open-menu.png) +1. In the menu, click {% octicon "workflow" aria-label="The workflow icon" %} **Workflows**. + ![Screenshot showing the 'Workflows' menu item](/assets/images/help/projects-v2/workflows-menu-item.png) \ No newline at end of file diff --git a/data/reusables/projects/enable-basic-workflow.md b/data/reusables/projects/enable-basic-workflow.md index 48742816af..715219b099 100644 --- a/data/reusables/projects/enable-basic-workflow.md +++ b/data/reusables/projects/enable-basic-workflow.md @@ -1,13 +1,17 @@ -1. Navigate to your project. -1. In the top-right, click {% octicon "kebab-horizontal" aria-label="The menu icon" %} to open the menu. - ![Screenshot showing the menu icon](/assets/images/help/projects-v2/open-menu.png) -1. In the menu, click {% octicon "workflow" aria-label="The workflow icon" %} **Workflows**. - ![Screenshot showing the 'Workflows' menu item](/assets/images/help/projects-v2/workflows-menu-item.png) +{% data reusables.projects.access-workflows %} 1. Under **Default workflows**, click on the workflow that you want to edit. - ![Screenshot showing default workflows](/assets/images/help/projects-v2/default-workflows.png) -1. If the workflow can apply to both issues and pull requests, next to **When**, check the item type(s) that you want to act on. - ![Screenshot showing the "when" configuration for a workflow](/assets/images/help/projects-v2/workflow-when.png) -1. Next to **Set**, choose the value that you want to set the status to. - ![Screenshot showing the "set" configuration for a workflow](/assets/images/help/projects-v2/workflow-set.png) -1. If the workflow is disabled, click the toggle next to **Disabled** to enable the workflow. - ![Screenshot showing the "enable" control for a workflow](/assets/images/help/projects-v2/workflow-enable.png) + + ![Screenshot showing default workflows](/assets/images/help/projects-v2/default-workflows.png) + +2. If the workflow can apply to both issues and pull requests, next to **When**, check the item type(s) that you want to act on. + + ![Screenshot showing the "when" configuration for a workflow](/assets/images/help/projects-v2/workflow-when.png) + +3. Next to **Set**, choose the value that you want to set the status to. + + ![Screenshot showing the "set" configuration for a workflow](/assets/images/help/projects-v2/workflow-set.png) + +4. If the workflow is disabled, click the toggle next to **Off** to enable the workflow. + + ![Screenshot showing the "On/Off" control for a workflow](/assets/images/help/projects-v2/workflow-enable.png) + diff --git a/data/reusables/projects/projects-filters.md b/data/reusables/projects/projects-filters.md index 3937570a78..ac15ad7a78 100644 --- a/data/reusables/projects/projects-filters.md +++ b/data/reusables/projects/projects-filters.md @@ -5,4 +5,5 @@ - Separate multiple filters with a space. For example, `status:"In progress" -label:"bug" no:assignee` will show only items that have a status of `In progress`, do not have the label `bug`, and do not have an assignee. - To filter for the previous, current, or next iteration of an iteration field, use `@previous`, `@current`, or `@next`. For example, `iteration:@current`. - To filter for items assigned to the viewer, use `@me`. For example, `assignee:@me`. Anyone using this view will see items assigned to themselves. +- To filter by when an item was last updated, use `last-updated:` followed by the number of days. This filter only supports `{number}days` (or `1day` for a single day) as a unit. For example, `last-updated:7days` will only show items that were last updated 7 or more days ago. - To filter date and number fields, use `>`, `>=`, `<`, `<=`, and `..` range queries. For example: `target:2022-03-01..2022-03-15`. For more information, see "[Understanding the search syntax](/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax)." diff --git a/data/reusables/pull_requests/configure_pull_request_merges_intro.md b/data/reusables/pull_requests/configure_pull_request_merges_intro.md index 3b71812307..48ec676b37 100644 --- a/data/reusables/pull_requests/configure_pull_request_merges_intro.md +++ b/data/reusables/pull_requests/configure_pull_request_merges_intro.md @@ -1 +1 @@ -You can configure pull request merge options on {% data variables.product.product_location %} to meet your workflow needs and preferences for managing Git history. For more information, see "[Configuring pull request merges](/articles/configuring-pull-request-merges)." +You can configure pull request merge options on {% data variables.location.product_location %} to meet your workflow needs and preferences for managing Git history. For more information, see "[Configuring pull request merges](/articles/configuring-pull-request-merges)." diff --git a/data/reusables/pull_requests/default_merge_option.md b/data/reusables/pull_requests/default_merge_option.md index 2b06d50177..7336d235d6 100644 --- a/data/reusables/pull_requests/default_merge_option.md +++ b/data/reusables/pull_requests/default_merge_option.md @@ -1,4 +1,4 @@ -When you click the default **Merge pull request** option on a pull request on {% data variables.product.product_location %}, all commits from the feature branch are added to the base branch in a merge commit. The pull request is merged using [the `--no-ff` option](https://git-scm.com/docs/git-merge#_fast_forward_merge). +When you click the default **Merge pull request** option on a pull request on {% data variables.location.product_location %}, all commits from the feature branch are added to the base branch in a merge commit. The pull request is merged using [the `--no-ff` option](https://git-scm.com/docs/git-merge#_fast_forward_merge). To merge pull requests, you must have [write permissions](/articles/repository-permission-levels-for-an-organization/) in the repository. diff --git a/data/reusables/pull_requests/pull_request_merges_and_contributions.md b/data/reusables/pull_requests/pull_request_merges_and_contributions.md index b7a733bb36..e157092539 100644 --- a/data/reusables/pull_requests/pull_request_merges_and_contributions.md +++ b/data/reusables/pull_requests/pull_request_merges_and_contributions.md @@ -2,6 +2,6 @@ **Notes:**{% ifversion ghes or ghae %} - To appear on your profile contributions graph, co-authored commits must meet the same criteria as commits with one author.{% endif %} -- When rebasing commits, the original authors of the commit and the person who rebased the commits, whether on the command line or on {% data variables.product.product_location %}, receive contribution credit. +- When rebasing commits, the original authors of the commit and the person who rebased the commits, whether on the command line or on {% data variables.location.product_location %}, receive contribution credit. {% endnote %} diff --git a/data/reusables/pull_requests/rebase_and_merge_summary.md b/data/reusables/pull_requests/rebase_and_merge_summary.md index 580b210d24..93a7e1e17f 100644 --- a/data/reusables/pull_requests/rebase_and_merge_summary.md +++ b/data/reusables/pull_requests/rebase_and_merge_summary.md @@ -1,4 +1,4 @@ -When you select the **Rebase and merge** option on a pull request on {% data variables.product.product_location %}, all commits from the topic branch (or head branch) are added onto the base branch individually without a merge commit. In that way, the rebase and merge behavior resembles a [fast-forward merge](https://git-scm.com/docs/git-merge#_fast_forward_merge) by maintaining a linear project history. However, rebasing achieves this by re-writing the commit history on the base branch with new commits. +When you select the **Rebase and merge** option on a pull request on {% data variables.location.product_location %}, all commits from the topic branch (or head branch) are added onto the base branch individually without a merge commit. In that way, the rebase and merge behavior resembles a [fast-forward merge](https://git-scm.com/docs/git-merge#_fast_forward_merge) by maintaining a linear project history. However, rebasing achieves this by re-writing the commit history on the base branch with new commits. The rebase and merge behavior on {% data variables.product.product_name %} deviates slightly from `git rebase`. Rebase and merge on {% data variables.product.prodname_dotcom %} will always update the committer information and create new commit SHAs, whereas `git rebase` outside of {% data variables.product.prodname_dotcom %} does not change the committer information when the rebase happens on top of an ancestor commit. For more information about `git rebase`, see [git-rebase](https://git-scm.com/docs/git-rebase) in the Git documentation. diff --git a/data/reusables/pull_requests/squash_and_merge_summary.md b/data/reusables/pull_requests/squash_and_merge_summary.md index b764c443f2..b0f3fc47cc 100644 --- a/data/reusables/pull_requests/squash_and_merge_summary.md +++ b/data/reusables/pull_requests/squash_and_merge_summary.md @@ -1,4 +1,4 @@ -When you select the **Squash and merge** option on a pull request on {% data variables.product.product_location %}, the pull request's commits are squashed into a single commit. Instead of seeing all of a contributor's individual commits from a topic branch, the commits are combined into one commit and merged into the default branch. Pull requests with squashed commits are merged using the [fast-forward option](https://git-scm.com/docs/git-merge#_fast_forward_merge). +When you select the **Squash and merge** option on a pull request on {% data variables.location.product_location %}, the pull request's commits are squashed into a single commit. Instead of seeing all of a contributor's individual commits from a topic branch, the commits are combined into one commit and merged into the default branch. Pull requests with squashed commits are merged using the [fast-forward option](https://git-scm.com/docs/git-merge#_fast_forward_merge). To squash and merge pull requests, you must have [write permissions](/articles/repository-permission-levels-for-an-organization/) in the repository, and the repository must [allow squash merging](/articles/configuring-commit-squashing-for-pull-requests/). diff --git a/data/reusables/release-notes/2022-09-hotpatch-issue.md b/data/reusables/release-notes/2022-09-hotpatch-issue.md index a29caa46a2..ed64a97c43 100644 --- a/data/reusables/release-notes/2022-09-hotpatch-issue.md +++ b/data/reusables/release-notes/2022-09-hotpatch-issue.md @@ -1,13 +1,7 @@ -Hotpatch upgrades to GitHub Enterprise Server {% ifversion ghes = 3.4 %}3.4.9{% elsif ghes = 3.5 %}3.5.6{% elsif ghes = 3.6 %}3.6.2{% endif %} may fail. Upgrades with the full `.pkg` are unaffected. If the upgrade fails for your instance, either run the full `.pkg` upgrade, or work around the issue by performing the following steps. +Hotpatch upgrades to GitHub Enterprise Server {% ifversion ghes = 3.4 %}3.4.9{% elsif ghes = 3.5 %}3.5.6{% elsif ghes = 3.6 %}3.6.2{% endif %} may fail. Upgrades with the full `.pkg` are unaffected. If the upgrade fails for your instance, workaround this issue by connecting to the administrative shell (ssh) and running the following non-interactive command: -1. SSH into the affected node. -1. To launch GRUB, run the following command. +``` +echo "grub-pc grub-pc/install_devices_empty boolean true" | sudo debconf-set-selections +``` - ``` - sudo dpkg --configure -a - ``` -1. In the first GRUB window, you will see a list of devices. Do not modify the selection. Press the Tab key to highlight ``, then press Return/Enter to accept. -1. In the second GRUB window, to continue without installing GRUB, use the arrow keys to highlight ``, then press Return/Enter to accept. -1. After you are returned to the prompt, use `ghe-upgrade` to start the hotpatch installation again. - -If you're unable to upgrade, or if you need further assistance, contact GitHub Support. For more information, see "[Creating a support ticket](/support/contacting-github-support/creating-a-support-ticket)." [Updated: 2022-09-27] +If you're unable to upgrade, or if you need further assistance, contact GitHub Support. For more information, see "[Creating a support ticket](/support/contacting-github-support/creating-a-support-ticket)." [Updated: 2022-10-14] diff --git a/data/reusables/repositories/deploy-keys.md b/data/reusables/repositories/deploy-keys.md index 3add1e1e4e..595c8025c5 100644 --- a/data/reusables/repositories/deploy-keys.md +++ b/data/reusables/repositories/deploy-keys.md @@ -1 +1 @@ -You can launch projects from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.product.product_location %}{% endif %} to your server by using a deploy key, which is an SSH key that grants access to a single repository. {% data variables.product.product_name %} attaches the public part of the key directly to your repository instead of a personal account, and the private part of the key remains on your server. For more information, see "[Delivering deployments](/rest/guides/delivering-deployments)." +You can launch projects from a repository on {% ifversion ghae %}{% data variables.product.product_name %}{% else %}{% data variables.location.product_location %}{% endif %} to your server by using a deploy key, which is an SSH key that grants access to a single repository. {% data variables.product.product_name %} attaches the public part of the key directly to your repository instead of a personal account, and the private part of the key remains on your server. For more information, see "[Delivering deployments](/rest/guides/delivering-deployments)." diff --git a/data/reusables/repositories/enable-security-alerts.md b/data/reusables/repositories/enable-security-alerts.md index 5aa479319a..ff83465bcd 100644 --- a/data/reusables/repositories/enable-security-alerts.md +++ b/data/reusables/repositories/enable-security-alerts.md @@ -1,3 +1,3 @@ {% ifversion ghes or ghae %} -Enterprise owners must enable {% data variables.product.prodname_dependabot_alerts %} for {% data variables.product.product_location %} before you can use this feature. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)." +Enterprise owners must enable {% data variables.product.prodname_dependabot_alerts %} for {% data variables.location.product_location %} before you can use this feature. For more information, see "[Enabling {% data variables.product.prodname_dependabot %} for your enterprise](/admin/configuration/configuring-github-connect/enabling-dependabot-for-your-enterprise)." {% endif %} diff --git a/data/reusables/repositories/navigate-to-repo.md b/data/reusables/repositories/navigate-to-repo.md index cfc2b47c7f..6069ceab1f 100644 --- a/data/reusables/repositories/navigate-to-repo.md +++ b/data/reusables/repositories/navigate-to-repo.md @@ -1 +1 @@ -1. On {% data variables.product.product_location %}, navigate to the main page of the repository. +1. On {% data variables.location.product_location %}, navigate to the main page of the repository. diff --git a/data/reusables/repositories/valid-community-issues.md b/data/reusables/repositories/valid-community-issues.md index d52f3c2ac7..55eb88a76e 100644 --- a/data/reusables/repositories/valid-community-issues.md +++ b/data/reusables/repositories/valid-community-issues.md @@ -1 +1 @@ -To be included in the community profile checklist, issue templates must be located in the `.github/ISSUE_TEMPLATE` folder and contain valid `name:` and `about:` YAML front matter. +To be included in the community profile checklist, issue templates must be located in the `.github/ISSUE_TEMPLATE` folder and contain valid `name:` and `about:` keys in the YAML frontmatter (for issue templates defined in `.md` files) or valid `name:` and `description:` keys (for issue forms defined in `.yml` files). diff --git a/data/reusables/repositories/you-can-fork.md b/data/reusables/repositories/you-can-fork.md index b60b4be066..a38402202e 100644 --- a/data/reusables/repositories/you-can-fork.md +++ b/data/reusables/repositories/you-can-fork.md @@ -2,7 +2,7 @@ If the policies for your enterprise permit forking private and internal repositories, you can fork a repository to your personal account or an organization where you have repository creation permissions. For more information, see "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)." {% elsif ghes or ghec %} -You can fork a private or internal repository to your personal account or an organization on {% data variables.product.product_location %} where you have repository creation permissions, if settings for the repository and your enterprise policies allow forking. +You can fork a private or internal repository to your personal account or an organization on {% data variables.location.product_location %} where you have repository creation permissions, if settings for the repository and your enterprise policies allow forking. {% elsif fpt %} If you have access to a private repository and the owner permits forking, you can fork the repository to your personal account, or an organization on {% data variables.product.prodname_team %} where you have repository creation permissions. You cannot fork a private repository to an organization using {% data variables.product.prodname_free_team %}. For more information, see "[GitHub's products](/articles/githubs-products)." diff --git a/data/reusables/rest-api/dotcom-only-guide-note.md b/data/reusables/rest-api/dotcom-only-guide-note.md index c007486d62..86e1a648f1 100644 --- a/data/reusables/rest-api/dotcom-only-guide-note.md +++ b/data/reusables/rest-api/dotcom-only-guide-note.md @@ -6,7 +6,7 @@ - Use {% data variables.product.api_url_pre %} to access the API for {% data variables.product.product_name %}. -- The guide specifies usernames and repositories that may not exist on {% data variables.product.product_location %}. You may need to use different names to see similar output. +- The guide specifies usernames and repositories that may not exist on {% data variables.location.product_location %}. You may need to use different names to see similar output. {% endnote %} diff --git a/data/reusables/saml/about-authorized-credentials.md b/data/reusables/saml/about-authorized-credentials.md index a86e6510b1..87664ef3bc 100644 --- a/data/reusables/saml/about-authorized-credentials.md +++ b/data/reusables/saml/about-authorized-credentials.md @@ -1 +1 @@ -You can see each personal access token and SSH key that a member has authorized for API and Git access. Only the last several characters of each token or key are visible. If necessary, work with the member to determine which credentials you should revoke. +You can see each {% data variables.product.pat_generic %} and SSH key that a member has authorized for API and Git access. Only the last several characters of each token or key are visible. If necessary, work with the member to determine which credentials you should revoke. diff --git a/data/reusables/saml/about-linked-identities.md b/data/reusables/saml/about-linked-identities.md index ff141ede45..e1a8512bad 100644 --- a/data/reusables/saml/about-linked-identities.md +++ b/data/reusables/saml/about-linked-identities.md @@ -1,3 +1,3 @@ -You can view the single sign-on identity that a member has linked to their account on {% data variables.product.product_location %}. +You can view the single sign-on identity that a member has linked to their account on {% data variables.location.product_location %}. -If a member links the wrong identity to their account on {% data variables.product.product_location %}, you can revoke the linked identity to allow the member to try again. +If a member links the wrong identity to their account on {% data variables.location.product_location %}, you can revoke the linked identity to allow the member to try again. diff --git a/data/reusables/saml/about-saml-access-enterprise-account.md b/data/reusables/saml/about-saml-access-enterprise-account.md index 946b0edc68..08cacea2fa 100644 --- a/data/reusables/saml/about-saml-access-enterprise-account.md +++ b/data/reusables/saml/about-saml-access-enterprise-account.md @@ -1 +1 @@ -To access each organization's resources on {% data variables.product.product_name %}, the member must have an active SAML session in their browser. To access each organization's protected resources using the API and Git, the member must use a personal access token or SSH key that the member has authorized for use with the organization. Enterprise owners can view and revoke a member's linked identity, active sessions, or authorized credentials at any time. +To access each organization's resources on {% data variables.product.product_name %}, the member must have an active SAML session in their browser. To access each organization's protected resources using the API and Git, the member must use a {% data variables.product.pat_generic %} or SSH key that the member has authorized for use with the organization. Enterprise owners can view and revoke a member's linked identity, active sessions, or authorized credentials at any time. diff --git a/data/reusables/saml/authenticate-with-saml-at-least-once.md b/data/reusables/saml/authenticate-with-saml-at-least-once.md index 185e7bdc22..e646937d21 100644 --- a/data/reusables/saml/authenticate-with-saml-at-least-once.md +++ b/data/reusables/saml/authenticate-with-saml-at-least-once.md @@ -1 +1 @@ -If you don't see **Configure SSO**, ensure that you have authenticated at least once through your SAML IdP to access resources on {% data variables.product.product_location %}. For more information, see "[About authentication with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on)." +If you don't see **Configure SSO**, ensure that you have authenticated at least once through your SAML IdP to access resources on {% data variables.location.product_location %}. For more information, see "[About authentication with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on)." diff --git a/data/reusables/saml/authorized-creds-info.md b/data/reusables/saml/authorized-creds-info.md index 348f13e6fa..5f5411ce06 100644 --- a/data/reusables/saml/authorized-creds-info.md +++ b/data/reusables/saml/authorized-creds-info.md @@ -1,7 +1,7 @@ -Before you can authorize a personal access token or SSH key, you must have a linked SAML identity. If you're a member of an organization where SAML SSO is enabled, you can create a linked identity by authenticating to your organization with your IdP at least once. For more information, see "[About authentication with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on)." +Before you can authorize a {% data variables.product.pat_generic %} or SSH key, you must have a linked SAML identity. If you're a member of an organization where SAML SSO is enabled, you can create a linked identity by authenticating to your organization with your IdP at least once. For more information, see "[About authentication with SAML single sign-on](/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on)." -After you authorize a personal access token or SSH key, the token or key will stay authorized until revoked in one of the following ways. +After you authorize a {% data variables.product.pat_generic %} or SSH key, the token or key will stay authorized until revoked in one of the following ways. - An organization or enterprise owner revokes the authorization. - You are removed from the organization. -- The scopes in a personal access token are edited, or the token is regenerated. -- The personal access token expired as defined during creation. +- The scopes in a {% data variables.product.pat_generic %} are edited, or the token is regenerated. +- The {% data variables.product.pat_generic %} expired as defined during creation. diff --git a/data/reusables/saml/must-authorize-linked-identity.md b/data/reusables/saml/must-authorize-linked-identity.md index 138ecbb29c..5854c09d77 100644 --- a/data/reusables/saml/must-authorize-linked-identity.md +++ b/data/reusables/saml/must-authorize-linked-identity.md @@ -1,5 +1,5 @@ {% note %} -**Note:** If you have a linked identity for an organization, you can only use authorized personal access tokens and SSH keys with that organization, even if SAML is not enforced. You have a linked identity for an organization if you've ever authenticated via SAML SSO for that organization, unless an organization or enterprise owner later revoked the linked identity. For more information about revoking linked identities, see "[Viewing and managing a member's SAML access to your organization](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization)" and "[Viewing and managing a user's SAML access to your enterprise](/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise)." +**Note:** If you have a linked identity for an organization, you can only use authorized {% data variables.product.pat_generic %}s and SSH keys with that organization, even if SAML is not enforced. You have a linked identity for an organization if you've ever authenticated via SAML SSO for that organization, unless an organization or enterprise owner later revoked the linked identity. For more information about revoking linked identities, see "[Viewing and managing a member's SAML access to your organization](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization)" and "[Viewing and managing a user's SAML access to your enterprise](/admin/user-management/managing-users-in-your-enterprise/viewing-and-managing-a-users-saml-access-to-your-enterprise)." {% endnote %} diff --git a/data/reusables/saml/you-must-periodically-authenticate.md b/data/reusables/saml/you-must-periodically-authenticate.md index da3e05cc5c..7d345990f4 100644 --- a/data/reusables/saml/you-must-periodically-authenticate.md +++ b/data/reusables/saml/you-must-periodically-authenticate.md @@ -1 +1 @@ -You must periodically authenticate with your SAML IdP to authenticate and gain access to {% ifversion fpt or ghec %}the organization's resources on {% data variables.product.prodname_dotcom_the_website %}{% elsif ghae %}{% data variables.product.product_location %}{% endif %}. The duration of this login period is specified by your IdP and is generally 24 hours. This periodic login requirement limits the length of access and requires you to re-identify yourself to continue. {% ifversion fpt or ghec %}You can view and manage your active SAML sessions in your security settings. For more information, see "[Viewing and managing your active SAML sessions](/articles/viewing-and-managing-your-active-saml-sessions)."{% endif %} +You must periodically authenticate with your SAML IdP to authenticate and gain access to {% ifversion fpt or ghec %}the organization's resources on {% data variables.product.prodname_dotcom_the_website %}{% elsif ghae %}{% data variables.location.product_location %}{% endif %}. The duration of this login period is specified by your IdP and is generally 24 hours. This periodic login requirement limits the length of access and requires you to re-identify yourself to continue. {% ifversion fpt or ghec %}You can view and manage your active SAML sessions in your security settings. For more information, see "[Viewing and managing your active SAML sessions](/articles/viewing-and-managing-your-active-saml-sessions)."{% endif %} diff --git a/data/reusables/scim/enterprise-account-scim.md b/data/reusables/scim/enterprise-account-scim.md index 453907ae8a..ac08a28b7d 100644 --- a/data/reusables/scim/enterprise-account-scim.md +++ b/data/reusables/scim/enterprise-account-scim.md @@ -1 +1 @@ -You cannot use this implementation of SCIM with an enterprise account or with an {% data variables.product.prodname_emu_org %}. If your enterprise is enabled for {% data variables.product.prodname_emus %}, you must use a different implementation of SCIM. Otherwise, SCIM is not available at the enterprise level. For more information, see "[Configuring SCIM provisioning for {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users)." +You cannot use this implementation of SCIM with an enterprise account or with an {% data variables.enterprise.prodname_emu_org %}. If your enterprise is enabled for {% data variables.product.prodname_emus %}, you must use a different implementation of SCIM. Otherwise, SCIM is not available at the enterprise level. For more information, see "[Configuring SCIM provisioning for {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/managing-iam-with-enterprise-managed-users/configuring-scim-provisioning-for-enterprise-managed-users)." diff --git a/data/reusables/scim/supported-idps.md b/data/reusables/scim/supported-idps.md index 8ac2514209..1243cee7b5 100644 --- a/data/reusables/scim/supported-idps.md +++ b/data/reusables/scim/supported-idps.md @@ -1,4 +1,4 @@ -The following IdPs can provision or deprovision user accounts on {% data variables.product.product_location %} using SCIM. +The following IdPs can provision or deprovision user accounts on {% data variables.location.product_location %} using SCIM. {% ifversion ghae %} - Azure AD diff --git a/data/reusables/search/syntax_tips.md b/data/reusables/search/syntax_tips.md index 2db9fba1d5..8eedc169a7 100644 --- a/data/reusables/search/syntax_tips.md +++ b/data/reusables/search/syntax_tips.md @@ -1,7 +1,7 @@ {% tip %} **Tips:**{% ifversion ghes or ghae %} - - This article contains links to example searches on the {% data variables.product.prodname_dotcom_the_website %} website, but you can use the same search filters with {% data variables.product.product_name %}. In the linked example searches, replace `github.com` with the hostname for {% data variables.product.product_location %}.{% endif %} + - This article contains links to example searches on the {% data variables.product.prodname_dotcom_the_website %} website, but you can use the same search filters with {% data variables.product.product_name %}. In the linked example searches, replace `github.com` with the hostname for {% data variables.location.product_location %}.{% endif %} - For a list of search syntaxes that you can add to any search qualifier to further improve your results, see "[Understanding the search syntax](/articles/understanding-the-search-syntax)". - Use quotations around multi-word search terms. For example, if you want to search for issues with the label "In progress," you'd search for `label:"in progress"`. Search is not case sensitive. diff --git a/data/reusables/secret-scanning/enterprise-enable-secret-scanning.md b/data/reusables/secret-scanning/enterprise-enable-secret-scanning.md index 7f1c750998..e4513c6c98 100644 --- a/data/reusables/secret-scanning/enterprise-enable-secret-scanning.md +++ b/data/reusables/secret-scanning/enterprise-enable-secret-scanning.md @@ -2,7 +2,7 @@ {% note %} -**Note:** Your site administrator must enable {% data variables.product.prodname_secret_scanning %} for {% data variables.product.product_location %} before you can use this feature. For more information, see "[Configuring {% data variables.product.prodname_secret_scanning %} for your appliance](/enterprise/admin/configuration/configuring-secret-scanning-for-your-appliance)." +**Note:** Your site administrator must enable {% data variables.product.prodname_secret_scanning %} for {% data variables.location.product_location %} before you can use this feature. For more information, see "[Configuring {% data variables.product.prodname_secret_scanning %} for your appliance](/enterprise/admin/configuration/configuring-secret-scanning-for-your-appliance)." {% ifversion security-feature-enablement-policies %} You may not be able to enable or disable {% data variables.product.prodname_secret_scanning %}, if an enterprise owner has set a policy at the enterprise level. For more information, see "[Enforcing policies for code security and analysis for your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise)."{% endif %} {% endnote %} diff --git a/data/reusables/secret-scanning/partner-secret-list-private-repo.md b/data/reusables/secret-scanning/partner-secret-list-private-repo.md index f70ad1c9c4..eb5a2953b2 100644 --- a/data/reusables/secret-scanning/partner-secret-list-private-repo.md +++ b/data/reusables/secret-scanning/partner-secret-list-private-repo.md @@ -17,8 +17,12 @@ Atlassian | Atlassian JSON Web Token | atlassian_jwt Atlassian | Bitbucket Server Personal Access Token | bitbucket_server_personal_access_token {%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} Azure | Azure Active Directory Application Secret | azure_active_directory_application_secret{% endif %} +{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %} +Azure | Azure Batch Key Identifiable | azure_batch_key_identifiable{% endif %} {%- ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} Azure | Azure Cache for Redis Access Key | azure_cache_for_redis_access_key{% endif %} +{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %} +Azure | Azure CosmosDB Key Identifiable | azure_cosmosdb_key_identifiable{% endif %} Azure | Azure DevOps Personal Access Token | azure_devops_personal_access_token {%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %} Azure | Azure ML Studio (classic) Web Service Key | azure_ml_studio_classic_web_service_key{% endif %} diff --git a/data/reusables/secret-scanning/partner-secret-list-public-repo.md b/data/reusables/secret-scanning/partner-secret-list-public-repo.md index 03e035c94c..b2648470cb 100644 --- a/data/reusables/secret-scanning/partner-secret-list-public-repo.md +++ b/data/reusables/secret-scanning/partner-secret-list-public-repo.md @@ -10,6 +10,8 @@ Amazon Web Services (AWS) | Amazon AWS Access Key ID and Secret Access Key pair Atlassian | Atlassian API Token Atlassian | Atlassian JSON Web Token Azure | Azure Active Directory Application Secret +Azure | Azure Batch Key Identifiable +Azure | Azure CosmosDB Key Identifiable Azure | Azure DevOps Personal Access Token Azure | Azure ML Studio (classic) Web Service Key Azure | Azure SAS Token diff --git a/data/reusables/secret-scanning/secret-list-private-push-protection.md b/data/reusables/secret-scanning/secret-list-private-push-protection.md index e73196547f..a2a86f557f 100644 --- a/data/reusables/secret-scanning/secret-list-private-push-protection.md +++ b/data/reusables/secret-scanning/secret-list-private-push-protection.md @@ -8,7 +8,11 @@ Amazon Web Services (AWS) | Amazon AWS Session Token with Amazon AWS Temporary A Asana | Asana Personal Access Token | asana_personal_access_token Atlassian | Bitbucket Server Personal Access Token | bitbucket_server_personal_access_token Azure | Azure Active Directory Application Secret | azure_active_directory_application_secret +{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %} +Azure | Azure Batch Key Identifiable | azure_batch_key_identifiable{% endif %} Azure | Azure Cache for Redis Access Key | azure_cache_for_redis_access_key +{%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %} +Azure | Azure CosmosDB Key Identifiable | azure_cosmosdb_key_identifiable{% endif %} Azure | Azure DevOps Personal Access Token | azure_devops_personal_access_token {%- ifversion fpt or ghec or ghes > 3.8 or ghae > 3.8 %} Azure | Azure ML Studio (classic) Web Service Key | azure_ml_studio_classic_web_service_key{% endif %} diff --git a/data/reusables/shortdesc/rate_limits_github_apps.md b/data/reusables/shortdesc/rate_limits_github_apps.md index 8bbd3534fd..499de3d2f5 100644 --- a/data/reusables/shortdesc/rate_limits_github_apps.md +++ b/data/reusables/shortdesc/rate_limits_github_apps.md @@ -1 +1 @@ -Rate limits for {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} help control the rate of traffic to {% data variables.product.product_location %}. +Rate limits for {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} help control the rate of traffic to {% data variables.location.product_location %}. diff --git a/data/reusables/sponsors/select-sponsorship-billing.md b/data/reusables/sponsors/select-sponsorship-billing.md index 8395b954d0..26b44ffe79 100644 --- a/data/reusables/sponsors/select-sponsorship-billing.md +++ b/data/reusables/sponsors/select-sponsorship-billing.md @@ -1 +1 @@ -4. Under "Billing information", review your payment details. Optionally, to change the payment details for your entire account on {% data variables.product.product_location %}, click **Edit**. Then, follow the prompts to complete the payment form. +4. Under "Billing information", review your payment details. Optionally, to change the payment details for your entire account on {% data variables.location.product_location %}, click **Edit**. Then, follow the prompts to complete the payment form. diff --git a/data/reusables/ssh/about-ssh.md b/data/reusables/ssh/about-ssh.md index b4c0c5361a..95040d6fd3 100644 --- a/data/reusables/ssh/about-ssh.md +++ b/data/reusables/ssh/about-ssh.md @@ -1 +1 @@ -You can access and write data in repositories on {% ifversion fpt or ghec or ghes %}{% data variables.product.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} using SSH (Secure Shell Protocol). When you connect via SSH, you authenticate using a private key file on your local machine. +You can access and write data in repositories on {% ifversion fpt or ghec or ghes %}{% data variables.location.product_location %}{% elsif ghae %}{% data variables.product.product_name %}{% endif %} using SSH (Secure Shell Protocol). When you connect via SSH, you authenticate using a private key file on your local machine. diff --git a/data/reusables/ssh/key-type-support.md b/data/reusables/ssh/key-type-support.md index 85ace1b53c..324873282a 100644 --- a/data/reusables/ssh/key-type-support.md +++ b/data/reusables/ssh/key-type-support.md @@ -3,7 +3,7 @@ **Note:** {% data variables.product.company_short %} improved security by dropping older, insecure key types on March 15, 2022. -As of that date, DSA keys (`ssh-dss`) are no longer supported. You cannot add new DSA keys to your personal account on {% data variables.product.product_location %}. +As of that date, DSA keys (`ssh-dss`) are no longer supported. You cannot add new DSA keys to your personal account on {% data variables.location.product_location %}. RSA keys (`ssh-rsa`) with a `valid_after` before November 2, 2021 may continue to use any signature algorithm. RSA keys generated after that date must use a SHA-2 signature algorithm. Some older clients may need to be upgraded in order to use SHA-2 signatures. diff --git a/data/reusables/ssh/rsa-sha-1-connection-failure-criteria.md b/data/reusables/ssh/rsa-sha-1-connection-failure-criteria.md index d2c95da8a5..b08eeab7b8 100644 --- a/data/reusables/ssh/rsa-sha-1-connection-failure-criteria.md +++ b/data/reusables/ssh/rsa-sha-1-connection-failure-criteria.md @@ -1,2 +1,2 @@ -- The RSA key was added to a user account on {% data variables.product.product_location %} after the cutoff date of midnight UTC on August 1, 2022. +- The RSA key was added to a user account on {% data variables.location.product_location %} after the cutoff date of midnight UTC on August 1, 2022. - The SSH client signs the connection attempt with the SHA-1 hash function. diff --git a/data/reusables/support/submit-a-ticket.md b/data/reusables/support/submit-a-ticket.md index 6418a84693..e9b27b7fc5 100644 --- a/data/reusables/support/submit-a-ticket.md +++ b/data/reusables/support/submit-a-ticket.md @@ -11,7 +11,7 @@ ![Screenshot of the "Server Installation" dropdown menu](/assets/images/help/support/installation-field.png) {%- endif %} {%- ifversion ghes %} -1. Select the **Release series** dropdown menu and click the release {% data variables.product.product_location_enterprise %} is running. +1. Select the **Release series** dropdown menu and click the release {% data variables.location.product_location_enterprise %} is running. ![Screenshot of the "Release series" dropdown menu](/assets/images/help/support/release-field.png) {%- endif %} {%- ifversion ghes or ghec %} diff --git a/data/reusables/user-settings/classic-projects-api-classic-pat-only.md b/data/reusables/user-settings/classic-projects-api-classic-pat-only.md new file mode 100644 index 0000000000..44a38304d7 --- /dev/null +++ b/data/reusables/user-settings/classic-projects-api-classic-pat-only.md @@ -0,0 +1,7 @@ +{% ifversion pat-v2 %} +{% note %} + +The REST API to manage {% data variables.product.prodname_projects_v1 %} only supports authentication using a {% data variables.product.pat_v1 %}. For more information, see "[Creating a {% data variables.product.pat_generic %} ](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + +{% endnote %} +{% endif %} \ No newline at end of file diff --git a/data/reusables/user-settings/enterprise-admin-api-classic-pat-only.md b/data/reusables/user-settings/enterprise-admin-api-classic-pat-only.md new file mode 100644 index 0000000000..f0700d0f82 --- /dev/null +++ b/data/reusables/user-settings/enterprise-admin-api-classic-pat-only.md @@ -0,0 +1,7 @@ +{% ifversion pat-v2 %} +{% note %} + +The REST API for enterprise administrators only supports authentication using a {% data variables.product.pat_v1 %}. For more information, see "[Creating a {% data variables.product.pat_generic %} ](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + +{% endnote %} +{% endif %} \ No newline at end of file diff --git a/data/reusables/user-settings/generic-classic-pat-only.md b/data/reusables/user-settings/generic-classic-pat-only.md new file mode 100644 index 0000000000..0f0424db5f --- /dev/null +++ b/data/reusables/user-settings/generic-classic-pat-only.md @@ -0,0 +1 @@ +You can only use a {% data variables.product.pat_v1 %}, not a {% data variables.product.pat_v2 %}. \ No newline at end of file diff --git a/data/reusables/user-settings/graphql-classic-pat-only.md b/data/reusables/user-settings/graphql-classic-pat-only.md new file mode 100644 index 0000000000..124edea8eb --- /dev/null +++ b/data/reusables/user-settings/graphql-classic-pat-only.md @@ -0,0 +1,7 @@ +{% ifversion pat-v2 %} +{% note %} + +The GraphQL API only supports authentication using a {% data variables.product.pat_v1 %}. For more information, see "[Creating a {% data variables.product.pat_generic %} ](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + +{% endnote %} +{% endif %} \ No newline at end of file diff --git a/data/reusables/user-settings/imports-api-classic-pat-only.md b/data/reusables/user-settings/imports-api-classic-pat-only.md new file mode 100644 index 0000000000..bbb38fb9ba --- /dev/null +++ b/data/reusables/user-settings/imports-api-classic-pat-only.md @@ -0,0 +1,7 @@ +{% ifversion pat-v2 %} +{% note %} + +The REST API for source imports only supports authentication using a {% data variables.product.pat_v1 %}. For more information, see "[Creating a {% data variables.product.pat_generic %} ](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + +{% endnote %} +{% endif %} \ No newline at end of file diff --git a/data/reusables/user-settings/notifications-api-classic-pat-only.md b/data/reusables/user-settings/notifications-api-classic-pat-only.md new file mode 100644 index 0000000000..95f6fae90b --- /dev/null +++ b/data/reusables/user-settings/notifications-api-classic-pat-only.md @@ -0,0 +1,7 @@ +{% ifversion pat-v2 %} +{% note %} + +The REST API to manage notifications only supports authentication using a {% data variables.product.pat_v1 %}. For more information, see "[Creating a {% data variables.product.pat_generic %} ](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)." + +{% endnote %} +{% endif %} \ No newline at end of file diff --git a/data/reusables/user-settings/password-authentication-deprecation.md b/data/reusables/user-settings/password-authentication-deprecation.md index a5047a9b64..04a4cbd48e 100644 --- a/data/reusables/user-settings/password-authentication-deprecation.md +++ b/data/reusables/user-settings/password-authentication-deprecation.md @@ -1 +1 @@ -When Git prompts you for your password, enter your personal access token (PAT). Alternatively, you can use a credential helper like [Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager/blob/main/README.md).{% ifversion not ghae %} Password-based authentication for Git has been removed in favor of more secure authentication methods.{% endif %} For more information, see "[Creating a personal access token](/github/authenticating-to-github/creating-a-personal-access-token)." +When Git prompts you for your password, enter your {% data variables.product.pat_generic %}. Alternatively, you can use a credential helper like [Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager/blob/main/README.md).{% ifversion not ghae %} Password-based authentication for Git has been removed in favor of more secure authentication methods.{% endif %} For more information, see "[Creating a {% data variables.product.pat_generic %}](/github/authenticating-to-github/creating-a-personal-access-token)." diff --git a/data/reusables/user-settings/pat-v2-beta.md b/data/reusables/user-settings/pat-v2-beta.md new file mode 100644 index 0000000000..2817327e00 --- /dev/null +++ b/data/reusables/user-settings/pat-v2-beta.md @@ -0,0 +1 @@ +{% data variables.product.pat_v2_caps %} are currently in beta and subject to change. To leave feedback, see [the feedback discussion](https://github.com/community/community/discussions/36441). \ No newline at end of file diff --git a/data/reusables/user-settings/pat-v2-org-opt-in.md b/data/reusables/user-settings/pat-v2-org-opt-in.md new file mode 100644 index 0000000000..ec8a41a257 --- /dev/null +++ b/data/reusables/user-settings/pat-v2-org-opt-in.md @@ -0,0 +1,7 @@ +{% note %} + +**Note**: {% data reusables.user-settings.pat-v2-beta %} + +During the beta, organizations must opt in to {% data variables.product.pat_v2 %}s. {% ifversion ghec or ghes or ghae %}If your organization is owned by an enterprise, and the enterprise has opted in to {% data variables.product.pat_v2 %}s, then your organization is opted in by default. {% endif %}If your organization has not already opted-in, then you will be prompted to opt-in and set policies when you follow the steps below. + +{% endnote %} \ No newline at end of file diff --git a/data/reusables/user-settings/patv2-limitations.md b/data/reusables/user-settings/patv2-limitations.md new file mode 100644 index 0000000000..100b7bafb5 --- /dev/null +++ b/data/reusables/user-settings/patv2-limitations.md @@ -0,0 +1,20 @@ +{% note %} + +**Note**: Currently, some features only work with {% data variables.product.pat_v1_plural %}: + +- Only {% data variables.product.pat_v1_plural %} have write access for public repositories that are not owned by you or an organization that you are not a member of.{% ifversion ghec or ghes or ghae %} +- Only {% data variables.product.pat_v1_plural %} automatically have write access for internal repositories that are owned by your enterprise. {% data variables.product.pat_v2_caps %}s must be granted access to internal repositories.{% endif %} +- Outside collaborators can use only {% data variables.product.pat_v1_plural %} to access organization repositories that they are a collaborator on.{% ifversion ghec or ghes or ghae %} +- Only {% data variables.product.pat_v1_plural %} can access enterprises. ({% data variables.product.pat_v2_caps %} can access organizations owned by enterprises.){% endif %} +- The following APIs only support {% data variables.product.pat_v1_plural %}. For a list of REST API operations that are supported for {% data variables.product.pat_v2 %}, see "[Endpoints available for {% data variables.product.pat_v2 %}s](/rest/overview/endpoints-available-for-fine-grained-personal-access-tokens)". + - GraphQL API{% ifversion ghec or ghes or ghae %} + - REST API for enterprise administrators{% endif %}{% ifversion ghec or fpt %} + - REST API to manage source imports{% endif %} + - REST API to manage {% data variables.product.prodname_projects_v1_caps %} + - REST API to manage {% data variables.product.prodname_registry %} + - REST API to manage notifications + - REST API to transfer a repository + - REST API to create a repository from a template + - REST API to create a repository for the authenticated user + +{% endnote %} \ No newline at end of file diff --git a/data/reusables/user-settings/personal_access_tokens.md b/data/reusables/user-settings/personal_access_tokens.md index 92efa74416..0a2887b96d 100644 --- a/data/reusables/user-settings/personal_access_tokens.md +++ b/data/reusables/user-settings/personal_access_tokens.md @@ -1,2 +1,2 @@ -1. In the left sidebar, click **Personal access tokens**. -![Personal access tokens](/assets/images/help/settings/personal_access_tokens_tab.png) +1. In the left sidebar, click **{% data variables.product.pat_generic_caps %}s**. +![{% data variables.product.pat_generic_caps %}s](/assets/images/help/settings/personal_access_tokens_tab.png) diff --git a/data/reusables/user-settings/removes-personal-access-tokens.md b/data/reusables/user-settings/removes-personal-access-tokens.md index d7802bca75..3840329b4c 100644 --- a/data/reusables/user-settings/removes-personal-access-tokens.md +++ b/data/reusables/user-settings/removes-personal-access-tokens.md @@ -1 +1 @@ -As a security precaution, {% data variables.product.company_short %} automatically removes personal access tokens that haven't been used in a year. To provide additional security, we highly recommend adding an expiration to your personal access tokens. +As a security precaution, {% data variables.product.company_short %} automatically removes {% data variables.product.pat_generic %}s that haven't been used in a year. To provide additional security, we highly recommend adding an expiration to your {% data variables.product.pat_generic %}s. diff --git a/data/variables/enterprise.yml b/data/variables/enterprise.yml index 1148ec80e9..8c3561eadc 100644 --- a/data/variables/enterprise.yml +++ b/data/variables/enterprise.yml @@ -1,3 +1,15 @@ management_console: 'Management Console' # https://support.github.com/enterprise/server-upgrade upgrade_assistant: 'Upgrade assistant' + +# GitHub Enterprise Managed Users +prodname_managed_users_caps: 'Managed user accounts' +prodname_managed_users: 'managed user accounts' +prodname_managed_user: 'managed user account' +prodname_emu_enterprise: 'enterprise with managed users' +prodname_emu_org: 'organization with managed users' + +# GitHub Connect (enterprise accounts, other unified features) +## Phrase content so that the uncapitalized unified contributions or unified search variables are not used at the start of a sentence. +prodname_unified_contributions: 'unified contributions' +prodname_unified_search: 'unified search' diff --git a/data/variables/location.yml b/data/variables/location.yml new file mode 100644 index 0000000000..2101b7ab67 --- /dev/null +++ b/data/variables/location.yml @@ -0,0 +1,7 @@ +## Use these variables when referring specifically to a location within a product +product_location: >- + {% ifversion ghes %}your GitHub Enterprise Server instance{% elsif ghae %}your enterprise{% else %}GitHub.com{% endif %} + +# Used ONLY when you need to refer to a GHES instance in an article that is versioned for non-GHES versions. +# Do not use in other situations! +product_location_enterprise: 'your GitHub Enterprise Server instance' diff --git a/data/variables/product.yml b/data/variables/product.yml index 769d6949b3..903b4ee61b 100644 --- a/data/variables/product.yml +++ b/data/variables/product.yml @@ -24,14 +24,6 @@ prodname_ghe_managed: 'GitHub AE' prodname_ghe_one: 'GitHub One' prodname_docs: 'GitHub Docs' -## Use these variables when referring specifically to a location within a product -product_location: >- - {% ifversion ghes %}your GitHub Enterprise Server instance{% elsif ghae %}your enterprise{% else %}GitHub.com{% endif %} - -# Used ONLY when you need to refer to a GHES instance in an article that is versioned for non-GHES versions. -# Do not use in other situations! -product_location_enterprise: 'your GitHub Enterprise Server instance' - prodname_free_user: 'GitHub Free' prodname_pro: 'GitHub Pro' prodname_team: 'GitHub Team' @@ -40,10 +32,7 @@ prodname_free_team: 'GitHub Free' prodname_enterprise_backup_utilities: 'GitHub Enterprise Server Backup Utilities' # GitHub Connect (enterprise accounts, other unified features) -## Phrase content so that the uncapitalized unified contributions or unified search variables are not used at the start of a sentence. prodname_github_connect: 'GitHub Connect' -prodname_unified_contributions: 'unified contributions' -prodname_unified_search: 'unified search' # GitHub Enterprise migration tool prodname_importer_proper_name: 'GitHub Enterprise Importer' @@ -96,6 +85,20 @@ prodname_project_v1: >- prodname_project_v1_caps: >- {% ifversion ghes or ghae %}Project board{% else %}Project (classic){% endif %} +# Personal access tokens +pat_generic: 'personal access token' +pat_generic_caps: 'Personal access token' +pat_v2: 'fine-grained personal access token' +pat_v2_caps: 'Fine-grained personal access token' +pat_v1: >- + {% ifversion pat-v2 %}personal access token (classic){% else %}personal access token{% endif %} +pat_v1_plural: >- + {% ifversion pat-v2 %}personal access tokens (classic){% else %}personal access tokens{% endif %} +pat_v1_caps: >- + {% ifversion pat-v2 %}Personal access token (classic){% else %}Personal access token{% endif %} +pat_v1_caps_plural: >- + {% ifversion pat-v2 %}Personal access tokens (classic){% else %}Personal access tokens{% endif %} + # Apps, GitHub Marketplace, and integrations prodname_marketplace: 'GitHub Marketplace' prodname_github_app: 'GitHub App' @@ -124,11 +127,6 @@ prodname_discussions: 'GitHub Discussions' prodname_emu_idp_application: 'GitHub Enterprise Managed User' prodname_emu_idp_oidc_application: 'GitHub Enterprise Managed User (OIDC)' prodname_emus: 'Enterprise Managed Users' -prodname_managed_user: 'managed user account' -prodname_managed_users: 'managed user accounts' -prodname_managed_users_caps: 'Managed user accounts' -prodname_emu_enterprise: 'enterprise with managed users' -prodname_emu_org: 'organization with managed users' # GitHub Issues prodname_github_issues: 'GitHub Issues' @@ -238,14 +236,14 @@ prodname_server_statistics: 'Server Statistics' # Links product_url: >- - {% ifversion fpt or ghec %}github.com{% else %}[hostname]{% endif %} + {% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %} pricing_url: 'https://github.com/pricing' signin_link: >- - {% ifversion fpt or ghec %}[Sign in](https://github.com/login){% else %}Sign in (`https://[hostname]/login`){% endif %} + {% ifversion fpt or ghec %}[Sign in](https://github.com/login){% else %}Sign in (`https://HOSTNAME/login`){% endif %} signout_link: >- - {% ifversion fpt or ghec %}[Sign out](https://github.com/logout){% else %}Sign out (`https://[hostname]/logout`){% endif %} + {% ifversion fpt or ghec %}[Sign out](https://github.com/logout){% else %}Sign out (`https://HOSTNAME/logout`){% endif %} raw_github_com: >- - {% ifversion fpt or ghec %}raw.githubusercontent.com{% else %}[hostname]/user/repo/raw{% endif %} + {% ifversion fpt or ghec %}raw.githubusercontent.com{% else %}HOSTNAME/user/repo/raw{% endif %} # GitHub Enterprise Server past versions current-340-version: '11.10.354' @@ -255,25 +253,25 @@ doc_url_pre: >- {% ifversion fpt or ghec %}https://docs.github.com/rest{% elsif ghes %}https://docs.github.com/enterprise/{{ currentVersion | version_num }}/rest{% elsif ghae %}https://docs.github.com/github-ae@latest/rest{% endif %} # Use this inside command-line code blocks api_url_pre: >- - {% ifversion fpt or ghec %}https://api.github.com{% elsif ghes %}http(s)://[hostname]/api/v3{% elsif ghae %}https://[hostname]/api/v3{% endif %} + {% ifversion fpt or ghec %}https://api.github.com{% elsif ghes %}http(s)://HOSTNAME/api/v3{% elsif ghae %}https://HOSTNAME/api/v3{% endif %} # Use this inside command-line code blocks # Enterprise OAuth paths that don't include "/graphql" or "/api/v3" oauth_host_code: >- - {% ifversion fpt or ghec %}https://github.com{% else %}http(s)://[hostname]{% endif %} + {% ifversion fpt or ghec %}https://github.com{% else %}http(s)://HOSTNAME{% endif %} device_authorization_url: >- {%- ifversion fpt or ghec %} [`https://github.com/login/device`](https://github.com/login/device) {%- elsif ghes %} - `http(s)://[hostname]/login/device` + `http(s)://HOSTNAME/login/device` {%- elsif ghae %} - `https://[hostname]/login/device` + `https://HOSTNAME/login/device` {%- endif %} # Use this all other code blocks api_url_code: >- - {% ifversion fpt or ghec %}https://api.github.com{% elsif ghes %}http(s)://[hostname]/api/v3{% elsif ghae %}https://[hostname]/api/v3{% endif %} + {% ifversion fpt or ghec %}https://api.github.com{% elsif ghes %}http(s)://HOSTNAME/api/v3{% elsif ghae %}https://HOSTNAME/api/v3{% endif %} # Use this inside command-line code blocks graphql_url_pre: >- - {% ifversion fpt or ghec %}https://api.github.com/graphql{% elsif ghes %}http(s)://[hostname]/api/graphql{% elsif ghae %}https://[hostname]/api/graphql{% endif %} + {% ifversion fpt or ghec %}https://api.github.com/graphql{% elsif ghes %}http(s)://HOSTNAME/api/graphql{% elsif ghae %}https://HOSTNAME/api/graphql{% endif %} # Use this all other code blocks graphql_url_code: >- - {% ifversion fpt or ghec %}https://api.github.com/graphql{% elsif ghes %}http(s)://[hostname]/api/graphql{% elsif ghae %}https://[hostname]/api/graphql{% endif %} + {% ifversion fpt or ghec %}https://api.github.com/graphql{% elsif ghes %}http(s)://HOSTNAME/api/graphql{% elsif ghae %}https://HOSTNAME/api/graphql{% endif %} diff --git a/data/variables/projects.yml b/data/variables/projects.yml index 0a37853386..62942096fd 100644 --- a/data/variables/projects.yml +++ b/data/variables/projects.yml @@ -17,3 +17,7 @@ command-palette-shortcut: 'Command+K (Mac) or CtrlField language was added to object type TreeEntry

" + ] + } + ], + "previewChanges": [], + "upcomingChanges": [], + "date": "2022-10-19" + }, + { + "schemaChanges": [ + { + "title": "The GraphQL schema includes these changes:", + "changes": [ + "

Type Comparison was added

", + "

Type ComparisonCommitConnection was added

", + "

Type ComparisonStatus was added

", + "

Type 'ProjectV2SortByField' was added

", + "

Type 'ProjectV2SortByFieldConnection' was added

", + "

Type 'ProjectV2SortByFieldEdge' was added

", + "

Field sortByFields was added to object type 'ProjectV2View'

", + "

Field verticalGroupByFields was added to object type 'ProjectV2View'

", + "

Field compare was added to object type Ref

" + ] + } + ], + "previewChanges": [], + "upcomingChanges": [ + { + "title": "The following changes will be made to the schema:", + "changes": [ + "

On member ProjectV2View.sortBy:sortBy will be removed. Check out the ProjectV2View#sort_by_fields API as an example for the more capable alternative. Effective 2023-04-01.

", + "

On member ProjectV2View.verticalGroupBy:verticalGroupBy will be removed. Check out the ProjectV2View#vertical_group_by_fields API as an example for the more capable alternative. Effective 2023-04-01.

" + ] + } + ], + "date": "2022-10-18" + }, { "schemaChanges": [ { diff --git a/lib/graphql/static/previews.json b/lib/graphql/static/previews.json index a8e8bde8ca..74db056213 100644 --- a/lib/graphql/static/previews.json +++ b/lib/graphql/static/previews.json @@ -72,7 +72,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -221,7 +221,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -1097,4 +1097,4 @@ "href": "/graphql/overview/schema-previews#team-review-assignments-preview" } ] -} \ No newline at end of file +} diff --git a/lib/graphql/static/schema-dotcom.json b/lib/graphql/static/schema-dotcom.json index 3bb4f3b736..93975ddd30 100644 --- a/lib/graphql/static/schema-dotcom.json +++ b/lib/graphql/static/schema-dotcom.json @@ -13186,6 +13186,161 @@ } ] }, + { + "name": "Comparison", + "kind": "objects", + "id": "comparison", + "href": "/graphql/reference/objects#comparison", + "description": "

Represents a comparison between two commit revisions.

", + "implements": [ + { + "name": "Node", + "id": "node", + "href": "/graphql/reference/interfaces#node" + } + ], + "fields": [ + { + "name": "aheadBy", + "description": "

The number of commits ahead of the base branch.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "baseTarget", + "description": "

The base revision of this comparison.

", + "type": "GitObject!", + "id": "gitobject", + "kind": "interfaces", + "href": "/graphql/reference/interfaces#gitobject" + }, + { + "name": "behindBy", + "description": "

The number of commits behind the base branch.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "commits", + "description": "

The commits which compose this comparison.

", + "type": "ComparisonCommitConnection!", + "id": "comparisoncommitconnection", + "kind": "objects", + "href": "/graphql/reference/objects#comparisoncommitconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + } + ] + }, + { + "name": "headTarget", + "description": "

The head revision of this comparison.

", + "type": "GitObject!", + "id": "gitobject", + "kind": "interfaces", + "href": "/graphql/reference/interfaces#gitobject" + }, + { + "name": "status", + "description": "

The status of this comparison.

", + "type": "ComparisonStatus!", + "id": "comparisonstatus", + "kind": "enums", + "href": "/graphql/reference/enums#comparisonstatus" + } + ] + }, + { + "name": "ComparisonCommitConnection", + "kind": "objects", + "id": "comparisoncommitconnection", + "href": "/graphql/reference/objects#comparisoncommitconnection", + "description": "

The connection type for Commit.

", + "fields": [ + { + "name": "authorCount", + "description": "

The total count of authors and co-authors across all commits.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "edges", + "description": "

A list of edges.

", + "type": "[CommitEdge]", + "id": "commitedge", + "kind": "objects", + "href": "/graphql/reference/objects#commitedge" + }, + { + "name": "nodes", + "description": "

A list of nodes.

", + "type": "[Commit]", + "id": "commit", + "kind": "objects", + "href": "/graphql/reference/objects#commit" + }, + { + "name": "pageInfo", + "description": "

Information to aid in pagination.

", + "type": "PageInfo!", + "id": "pageinfo", + "kind": "objects", + "href": "/graphql/reference/objects#pageinfo" + }, + { + "name": "totalCount", + "description": "

Identifies the total count of items in the connection.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + ] + }, { "name": "ConnectedEvent", "kind": "objects", @@ -15337,7 +15492,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15417,7 +15572,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15479,7 +15634,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15525,7 +15680,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15660,7 +15815,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15722,7 +15877,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -43789,6 +43944,97 @@ } ] }, + { + "name": "ProjectV2SortByField", + "kind": "objects", + "id": "projectv2sortbyfield", + "href": "/graphql/reference/objects#projectv2sortbyfield", + "description": "

Represents a sort by field and direction.

", + "fields": [ + { + "name": "direction", + "description": "

The direction of the sorting. Possible values are ASC and DESC.

", + "type": "OrderDirection!", + "id": "orderdirection", + "kind": "enums", + "href": "/graphql/reference/enums#orderdirection" + }, + { + "name": "field", + "description": "

The field by which items are sorted.

", + "type": "ProjectV2FieldConfiguration!", + "id": "projectv2fieldconfiguration", + "kind": "unions", + "href": "/graphql/reference/unions#projectv2fieldconfiguration" + } + ] + }, + { + "name": "ProjectV2SortByFieldConnection", + "kind": "objects", + "id": "projectv2sortbyfieldconnection", + "href": "/graphql/reference/objects#projectv2sortbyfieldconnection", + "description": "

The connection type for ProjectV2SortByField.

", + "fields": [ + { + "name": "edges", + "description": "

A list of edges.

", + "type": "[ProjectV2SortByFieldEdge]", + "id": "projectv2sortbyfieldedge", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2sortbyfieldedge" + }, + { + "name": "nodes", + "description": "

A list of nodes.

", + "type": "[ProjectV2SortByField]", + "id": "projectv2sortbyfield", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2sortbyfield" + }, + { + "name": "pageInfo", + "description": "

Information to aid in pagination.

", + "type": "PageInfo!", + "id": "pageinfo", + "kind": "objects", + "href": "/graphql/reference/objects#pageinfo" + }, + { + "name": "totalCount", + "description": "

Identifies the total count of items in the connection.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + ] + }, + { + "name": "ProjectV2SortByFieldEdge", + "kind": "objects", + "id": "projectv2sortbyfieldedge", + "href": "/graphql/reference/objects#projectv2sortbyfieldedge", + "description": "

An edge in a connection.

", + "fields": [ + { + "name": "cursor", + "description": "

A cursor for use in pagination.

", + "type": "String!", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + }, + { + "name": "node", + "description": "

The item at the end of the edge.

", + "type": "ProjectV2SortByField", + "id": "projectv2sortbyfield", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2sortbyfield" + } + ] + }, { "name": "ProjectV2View", "kind": "objects", @@ -44048,6 +44294,58 @@ "id": "projectv2sortbyconnection", "kind": "objects", "href": "/graphql/reference/objects#projectv2sortbyconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + } + ], + "isDeprecated": true, + "deprecationReason": "

The ProjectV2View#sort_by API is deprecated in favour of the more capable ProjectV2View#sort_by_fields API. Check out the ProjectV2View#sort_by_fields API as an example for the more capable alternative. Removal on 2023-04-01 UTC.

" + }, + { + "name": "sortByFields", + "description": "

The view's sort-by config.

", + "type": "ProjectV2SortByFieldConnection", + "id": "projectv2sortbyfieldconnection", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2sortbyfieldconnection", "arguments": [ { "name": "after", @@ -44106,6 +44404,68 @@ "id": "projectv2fieldconnection", "kind": "objects", "href": "/graphql/reference/objects#projectv2fieldconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "orderBy", + "description": "

Ordering options for the project v2 fields returned from the connection.

", + "type": { + "name": "ProjectV2FieldOrder", + "id": "projectv2fieldorder", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#projectv2fieldorder" + } + } + ], + "isDeprecated": true, + "deprecationReason": "

The ProjectV2View#vertical_group_by API is deprecated in favour of the more capable ProjectV2View#vertical_group_by_fields API. Check out the ProjectV2View#vertical_group_by_fields API as an example for the more capable alternative. Removal on 2023-04-01 UTC.

" + }, + { + "name": "verticalGroupByFields", + "description": "

The view's vertical-group-by field.

", + "type": "ProjectV2FieldConfigurationConnection", + "id": "projectv2fieldconfigurationconnection", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2fieldconfigurationconnection", "arguments": [ { "name": "after", @@ -49797,6 +50157,26 @@ "kind": "objects", "href": "/graphql/reference/objects#branchprotectionrule" }, + { + "name": "compare", + "description": "

Compares the current ref as a base ref to another head ref, if the comparison can be made.

", + "type": "Comparison", + "id": "comparison", + "kind": "objects", + "href": "/graphql/reference/objects#comparison", + "arguments": [ + { + "name": "headRef", + "description": "

The head ref to compare against.

", + "type": { + "name": "String!", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + } + ] + }, { "name": "name", "description": "

The ref name.

", @@ -55260,7 +55640,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -66363,6 +66743,14 @@ "kind": "scalars", "href": "/graphql/reference/scalars#boolean" }, + { + "name": "language", + "description": "

The programming language this file is written in.

", + "type": "Language", + "id": "language", + "kind": "objects", + "href": "/graphql/reference/objects#language" + }, { "name": "lineCount", "description": "

Number of lines in the file.

", @@ -74543,6 +74931,31 @@ } ] }, + { + "name": "ComparisonStatus", + "kind": "enums", + "id": "comparisonstatus", + "href": "/graphql/reference/enums#comparisonstatus", + "description": "

The status of a git comparison between two refs.

", + "values": [ + { + "name": "AHEAD", + "description": "

The head ref is ahead of the base ref.

" + }, + { + "name": "BEHIND", + "description": "

The head ref is behind the base ref.

" + }, + { + "name": "DIVERGED", + "description": "

The head ref is both ahead and behind of the base ref, indicating git history has diverged.

" + }, + { + "name": "IDENTICAL", + "description": "

The head ref and base ref are identical.

" + } + ] + }, { "name": "ContributionLevel", "kind": "enums", @@ -85190,7 +85603,7 @@ }, { "name": "commitBody", - "description": "

Commit body to use for the commit when the PR is mergable; if omitted, a default message will be used.

", + "description": "

Commit body to use for the commit when the PR is mergable; if omitted, a\ndefault message will be used. NOTE: when merging with a merge queue any input\nvalue for commit message is ignored.

", "type": "String", "id": "string", "kind": "scalars", @@ -85198,7 +85611,7 @@ }, { "name": "commitHeadline", - "description": "

Commit headline to use for the commit when the PR is mergable; if omitted, a default message will be used.

", + "description": "

Commit headline to use for the commit when the PR is mergable; if omitted, a\ndefault message will be used. NOTE: when merging with a merge queue any input\nvalue for commit headline is ignored.

", "type": "String", "id": "string", "kind": "scalars", @@ -85206,7 +85619,7 @@ }, { "name": "mergeMethod", - "description": "

The merge method to use. If omitted, defaults to MERGE.

", + "description": "

The merge method to use. If omitted, defaults to MERGE. NOTE: when merging\nwith a merge queue any input value for merge method is ignored.

", "type": "PullRequestMergeMethod", "id": "pullrequestmergemethod", "kind": "enums", @@ -91808,4 +92221,4 @@ "description": "

A valid x509 certificate string.

" } ] -} \ No newline at end of file +} diff --git a/lib/graphql/static/schema-ghae.json b/lib/graphql/static/schema-ghae.json index 1c78df5a32..63345c1dc6 100644 --- a/lib/graphql/static/schema-ghae.json +++ b/lib/graphql/static/schema-ghae.json @@ -11479,6 +11479,161 @@ } ] }, + { + "name": "Comparison", + "kind": "objects", + "id": "comparison", + "href": "/graphql/reference/objects#comparison", + "description": "

Represents a comparison between two commit revisions.

", + "implements": [ + { + "name": "Node", + "id": "node", + "href": "/graphql/reference/interfaces#node" + } + ], + "fields": [ + { + "name": "aheadBy", + "description": "

The number of commits ahead of the base branch.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "baseTarget", + "description": "

The base revision of this comparison.

", + "type": "GitObject!", + "id": "gitobject", + "kind": "interfaces", + "href": "/graphql/reference/interfaces#gitobject" + }, + { + "name": "behindBy", + "description": "

The number of commits behind the base branch.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "commits", + "description": "

The commits which compose this comparison.

", + "type": "ComparisonCommitConnection!", + "id": "comparisoncommitconnection", + "kind": "objects", + "href": "/graphql/reference/objects#comparisoncommitconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + } + ] + }, + { + "name": "headTarget", + "description": "

The head revision of this comparison.

", + "type": "GitObject!", + "id": "gitobject", + "kind": "interfaces", + "href": "/graphql/reference/interfaces#gitobject" + }, + { + "name": "status", + "description": "

The status of this comparison.

", + "type": "ComparisonStatus!", + "id": "comparisonstatus", + "kind": "enums", + "href": "/graphql/reference/enums#comparisonstatus" + } + ] + }, + { + "name": "ComparisonCommitConnection", + "kind": "objects", + "id": "comparisoncommitconnection", + "href": "/graphql/reference/objects#comparisoncommitconnection", + "description": "

The connection type for Commit.

", + "fields": [ + { + "name": "authorCount", + "description": "

The total count of authors and co-authors across all commits.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "edges", + "description": "

A list of edges.

", + "type": "[CommitEdge]", + "id": "commitedge", + "kind": "objects", + "href": "/graphql/reference/objects#commitedge" + }, + { + "name": "nodes", + "description": "

A list of nodes.

", + "type": "[Commit]", + "id": "commit", + "kind": "objects", + "href": "/graphql/reference/objects#commit" + }, + { + "name": "pageInfo", + "description": "

Information to aid in pagination.

", + "type": "PageInfo!", + "id": "pageinfo", + "kind": "objects", + "href": "/graphql/reference/objects#pageinfo" + }, + { + "name": "totalCount", + "description": "

Identifies the total count of items in the connection.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + ] + }, { "name": "ConnectedEvent", "kind": "objects", @@ -39979,6 +40134,26 @@ "kind": "objects", "href": "/graphql/reference/objects#branchprotectionrule" }, + { + "name": "compare", + "description": "

Compares the current ref as a base ref to another head ref, if the comparison can be made.

", + "type": "Comparison", + "id": "comparison", + "kind": "objects", + "href": "/graphql/reference/objects#comparison", + "arguments": [ + { + "name": "headRef", + "description": "

The head ref to compare against.

", + "type": { + "name": "String!", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + } + ] + }, { "name": "name", "description": "

The ref name.

", @@ -54887,6 +55062,14 @@ "kind": "scalars", "href": "/graphql/reference/scalars#boolean" }, + { + "name": "language", + "description": "

The programming language this file is written in.

", + "type": "Language", + "id": "language", + "kind": "objects", + "href": "/graphql/reference/objects#language" + }, { "name": "lineCount", "description": "

Number of lines in the file.

", @@ -60980,6 +61163,31 @@ } ] }, + { + "name": "ComparisonStatus", + "kind": "enums", + "id": "comparisonstatus", + "href": "/graphql/reference/enums#comparisonstatus", + "description": "

The status of a git comparison between two refs.

", + "values": [ + { + "name": "AHEAD", + "description": "

The head ref is ahead of the base ref.

" + }, + { + "name": "BEHIND", + "description": "

The head ref is behind the base ref.

" + }, + { + "name": "DIVERGED", + "description": "

The head ref is both ahead and behind of the base ref, indicating git history has diverged.

" + }, + { + "name": "IDENTICAL", + "description": "

The head ref and base ref are identical.

" + } + ] + }, { "name": "ContributionLevel", "kind": "enums", @@ -69616,7 +69824,7 @@ }, { "name": "commitBody", - "description": "

Commit body to use for the commit when the PR is mergable; if omitted, a default message will be used.

", + "description": "

Commit body to use for the commit when the PR is mergable; if omitted, a\ndefault message will be used. NOTE: when merging with a merge queue any input\nvalue for commit message is ignored.

", "type": "String", "id": "string", "kind": "scalars", @@ -69624,7 +69832,7 @@ }, { "name": "commitHeadline", - "description": "

Commit headline to use for the commit when the PR is mergable; if omitted, a default message will be used.

", + "description": "

Commit headline to use for the commit when the PR is mergable; if omitted, a\ndefault message will be used. NOTE: when merging with a merge queue any input\nvalue for commit headline is ignored.

", "type": "String", "id": "string", "kind": "scalars", @@ -69632,7 +69840,7 @@ }, { "name": "mergeMethod", - "description": "

The merge method to use. If omitted, defaults to MERGE.

", + "description": "

The merge method to use. If omitted, defaults to MERGE. NOTE: when merging\nwith a merge queue any input value for merge method is ignored.

", "type": "PullRequestMergeMethod", "id": "pullrequestmergemethod", "kind": "enums", diff --git a/lib/graphql/static/schema-ghec.json b/lib/graphql/static/schema-ghec.json index 3bb4f3b736..93975ddd30 100644 --- a/lib/graphql/static/schema-ghec.json +++ b/lib/graphql/static/schema-ghec.json @@ -13186,6 +13186,161 @@ } ] }, + { + "name": "Comparison", + "kind": "objects", + "id": "comparison", + "href": "/graphql/reference/objects#comparison", + "description": "

Represents a comparison between two commit revisions.

", + "implements": [ + { + "name": "Node", + "id": "node", + "href": "/graphql/reference/interfaces#node" + } + ], + "fields": [ + { + "name": "aheadBy", + "description": "

The number of commits ahead of the base branch.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "baseTarget", + "description": "

The base revision of this comparison.

", + "type": "GitObject!", + "id": "gitobject", + "kind": "interfaces", + "href": "/graphql/reference/interfaces#gitobject" + }, + { + "name": "behindBy", + "description": "

The number of commits behind the base branch.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "commits", + "description": "

The commits which compose this comparison.

", + "type": "ComparisonCommitConnection!", + "id": "comparisoncommitconnection", + "kind": "objects", + "href": "/graphql/reference/objects#comparisoncommitconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + } + ] + }, + { + "name": "headTarget", + "description": "

The head revision of this comparison.

", + "type": "GitObject!", + "id": "gitobject", + "kind": "interfaces", + "href": "/graphql/reference/interfaces#gitobject" + }, + { + "name": "status", + "description": "

The status of this comparison.

", + "type": "ComparisonStatus!", + "id": "comparisonstatus", + "kind": "enums", + "href": "/graphql/reference/enums#comparisonstatus" + } + ] + }, + { + "name": "ComparisonCommitConnection", + "kind": "objects", + "id": "comparisoncommitconnection", + "href": "/graphql/reference/objects#comparisoncommitconnection", + "description": "

The connection type for Commit.

", + "fields": [ + { + "name": "authorCount", + "description": "

The total count of authors and co-authors across all commits.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + }, + { + "name": "edges", + "description": "

A list of edges.

", + "type": "[CommitEdge]", + "id": "commitedge", + "kind": "objects", + "href": "/graphql/reference/objects#commitedge" + }, + { + "name": "nodes", + "description": "

A list of nodes.

", + "type": "[Commit]", + "id": "commit", + "kind": "objects", + "href": "/graphql/reference/objects#commit" + }, + { + "name": "pageInfo", + "description": "

Information to aid in pagination.

", + "type": "PageInfo!", + "id": "pageinfo", + "kind": "objects", + "href": "/graphql/reference/objects#pageinfo" + }, + { + "name": "totalCount", + "description": "

Identifies the total count of items in the connection.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + ] + }, { "name": "ConnectedEvent", "kind": "objects", @@ -15337,7 +15492,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15417,7 +15572,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15479,7 +15634,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15525,7 +15680,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15660,7 +15815,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -15722,7 +15877,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -43789,6 +43944,97 @@ } ] }, + { + "name": "ProjectV2SortByField", + "kind": "objects", + "id": "projectv2sortbyfield", + "href": "/graphql/reference/objects#projectv2sortbyfield", + "description": "

Represents a sort by field and direction.

", + "fields": [ + { + "name": "direction", + "description": "

The direction of the sorting. Possible values are ASC and DESC.

", + "type": "OrderDirection!", + "id": "orderdirection", + "kind": "enums", + "href": "/graphql/reference/enums#orderdirection" + }, + { + "name": "field", + "description": "

The field by which items are sorted.

", + "type": "ProjectV2FieldConfiguration!", + "id": "projectv2fieldconfiguration", + "kind": "unions", + "href": "/graphql/reference/unions#projectv2fieldconfiguration" + } + ] + }, + { + "name": "ProjectV2SortByFieldConnection", + "kind": "objects", + "id": "projectv2sortbyfieldconnection", + "href": "/graphql/reference/objects#projectv2sortbyfieldconnection", + "description": "

The connection type for ProjectV2SortByField.

", + "fields": [ + { + "name": "edges", + "description": "

A list of edges.

", + "type": "[ProjectV2SortByFieldEdge]", + "id": "projectv2sortbyfieldedge", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2sortbyfieldedge" + }, + { + "name": "nodes", + "description": "

A list of nodes.

", + "type": "[ProjectV2SortByField]", + "id": "projectv2sortbyfield", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2sortbyfield" + }, + { + "name": "pageInfo", + "description": "

Information to aid in pagination.

", + "type": "PageInfo!", + "id": "pageinfo", + "kind": "objects", + "href": "/graphql/reference/objects#pageinfo" + }, + { + "name": "totalCount", + "description": "

Identifies the total count of items in the connection.

", + "type": "Int!", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + ] + }, + { + "name": "ProjectV2SortByFieldEdge", + "kind": "objects", + "id": "projectv2sortbyfieldedge", + "href": "/graphql/reference/objects#projectv2sortbyfieldedge", + "description": "

An edge in a connection.

", + "fields": [ + { + "name": "cursor", + "description": "

A cursor for use in pagination.

", + "type": "String!", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + }, + { + "name": "node", + "description": "

The item at the end of the edge.

", + "type": "ProjectV2SortByField", + "id": "projectv2sortbyfield", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2sortbyfield" + } + ] + }, { "name": "ProjectV2View", "kind": "objects", @@ -44048,6 +44294,58 @@ "id": "projectv2sortbyconnection", "kind": "objects", "href": "/graphql/reference/objects#projectv2sortbyconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + } + ], + "isDeprecated": true, + "deprecationReason": "

The ProjectV2View#sort_by API is deprecated in favour of the more capable ProjectV2View#sort_by_fields API. Check out the ProjectV2View#sort_by_fields API as an example for the more capable alternative. Removal on 2023-04-01 UTC.

" + }, + { + "name": "sortByFields", + "description": "

The view's sort-by config.

", + "type": "ProjectV2SortByFieldConnection", + "id": "projectv2sortbyfieldconnection", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2sortbyfieldconnection", "arguments": [ { "name": "after", @@ -44106,6 +44404,68 @@ "id": "projectv2fieldconnection", "kind": "objects", "href": "/graphql/reference/objects#projectv2fieldconnection", + "arguments": [ + { + "name": "after", + "description": "

Returns the elements in the list that come after the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "before", + "description": "

Returns the elements in the list that come before the specified cursor.

", + "type": { + "name": "String", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + }, + { + "name": "first", + "description": "

Returns the first n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "last", + "description": "

Returns the last n elements from the list.

", + "type": { + "name": "Int", + "id": "int", + "kind": "scalars", + "href": "/graphql/reference/scalars#int" + } + }, + { + "name": "orderBy", + "description": "

Ordering options for the project v2 fields returned from the connection.

", + "type": { + "name": "ProjectV2FieldOrder", + "id": "projectv2fieldorder", + "kind": "input-objects", + "href": "/graphql/reference/input-objects#projectv2fieldorder" + } + } + ], + "isDeprecated": true, + "deprecationReason": "

The ProjectV2View#vertical_group_by API is deprecated in favour of the more capable ProjectV2View#vertical_group_by_fields API. Check out the ProjectV2View#vertical_group_by_fields API as an example for the more capable alternative. Removal on 2023-04-01 UTC.

" + }, + { + "name": "verticalGroupByFields", + "description": "

The view's vertical-group-by field.

", + "type": "ProjectV2FieldConfigurationConnection", + "id": "projectv2fieldconfigurationconnection", + "kind": "objects", + "href": "/graphql/reference/objects#projectv2fieldconfigurationconnection", "arguments": [ { "name": "after", @@ -49797,6 +50157,26 @@ "kind": "objects", "href": "/graphql/reference/objects#branchprotectionrule" }, + { + "name": "compare", + "description": "

Compares the current ref as a base ref to another head ref, if the comparison can be made.

", + "type": "Comparison", + "id": "comparison", + "kind": "objects", + "href": "/graphql/reference/objects#comparison", + "arguments": [ + { + "name": "headRef", + "description": "

The head ref to compare against.

", + "type": { + "name": "String!", + "id": "string", + "kind": "scalars", + "href": "/graphql/reference/scalars#string" + } + } + ] + }, { "name": "name", "description": "

The ref name.

", @@ -55260,7 +55640,7 @@ "DependencyGraphPackageRelease.dependencies" ], "owning_teams": [ - "@github/dsp-dependency-graph" + "@github/dependency-graph" ], "accept_header": "application/vnd.github.hawkgirl-preview+json", "href": "/graphql/overview/schema-previews#access-to-a-repositories-dependency-graph-preview" @@ -66363,6 +66743,14 @@ "kind": "scalars", "href": "/graphql/reference/scalars#boolean" }, + { + "name": "language", + "description": "

The programming language this file is written in.

", + "type": "Language", + "id": "language", + "kind": "objects", + "href": "/graphql/reference/objects#language" + }, { "name": "lineCount", "description": "

Number of lines in the file.

", @@ -74543,6 +74931,31 @@ } ] }, + { + "name": "ComparisonStatus", + "kind": "enums", + "id": "comparisonstatus", + "href": "/graphql/reference/enums#comparisonstatus", + "description": "

The status of a git comparison between two refs.

", + "values": [ + { + "name": "AHEAD", + "description": "

The head ref is ahead of the base ref.

" + }, + { + "name": "BEHIND", + "description": "

The head ref is behind the base ref.

" + }, + { + "name": "DIVERGED", + "description": "

The head ref is both ahead and behind of the base ref, indicating git history has diverged.

" + }, + { + "name": "IDENTICAL", + "description": "

The head ref and base ref are identical.

" + } + ] + }, { "name": "ContributionLevel", "kind": "enums", @@ -85190,7 +85603,7 @@ }, { "name": "commitBody", - "description": "

Commit body to use for the commit when the PR is mergable; if omitted, a default message will be used.

", + "description": "

Commit body to use for the commit when the PR is mergable; if omitted, a\ndefault message will be used. NOTE: when merging with a merge queue any input\nvalue for commit message is ignored.

", "type": "String", "id": "string", "kind": "scalars", @@ -85198,7 +85611,7 @@ }, { "name": "commitHeadline", - "description": "

Commit headline to use for the commit when the PR is mergable; if omitted, a default message will be used.

", + "description": "

Commit headline to use for the commit when the PR is mergable; if omitted, a\ndefault message will be used. NOTE: when merging with a merge queue any input\nvalue for commit headline is ignored.

", "type": "String", "id": "string", "kind": "scalars", @@ -85206,7 +85619,7 @@ }, { "name": "mergeMethod", - "description": "

The merge method to use. If omitted, defaults to MERGE.

", + "description": "

The merge method to use. If omitted, defaults to MERGE. NOTE: when merging\nwith a merge queue any input value for merge method is ignored.

", "type": "PullRequestMergeMethod", "id": "pullrequestmergemethod", "kind": "enums", @@ -91808,4 +92221,4 @@ "description": "

A valid x509 certificate string.

" } ] -} \ No newline at end of file +} diff --git a/lib/graphql/static/upcoming-changes.json b/lib/graphql/static/upcoming-changes.json index 2b565fd3b8..e485bf015a 100644 --- a/lib/graphql/static/upcoming-changes.json +++ b/lib/graphql/static/upcoming-changes.json @@ -1,6 +1,22 @@ { "dotcom": { "2023-04-01": [ + { + "location": "ProjectV2View.verticalGroupBy", + "description": "

verticalGroupBy will be removed. Check out the ProjectV2View#vertical_group_by_fields API as an example for the more capable alternative.

", + "reason": "

The ProjectV2View#vertical_group_by API is deprecated in favour of the more capable ProjectV2View#vertical_group_by_fields API.

", + "date": "2023-04-01", + "criticality": "breaking", + "owner": "traumverloren" + }, + { + "location": "ProjectV2View.sortBy", + "description": "

sortBy will be removed. Check out the ProjectV2View#sort_by_fields API as an example for the more capable alternative.

", + "reason": "

The ProjectV2View#sort_by API is deprecated in favour of the more capable ProjectV2View#sort_by_fields API.

", + "date": "2023-04-01", + "criticality": "breaking", + "owner": "traumverloren" + }, { "location": "ProjectV2View.groupBy", "description": "

groupBy will be removed. Check out the ProjectV2View#group_by_fields API as an example for the more capable alternative.

", @@ -1467,6 +1483,22 @@ }, "ghec": { "2023-04-01": [ + { + "location": "ProjectV2View.verticalGroupBy", + "description": "

verticalGroupBy will be removed. Check out the ProjectV2View#vertical_group_by_fields API as an example for the more capable alternative.

", + "reason": "

The ProjectV2View#vertical_group_by API is deprecated in favour of the more capable ProjectV2View#vertical_group_by_fields API.

", + "date": "2023-04-01", + "criticality": "breaking", + "owner": "traumverloren" + }, + { + "location": "ProjectV2View.sortBy", + "description": "

sortBy will be removed. Check out the ProjectV2View#sort_by_fields API as an example for the more capable alternative.

", + "reason": "

The ProjectV2View#sort_by API is deprecated in favour of the more capable ProjectV2View#sort_by_fields API.

", + "date": "2023-04-01", + "criticality": "breaking", + "owner": "traumverloren" + }, { "location": "ProjectV2View.groupBy", "description": "

groupBy will be removed. Check out the ProjectV2View#group_by_fields API as an example for the more capable alternative.

", @@ -3647,6 +3679,22 @@ }, "ghae": { "2023-04-01": [ + { + "location": "ProjectV2View.verticalGroupBy", + "description": "

verticalGroupBy will be removed. Check out the ProjectV2View#vertical_group_by_fields API as an example for the more capable alternative.

", + "reason": "

The ProjectV2View#vertical_group_by API is deprecated in favour of the more capable ProjectV2View#vertical_group_by_fields API.

", + "date": "2023-04-01", + "criticality": "breaking", + "owner": "traumverloren" + }, + { + "location": "ProjectV2View.sortBy", + "description": "

sortBy will be removed. Check out the ProjectV2View#sort_by_fields API as an example for the more capable alternative.

", + "reason": "

The ProjectV2View#sort_by API is deprecated in favour of the more capable ProjectV2View#sort_by_fields API.

", + "date": "2023-04-01", + "criticality": "breaking", + "owner": "traumverloren" + }, { "location": "ProjectV2View.groupBy", "description": "

groupBy will be removed. Check out the ProjectV2View#group_by_fields API as an example for the more capable alternative.

", diff --git a/lib/languages.js b/lib/languages.js index 9b9fbeed31..93122e7405 100644 --- a/lib/languages.js +++ b/lib/languages.js @@ -1,5 +1,8 @@ // see also languages-schema.js +import { TRANSLATIONS_ROOT } from './constants.js' +import path from 'path' + const languages = { en: { name: 'English', @@ -13,7 +16,7 @@ const languages = { code: 'cn', hreflang: 'zh-Hans', redirectPatterns: [/^\/zh-\w{2}/, /^\/zh/], - dir: 'translations/zh-CN', + dir: path.join(TRANSLATIONS_ROOT, 'zh-CN'), }, ja: { name: 'Japanese', @@ -21,21 +24,21 @@ const languages = { code: 'ja', hreflang: 'ja', redirectPatterns: [/^\/jp/], - dir: 'translations/ja-JP', + dir: path.join(TRANSLATIONS_ROOT, 'ja-JP'), }, es: { name: 'Spanish', nativeName: 'Español', code: 'es', hreflang: 'es', - dir: 'translations/es-ES', + dir: path.join(TRANSLATIONS_ROOT, 'es-ES'), }, pt: { name: 'Portuguese', nativeName: 'Português do Brasil', code: 'pt', hreflang: 'pt', - dir: 'translations/pt-BR', + dir: path.join(TRANSLATIONS_ROOT, 'pt-BR'), }, } diff --git a/lib/page-data.js b/lib/page-data.js index 4b37758507..e6b141c873 100644 --- a/lib/page-data.js +++ b/lib/page-data.js @@ -222,7 +222,7 @@ export async function correctTranslationOrphans(pageList, basePath = null) { // Filter out all non-English pages that appear to be excess. // E.g. if an English doc was renamed from `content/foo.md` to - // `content/bar.md` what will happen is that `translations/*/content/foo.md` + // `content/bar.md` what will happen is that `TRANSLATIONS_ROOT/*/content/foo.md` // will still linger around and we want to remove that even if it was // scooped up from disk. const newPageList = [] @@ -263,7 +263,7 @@ export async function correctTranslationOrphans(pageList, basePath = null) { // to create them for this language. But the trick is that we // use the English relative path so it can have something to read. // For example, if we have figured out that - // `translations/ja-JP/content/foo.md` doesn't exist, we pretend + // `TRANSLATIONS_ROOT/ja-JP/content/foo.md` doesn't exist, we pretend // that we can use `foo.md` and the base path of `content/`. pageLoadPromises.push( Page.init({ diff --git a/lib/redirects/permalinks.js b/lib/redirects/permalinks.js index 216fd48ae4..1fa98e70de 100644 --- a/lib/redirects/permalinks.js +++ b/lib/redirects/permalinks.js @@ -3,6 +3,7 @@ import { getPathWithoutVersion } from '../path-utils.js' export default function permalinkRedirects(permalinks, redirectFrom) { const redirects = {} + if (!permalinks.length) return redirects // The following is handling for versionless redirect fallbacks! // We put an entry into `redirects` without any version prefix that goes to the first supported diff --git a/lib/redirects/static/client-side-rest-api-redirects.json b/lib/redirects/static/client-side-rest-api-redirects.json index 1d4bf57818..c8d9dca371 100644 --- a/lib/redirects/static/client-side-rest-api-redirects.json +++ b/lib/redirects/static/client-side-rest-api-redirects.json @@ -336,6 +336,8 @@ "/rest/orgs/#get-a-custom-role": "/rest/orgs/custom-roles#get-a-custom-role", "/rest/orgs#update-a-custom-role": "/rest/orgs/custom-roles#update-a-custom-role", "/rest/orgs#delete-a-custom-role": "/rest/orgs/custom-roles#delete-a-custom-role", + "/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization": "/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization", + "/rest/dependabot#alerts": "/rest/dependabot/alerts", "/rest/dependabot#list-organization-secrets": "/rest/dependabot/secrets#list-organization-secrets", "/rest/dependabot#secrets": "/rest/dependabot/secrets", "/rest/dependabot#get-an-organization-public-key": "/rest/dependabot/secrets#get-an-organization-public-key", @@ -594,7 +596,6 @@ "/rest/repos#delete-a-file": "/rest/repos/contents#delete-a-file", "/rest/repos#list-repository-contributors": "/rest/repos/repos#list-repository-contributors", "/rest/dependabot#list-dependabot-alerts-for-a-repository": "/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository", - "/rest/dependabot#alerts": "/rest/dependabot/alerts", "/rest/dependabot#get-a-dependabot-alert": "/rest/dependabot/alerts#get-a-dependabot-alert", "/rest/dependabot#update-a-dependabot-alert": "/rest/dependabot/alerts#update-a-dependabot-alert", "/rest/dependabot#list-repository-secrets": "/rest/dependabot/secrets#list-repository-secrets", diff --git a/lib/rest/static/apps/enabled-for-apps.json b/lib/rest/static/apps/enabled-for-apps.json index 24d0750050..5874680c9f 100644 --- a/lib/rest/static/apps/enabled-for-apps.json +++ b/lib/rest/static/apps/enabled-for-apps.json @@ -1355,6 +1355,12 @@ } ], "dependabot": [ + { + "slug": "list-dependabot-alerts-for-an-organization", + "subcategory": "alerts", + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/alerts" + }, { "slug": "list-organization-secrets", "subcategory": "secrets", @@ -5138,6 +5144,12 @@ } ], "dependabot": [ + { + "slug": "list-dependabot-alerts-for-an-organization", + "subcategory": "alerts", + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/alerts" + }, { "slug": "list-organization-secrets", "subcategory": "secrets", diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index 7244177347..6c1c540924 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -130069,6 +130069,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -130520,6 +130525,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -130971,6 +130981,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "my-app" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -139176,7 +139191,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -148134,7 +148158,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -151225,10 +151258,6 @@ "httpStatusCode": "200", "description": "

OK

" }, - { - "httpStatusCode": "403", - "description": "

Response if GitHub Advanced Security is not enabled for this repository

" - }, { "httpStatusCode": "404", "description": "

Resource not found

" @@ -152634,10 +152663,6 @@ "httpStatusCode": "200", "description": "

OK

" }, - { - "httpStatusCode": "403", - "description": "

Response if GitHub Advanced Security is not enabled for this repository

" - }, { "httpStatusCode": "404", "description": "

Resource not found

" @@ -161903,6 +161928,10 @@ { "httpStatusCode": "404", "description": "

Resource not found

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" } ], "subcategory": "codespaces" @@ -165674,6 +165703,10 @@ { "httpStatusCode": "404", "description": "

Resource not found

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" } ], "subcategory": "codespaces" @@ -170985,6 +171018,10 @@ { "httpStatusCode": "404", "description": "

Resource not found

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" } ], "subcategory": "codespaces" @@ -186272,7 +186309,7 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "201", + "key": "default", "request": { "contentType": "application/json", "description": "Example 1: Status Code 201", @@ -186289,7 +186326,16 @@ }, "response": { "statusCode": "201", - "description": "

Response when creating a secret

" + "contentType": "application/json", + "description": "

Response when creating a secret

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } }, { @@ -186731,7 +186777,7 @@ "enabledForGitHubApps": false, "codeExamples": [ { - "key": "201", + "key": "default", "request": { "contentType": "application/json", "description": "Example 1: Status Code 201", @@ -186750,7 +186796,16 @@ }, "response": { "statusCode": "201", - "description": "

Response after successfully creaing a secret

" + "contentType": "application/json", + "description": "

Response after successfully creating a secret

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } }, { @@ -186781,7 +186836,7 @@ "statusCodes": [ { "httpStatusCode": "201", - "description": "

Response after successfully creaing a secret

" + "description": "

Response after successfully creating a secret

" }, { "httpStatusCode": "204", @@ -208579,6 +208634,1748 @@ }, "dependabot": { "alerts": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/alerts", + "title": "List Dependabot alerts for an organization", + "category": "dependabot", + "subcategory": "alerts", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "schema": { + "type": "string" + } + }, + { + "name": "severity", + "in": "query", + "description": "

A comma-separated list of severities. If specified, only alerts with these severities will be returned.

\n

Can be: low, medium, high, critical

", + "schema": { + "type": "string" + } + }, + { + "name": "ecosystem", + "in": "query", + "description": "

A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned.

\n

Can be: composer, go, maven, npm, nuget, pip, pub, rubygems, rust

", + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "query", + "description": "

A comma-separated list of package names. If specified, only alerts for these packages will be returned.

", + "schema": { + "type": "string" + } + }, + { + "name": "scope", + "in": "query", + "description": "

The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned.

", + "schema": { + "type": "string", + "enum": [ + "development", + "runtime" + ] + } + }, + { + "name": "sort", + "in": "query", + "description": "

The property by which to sort the results.\ncreated means when the alert was created.\nupdated means when the alert's state last changed.

", + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ], + "default": "created" + } + }, + { + "name": "direction", + "description": "

The direction to sort the results by.

", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + } + }, + { + "name": "before", + "description": "

A cursor, as given in the Link header. If specified, the query only searches for results before this cursor.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "description": "

A cursor, as given in the Link header. If specified, the query only searches for results after this cursor.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "first", + "description": "

The number of results per page (max 100), starting from the first matching result.\nThis parameter must not be used in combination with last.

", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + } + }, + { + "name": "last", + "description": "

The number of results per page (max 100), starting from the last matching result.\nThis parameter must not be used in combination with first.

", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100 + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": [ + { + "number": 2, + "state": "dismissed", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-rf4j-j272-fj86", + "cve_id": "CVE-2018-6188", + "summary": "Django allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive", + "description": "django.contrib.auth.forms.AuthenticationForm in Django 2.0 before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 1.11.8, < 1.11.10", + "first_patched_version": { + "identifier": "1.11.10" + } + } + ], + "severity": "high", + "cvss": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 + }, + "cwes": [ + { + "cwe_id": "CWE-200", + "name": "Exposure of Sensitive Information to an Unauthorized Actor" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-rf4j-j272-fj86" + }, + { + "type": "CVE", + "value": "CVE-2018-6188" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2018-6188" + }, + { + "url": "https://github.com/advisories/GHSA-rf4j-j272-fj86" + }, + { + "url": "https://usn.ubuntu.com/3559-1/" + }, + { + "url": "https://www.djangoproject.com/weblog/2018/feb/01/security-releases/" + }, + { + "url": "http://www.securitytracker.com/id/1040422" + } + ], + "published_at": "2018-10-03T21:13:54Z", + "updated_at": "2022-04-26T18:35:37Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + "url": "https://api.github.com/repos/octo-org/octo-repo/dependabot/alerts/2", + "html_url": "https://github.com/octo-org/octo-repo/security/dependabot/2", + "created_at": "2022-06-15T07:43:03Z", + "updated_at": "2022-08-23T14:29:47Z", + "dismissed_at": "2022-08-23T14:29:47Z", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_reason": "tolerable_risk", + "dismissed_comment": "This alert is accurate but we use a sanitizer.", + "fixed_at": null, + "repository": { + "id": 217723378, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=", + "name": "octo-repo", + "full_name": "octo-org/octo-repo", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/octo-repo", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/octo-repo", + "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads", + "events_url": "https://api.github.com/repos/octo-org/octo-repo/events", + "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages", + "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges", + "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription", + "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags", + "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams", + "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}" + } + }, + { + "number": 1, + "state": "open", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-8f4m-hccc-8qph", + "cve_id": "CVE-2021-20191", + "summary": "Insertion of Sensitive Information into Log File in ansible", + "description": "A flaw was found in ansible. Credentials, such as secrets, are being disclosed in console log by default and not protected by no_log feature when using those modules. An attacker can take advantage of this information to steal those credentials. The highest threat from this vulnerability is to data confidentiality.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.9.0, < 2.9.18", + "first_patched_version": { + "identifier": "2.9.18" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.10.0, < 2.10.7", + "first_patched_version": { + "identifier": "2.10.7" + } + } + ], + "severity": "medium", + "cvss": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 + }, + "cwes": [ + { + "cwe_id": "CWE-532", + "name": "Insertion of Sensitive Information into Log File" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-8f4m-hccc-8qph" + }, + { + "type": "CVE", + "value": "CVE-2021-20191" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-20191" + }, + { + "url": "https://access.redhat.com/security/cve/cve-2021-20191" + }, + { + "url": "https://bugzilla.redhat.com/show_bug.cgi?id=1916813" + } + ], + "published_at": "2021-06-01T17:38:00Z", + "updated_at": "2021-08-12T23:06:00Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + "url": "https://api.github.com/repos/octo-org/hello-world/dependabot/alerts/1", + "html_url": "https://github.com/octo-org/hello-world/security/dependabot/1", + "created_at": "2022-06-14T15:21:52Z", + "updated_at": "2022-06-14T15:21:52Z", + "dismissed_at": null, + "dismissed_by": null, + "dismissed_reason": null, + "dismissed_comment": null, + "fixed_at": null, + "repository": { + "id": 664700648, + "node_id": "MDEwOlJlcG9zaXRvcnk2NjQ3MDA2NDg=", + "name": "hello-world", + "full_name": "octo-org/hello-world", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/hello-world", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/hello-world", + "archive_url": "https://api.github.com/repos/octo-org/hello-world/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/hello-world/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/hello-world/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/hello-world/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/hello-world/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/hello-world/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/hello-world/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/hello-world/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/hello-world/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/hello-world/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/hello-world/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/hello-world/downloads", + "events_url": "https://api.github.com/repos/octo-org/hello-world/events", + "forks_url": "https://api.github.com/repos/octo-org/hello-world/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/hello-world/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/hello-world/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/hello-world/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/hello-world/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/hello-world/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/hello-world/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/hello-world/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/hello-world/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/hello-world/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/hello-world/languages", + "merges_url": "https://api.github.com/repos/octo-org/hello-world/merges", + "milestones_url": "https://api.github.com/repos/octo-org/hello-world/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/hello-world/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/hello-world/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/hello-world/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/hello-world/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/hello-world/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/hello-world/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/hello-world/subscription", + "tags_url": "https://api.github.com/repos/octo-org/hello-world/tags", + "teams_url": "https://api.github.com/repos/octo-org/hello-world/teams", + "trees_url": "https://api.github.com/repos/octo-org/hello-world/git/trees{/sha}" + } + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "A Dependabot alert.", + "properties": { + "number": { + "type": "integer", + "description": "The security alert number.", + "readOnly": true + }, + "state": { + "type": "string", + "description": "The state of the Dependabot alert.", + "readOnly": true, + "enum": [ + "dismissed", + "fixed", + "open" + ] + }, + "dependency": { + "type": "object", + "description": "Details for the vulnerable dependency.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "manifest_path": { + "type": "string", + "description": "The full path to the dependency manifest file, relative to the root of the repository.", + "readOnly": true + }, + "scope": { + "type": [ + "string", + "null" + ], + "description": "The execution scope of the vulnerable dependency.", + "readOnly": true, + "enum": [ + "development", + "runtime", + null + ] + } + } + }, + "security_advisory": { + "type": "object", + "description": "Details for the GitHub Security Advisory.", + "readOnly": true, + "properties": { + "ghsa_id": { + "type": "string", + "description": "The unique GitHub Security Advisory ID assigned to the advisory.", + "readOnly": true + }, + "cve_id": { + "type": [ + "string", + "null" + ], + "description": "The unique CVE ID assigned to the advisory.", + "readOnly": true + }, + "summary": { + "type": "string", + "description": "A short, plain text summary of the advisory.", + "readOnly": true, + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A long-form Markdown-supported description of the advisory.", + "readOnly": true + }, + "vulnerabilities": { + "type": "array", + "description": "Vulnerable version range information for the advisory.", + "readOnly": true, + "items": { + "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true + }, + "first_patched_version": { + "type": [ + "object", + "null" + ], + "description": "Details pertaining to the package version that patches this vulnerability.", + "readOnly": true, + "properties": { + "identifier": { + "type": "string", + "description": "The package version that patches this vulnerability.", + "readOnly": true + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false + } + }, + "severity": { + "type": "string", + "description": "The severity of the advisory.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "cvss": { + "type": "object", + "description": "Details for the advisory pertaining to the Common Vulnerability Scoring System.", + "readOnly": true, + "properties": { + "score": { + "type": "number", + "description": "The overall CVSS score of the advisory.", + "minimum": 0, + "maximum": 10, + "readOnly": true + }, + "vector_string": { + "type": [ + "string", + "null" + ], + "description": "The full CVSS vector string for the advisory.", + "readOnly": true + } + }, + "required": [ + "score", + "vector_string" + ], + "additionalProperties": false + }, + "cwes": { + "type": "array", + "description": "Details for the advisory pertaining to Common Weakness Enumeration.", + "readOnly": true, + "items": { + "type": "object", + "description": "A CWE weakness assigned to the advisory.", + "readOnly": true, + "properties": { + "cwe_id": { + "type": "string", + "description": "The unique CWE ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The short, plain text name of the CWE.", + "readOnly": true + } + }, + "required": [ + "cwe_id", + "name" + ], + "additionalProperties": false + } + }, + "identifiers": { + "type": "array", + "description": "Values that identify this advisory among security information sources.", + "readOnly": true, + "items": { + "type": "object", + "description": "An advisory identifier.", + "readOnly": true, + "properties": { + "type": { + "type": "string", + "description": "The type of advisory identifier.", + "readOnly": true, + "enum": [ + "CVE", + "GHSA" + ] + }, + "value": { + "type": "string", + "description": "The value of the advisory identifer.", + "readOnly": true + } + }, + "required": [ + "value", + "type" + ], + "additionalProperties": false + } + }, + "references": { + "type": "array", + "description": "Links to additional advisory information.", + "readOnly": true, + "items": { + "type": "object", + "description": "A link to additional advisory information.", + "readOnly": true, + "properties": { + "url": { + "type": "string", + "description": "The URL of the reference.", + "format": "uri", + "readOnly": true + } + }, + "required": [ + "url" + ], + "additionalProperties": false + } + }, + "published_at": { + "type": "string", + "description": "The time that the advisory was published in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "The time that the advisory was last modified in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "withdrawn_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the advisory was withdrawn in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + } + }, + "required": [ + "ghsa_id", + "cve_id", + "summary", + "description", + "vulnerabilities", + "severity", + "cvss", + "cwes", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at" + ], + "additionalProperties": false + }, + "security_vulnerability": { + "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true + }, + "first_patched_version": { + "type": [ + "object", + "null" + ], + "description": "Details pertaining to the package version that patches this vulnerability.", + "readOnly": true, + "properties": { + "identifier": { + "type": "string", + "description": "The package version that patches this vulnerability.", + "readOnly": true + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false + }, + "url": { + "type": "string", + "description": "The REST API URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "html_url": { + "type": "string", + "description": "The GitHub URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "created_at": { + "type": "string", + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "dismissed_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "dismissed_by": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + ] + }, + "dismissed_reason": { + "type": [ + "string", + "null" + ], + "description": "The reason that the alert was dismissed.", + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk", + null + ] + }, + "dismissed_comment": { + "type": [ + "string", + "null" + ], + "description": "An optional comment associated with the alert's dismissal.", + "maxLength": 280 + }, + "fixed_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the alert was no longer detected and was considered fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "repository": { + "title": "Simple Repository", + "description": "Simple Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "A unique identifier of the repository.", + "examples": [ + 1296269 + ] + }, + "node_id": { + "type": "string", + "description": "The GraphQL identifier of the repository.", + "examples": [ + "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + ] + }, + "name": { + "type": "string", + "description": "The name of the repository.", + "examples": [ + "Hello-World" + ] + }, + "full_name": { + "type": "string", + "description": "The full, globally unique, name of the repository.", + "examples": [ + "octocat/Hello-World" + ] + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "type": "boolean", + "description": "Whether the repository is private." + }, + "html_url": { + "type": "string", + "format": "uri", + "description": "The URL to view the repository on GitHub.com.", + "examples": [ + "https://github.com/octocat/Hello-World" + ] + }, + "description": { + "type": [ + "string", + "null" + ], + "description": "The repository description.", + "examples": [ + "This your first repo!" + ] + }, + "fork": { + "type": "boolean", + "description": "Whether the repository is a fork." + }, + "url": { + "type": "string", + "format": "uri", + "description": "The URL to get more information about the repository from the GitHub API.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World" + ] + }, + "archive_url": { + "type": "string", + "description": "A template for the API URL to download the repository as an archive.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + ] + }, + "assignees_url": { + "type": "string", + "description": "A template for the API URL to list the available assignees for issues in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/assignees{/user}" + ] + }, + "blobs_url": { + "type": "string", + "description": "A template for the API URL to create or retrieve a raw Git blob in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + ] + }, + "branches_url": { + "type": "string", + "description": "A template for the API URL to get information about branches in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/branches{/branch}" + ] + }, + "collaborators_url": { + "type": "string", + "description": "A template for the API URL to get information about collaborators of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + ] + }, + "comments_url": { + "type": "string", + "description": "A template for the API URL to get information about comments on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/comments{/number}" + ] + }, + "commits_url": { + "type": "string", + "description": "A template for the API URL to get information about commits on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/commits{/sha}" + ] + }, + "compare_url": { + "type": "string", + "description": "A template for the API URL to compare two commits or refs.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + ] + }, + "contents_url": { + "type": "string", + "description": "A template for the API URL to get the contents of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/contents/{+path}" + ] + }, + "contributors_url": { + "type": "string", + "format": "uri", + "description": "A template for the API URL to list the contributors to the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/contributors" + ] + }, + "deployments_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the deployments of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/deployments" + ] + }, + "downloads_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the downloads on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/downloads" + ] + }, + "events_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the events of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/events" + ] + }, + "forks_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the forks of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/forks" + ] + }, + "git_commits_url": { + "type": "string", + "description": "A template for the API URL to get information about Git commits of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + ] + }, + "git_refs_url": { + "type": "string", + "description": "A template for the API URL to get information about Git refs of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + ] + }, + "git_tags_url": { + "type": "string", + "description": "A template for the API URL to get information about Git tags of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + ] + }, + "issue_comment_url": { + "type": "string", + "description": "A template for the API URL to get information about issue comments on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + ] + }, + "issue_events_url": { + "type": "string", + "description": "A template for the API URL to get information about issue events on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + ] + }, + "issues_url": { + "type": "string", + "description": "A template for the API URL to get information about issues on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues{/number}" + ] + }, + "keys_url": { + "type": "string", + "description": "A template for the API URL to get information about deploy keys on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + ] + }, + "labels_url": { + "type": "string", + "description": "A template for the API URL to get information about labels of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/labels{/name}" + ] + }, + "languages_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get information about the languages of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/languages" + ] + }, + "merges_url": { + "type": "string", + "format": "uri", + "description": "The API URL to merge branches in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/merges" + ] + }, + "milestones_url": { + "type": "string", + "description": "A template for the API URL to get information about milestones of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/milestones{/number}" + ] + }, + "notifications_url": { + "type": "string", + "description": "A template for the API URL to get information about notifications on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + ] + }, + "pulls_url": { + "type": "string", + "description": "A template for the API URL to get information about pull requests on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/pulls{/number}" + ] + }, + "releases_url": { + "type": "string", + "description": "A template for the API URL to get information about releases on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/releases{/id}" + ] + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the stargazers on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/stargazers" + ] + }, + "statuses_url": { + "type": "string", + "description": "A template for the API URL to get information about statuses of a commit.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + ] + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the subscribers on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/subscribers" + ] + }, + "subscription_url": { + "type": "string", + "format": "uri", + "description": "The API URL to subscribe to notifications for this repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/subscription" + ] + }, + "tags_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get information about tags on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/tags" + ] + }, + "teams_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the teams on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/teams" + ] + }, + "trees_url": { + "type": "string", + "description": "A template for the API URL to create or retrieve a raw Git tree of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + ] + }, + "hooks_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the hooks on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/hooks" + ] + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + } + }, + "required": [ + "number", + "state", + "dependency", + "security_advisory", + "security_vulnerability", + "url", + "html_url", + "created_at", + "updated_at", + "dismissed_at", + "dismissed_by", + "dismissed_reason", + "dismissed_comment", + "fixed_at", + "repository" + ], + "additionalProperties": false + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Lists Dependabot alerts for an organization.

\n

To use this endpoint, you must be an owner or security manager for the organization, and you must use an access token with the repo scope or security_events scope.

\n

For public repositories, you may instead use the public_repo scope.

\n

GitHub Apps must have Dependabot alerts read permission to use this endpoint.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "304", + "description": "

Not modified

" + }, + { + "httpStatusCode": "400", + "description": "

Bad Request

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "422", + "description": "

Validation failed, or the endpoint has been spammed.

" + } + ] + }, { "serverUrl": "https://api.github.com", "verb": "get", @@ -242177,7 +243974,11 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "limit": "collaborators_only", + "expiry": "one_month" + } }, "response": { "statusCode": "200", @@ -479111,8 +480912,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to read", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "read" + }, "parameters": { "team_id": "TEAM_ID", "project_id": "PROJECT_ID" @@ -482860,8 +484664,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to pull", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "push" + }, "parameters": { "team_id": "TEAM_ID", "owner": "OWNER", @@ -494973,8 +496780,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "description": "Example of updating blog and name", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } }, "response": { "statusCode": "200", @@ -501753,8 +503564,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating content type and URL", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "content_type": "json", + "url": "https://example.com/webhook" + }, "parameters": { "owner": "OWNER", "repo": "REPO", diff --git a/lib/rest/static/decorated/ghec.json b/lib/rest/static/decorated/ghec.json index 3182d60ba1..2ddeb77762 100644 --- a/lib/rest/static/decorated/ghec.json +++ b/lib/rest/static/decorated/ghec.json @@ -130519,6 +130519,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -130970,6 +130975,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -131421,6 +131431,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "my-app" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -139626,7 +139641,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -148584,7 +148608,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -151675,10 +151708,6 @@ "httpStatusCode": "200", "description": "

OK

" }, - { - "httpStatusCode": "403", - "description": "

Response if GitHub Advanced Security is not enabled for this repository

" - }, { "httpStatusCode": "404", "description": "

Resource not found

" @@ -153084,10 +153113,6 @@ "httpStatusCode": "200", "description": "

OK

" }, - { - "httpStatusCode": "403", - "description": "

Response if GitHub Advanced Security is not enabled for this repository

" - }, { "httpStatusCode": "404", "description": "

Resource not found

" @@ -162353,6 +162378,10 @@ { "httpStatusCode": "404", "description": "

Resource not found

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" } ], "subcategory": "codespaces" @@ -166124,6 +166153,10 @@ { "httpStatusCode": "404", "description": "

Resource not found

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" } ], "subcategory": "codespaces" @@ -171435,6 +171468,10 @@ { "httpStatusCode": "404", "description": "

Resource not found

" + }, + { + "httpStatusCode": "503", + "description": "

Service unavailable

" } ], "subcategory": "codespaces" @@ -186722,7 +186759,7 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "201", + "key": "default", "request": { "contentType": "application/json", "description": "Example 1: Status Code 201", @@ -186739,7 +186776,16 @@ }, "response": { "statusCode": "201", - "description": "

Response when creating a secret

" + "contentType": "application/json", + "description": "

Response when creating a secret

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } }, { @@ -187181,7 +187227,7 @@ "enabledForGitHubApps": false, "codeExamples": [ { - "key": "201", + "key": "default", "request": { "contentType": "application/json", "description": "Example 1: Status Code 201", @@ -187200,7 +187246,16 @@ }, "response": { "statusCode": "201", - "description": "

Response after successfully creaing a secret

" + "contentType": "application/json", + "description": "

Response after successfully creating a secret

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } }, { @@ -187231,7 +187286,7 @@ "statusCodes": [ { "httpStatusCode": "201", - "description": "

Response after successfully creaing a secret

" + "description": "

Response after successfully creating a secret

" }, { "httpStatusCode": "204", @@ -209029,6 +209084,1748 @@ }, "dependabot": { "alerts": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/dependabot/alerts", + "title": "List Dependabot alerts for an organization", + "category": "dependabot", + "subcategory": "alerts", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "schema": { + "type": "string" + } + }, + { + "name": "severity", + "in": "query", + "description": "

A comma-separated list of severities. If specified, only alerts with these severities will be returned.

\n

Can be: low, medium, high, critical

", + "schema": { + "type": "string" + } + }, + { + "name": "ecosystem", + "in": "query", + "description": "

A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned.

\n

Can be: composer, go, maven, npm, nuget, pip, pub, rubygems, rust

", + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "query", + "description": "

A comma-separated list of package names. If specified, only alerts for these packages will be returned.

", + "schema": { + "type": "string" + } + }, + { + "name": "scope", + "in": "query", + "description": "

The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned.

", + "schema": { + "type": "string", + "enum": [ + "development", + "runtime" + ] + } + }, + { + "name": "sort", + "in": "query", + "description": "

The property by which to sort the results.\ncreated means when the alert was created.\nupdated means when the alert's state last changed.

", + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ], + "default": "created" + } + }, + { + "name": "direction", + "description": "

The direction to sort the results by.

", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + } + }, + { + "name": "before", + "description": "

A cursor, as given in the Link header. If specified, the query only searches for results before this cursor.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "description": "

A cursor, as given in the Link header. If specified, the query only searches for results after this cursor.

", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "first", + "description": "

The number of results per page (max 100), starting from the first matching result.\nThis parameter must not be used in combination with last.

", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + } + }, + { + "name": "last", + "description": "

The number of results per page (max 100), starting from the last matching result.\nThis parameter must not be used in combination with first.

", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100 + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": [ + { + "number": 2, + "state": "dismissed", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-rf4j-j272-fj86", + "cve_id": "CVE-2018-6188", + "summary": "Django allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive", + "description": "django.contrib.auth.forms.AuthenticationForm in Django 2.0 before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 1.11.8, < 1.11.10", + "first_patched_version": { + "identifier": "1.11.10" + } + } + ], + "severity": "high", + "cvss": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 + }, + "cwes": [ + { + "cwe_id": "CWE-200", + "name": "Exposure of Sensitive Information to an Unauthorized Actor" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-rf4j-j272-fj86" + }, + { + "type": "CVE", + "value": "CVE-2018-6188" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2018-6188" + }, + { + "url": "https://github.com/advisories/GHSA-rf4j-j272-fj86" + }, + { + "url": "https://usn.ubuntu.com/3559-1/" + }, + { + "url": "https://www.djangoproject.com/weblog/2018/feb/01/security-releases/" + }, + { + "url": "http://www.securitytracker.com/id/1040422" + } + ], + "published_at": "2018-10-03T21:13:54Z", + "updated_at": "2022-04-26T18:35:37Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + "url": "https://api.github.com/repos/octo-org/octo-repo/dependabot/alerts/2", + "html_url": "https://github.com/octo-org/octo-repo/security/dependabot/2", + "created_at": "2022-06-15T07:43:03Z", + "updated_at": "2022-08-23T14:29:47Z", + "dismissed_at": "2022-08-23T14:29:47Z", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_reason": "tolerable_risk", + "dismissed_comment": "This alert is accurate but we use a sanitizer.", + "fixed_at": null, + "repository": { + "id": 217723378, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=", + "name": "octo-repo", + "full_name": "octo-org/octo-repo", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/octo-repo", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/octo-repo", + "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads", + "events_url": "https://api.github.com/repos/octo-org/octo-repo/events", + "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages", + "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges", + "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription", + "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags", + "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams", + "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}" + } + }, + { + "number": 1, + "state": "open", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-8f4m-hccc-8qph", + "cve_id": "CVE-2021-20191", + "summary": "Insertion of Sensitive Information into Log File in ansible", + "description": "A flaw was found in ansible. Credentials, such as secrets, are being disclosed in console log by default and not protected by no_log feature when using those modules. An attacker can take advantage of this information to steal those credentials. The highest threat from this vulnerability is to data confidentiality.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.9.0, < 2.9.18", + "first_patched_version": { + "identifier": "2.9.18" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.10.0, < 2.10.7", + "first_patched_version": { + "identifier": "2.10.7" + } + } + ], + "severity": "medium", + "cvss": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 + }, + "cwes": [ + { + "cwe_id": "CWE-532", + "name": "Insertion of Sensitive Information into Log File" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-8f4m-hccc-8qph" + }, + { + "type": "CVE", + "value": "CVE-2021-20191" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-20191" + }, + { + "url": "https://access.redhat.com/security/cve/cve-2021-20191" + }, + { + "url": "https://bugzilla.redhat.com/show_bug.cgi?id=1916813" + } + ], + "published_at": "2021-06-01T17:38:00Z", + "updated_at": "2021-08-12T23:06:00Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + "url": "https://api.github.com/repos/octo-org/hello-world/dependabot/alerts/1", + "html_url": "https://github.com/octo-org/hello-world/security/dependabot/1", + "created_at": "2022-06-14T15:21:52Z", + "updated_at": "2022-06-14T15:21:52Z", + "dismissed_at": null, + "dismissed_by": null, + "dismissed_reason": null, + "dismissed_comment": null, + "fixed_at": null, + "repository": { + "id": 664700648, + "node_id": "MDEwOlJlcG9zaXRvcnk2NjQ3MDA2NDg=", + "name": "hello-world", + "full_name": "octo-org/hello-world", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/hello-world", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/hello-world", + "archive_url": "https://api.github.com/repos/octo-org/hello-world/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/hello-world/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/hello-world/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/hello-world/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/hello-world/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/hello-world/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/hello-world/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/hello-world/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/hello-world/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/hello-world/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/hello-world/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/hello-world/downloads", + "events_url": "https://api.github.com/repos/octo-org/hello-world/events", + "forks_url": "https://api.github.com/repos/octo-org/hello-world/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/hello-world/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/hello-world/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/hello-world/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/hello-world/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/hello-world/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/hello-world/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/hello-world/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/hello-world/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/hello-world/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/hello-world/languages", + "merges_url": "https://api.github.com/repos/octo-org/hello-world/merges", + "milestones_url": "https://api.github.com/repos/octo-org/hello-world/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/hello-world/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/hello-world/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/hello-world/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/hello-world/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/hello-world/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/hello-world/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/hello-world/subscription", + "tags_url": "https://api.github.com/repos/octo-org/hello-world/tags", + "teams_url": "https://api.github.com/repos/octo-org/hello-world/teams", + "trees_url": "https://api.github.com/repos/octo-org/hello-world/git/trees{/sha}" + } + } + ], + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "A Dependabot alert.", + "properties": { + "number": { + "type": "integer", + "description": "The security alert number.", + "readOnly": true + }, + "state": { + "type": "string", + "description": "The state of the Dependabot alert.", + "readOnly": true, + "enum": [ + "dismissed", + "fixed", + "open" + ] + }, + "dependency": { + "type": "object", + "description": "Details for the vulnerable dependency.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "manifest_path": { + "type": "string", + "description": "The full path to the dependency manifest file, relative to the root of the repository.", + "readOnly": true + }, + "scope": { + "type": [ + "string", + "null" + ], + "description": "The execution scope of the vulnerable dependency.", + "readOnly": true, + "enum": [ + "development", + "runtime", + null + ] + } + } + }, + "security_advisory": { + "type": "object", + "description": "Details for the GitHub Security Advisory.", + "readOnly": true, + "properties": { + "ghsa_id": { + "type": "string", + "description": "The unique GitHub Security Advisory ID assigned to the advisory.", + "readOnly": true + }, + "cve_id": { + "type": [ + "string", + "null" + ], + "description": "The unique CVE ID assigned to the advisory.", + "readOnly": true + }, + "summary": { + "type": "string", + "description": "A short, plain text summary of the advisory.", + "readOnly": true, + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A long-form Markdown-supported description of the advisory.", + "readOnly": true + }, + "vulnerabilities": { + "type": "array", + "description": "Vulnerable version range information for the advisory.", + "readOnly": true, + "items": { + "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true + }, + "first_patched_version": { + "type": [ + "object", + "null" + ], + "description": "Details pertaining to the package version that patches this vulnerability.", + "readOnly": true, + "properties": { + "identifier": { + "type": "string", + "description": "The package version that patches this vulnerability.", + "readOnly": true + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false + } + }, + "severity": { + "type": "string", + "description": "The severity of the advisory.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "cvss": { + "type": "object", + "description": "Details for the advisory pertaining to the Common Vulnerability Scoring System.", + "readOnly": true, + "properties": { + "score": { + "type": "number", + "description": "The overall CVSS score of the advisory.", + "minimum": 0, + "maximum": 10, + "readOnly": true + }, + "vector_string": { + "type": [ + "string", + "null" + ], + "description": "The full CVSS vector string for the advisory.", + "readOnly": true + } + }, + "required": [ + "score", + "vector_string" + ], + "additionalProperties": false + }, + "cwes": { + "type": "array", + "description": "Details for the advisory pertaining to Common Weakness Enumeration.", + "readOnly": true, + "items": { + "type": "object", + "description": "A CWE weakness assigned to the advisory.", + "readOnly": true, + "properties": { + "cwe_id": { + "type": "string", + "description": "The unique CWE ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The short, plain text name of the CWE.", + "readOnly": true + } + }, + "required": [ + "cwe_id", + "name" + ], + "additionalProperties": false + } + }, + "identifiers": { + "type": "array", + "description": "Values that identify this advisory among security information sources.", + "readOnly": true, + "items": { + "type": "object", + "description": "An advisory identifier.", + "readOnly": true, + "properties": { + "type": { + "type": "string", + "description": "The type of advisory identifier.", + "readOnly": true, + "enum": [ + "CVE", + "GHSA" + ] + }, + "value": { + "type": "string", + "description": "The value of the advisory identifer.", + "readOnly": true + } + }, + "required": [ + "value", + "type" + ], + "additionalProperties": false + } + }, + "references": { + "type": "array", + "description": "Links to additional advisory information.", + "readOnly": true, + "items": { + "type": "object", + "description": "A link to additional advisory information.", + "readOnly": true, + "properties": { + "url": { + "type": "string", + "description": "The URL of the reference.", + "format": "uri", + "readOnly": true + } + }, + "required": [ + "url" + ], + "additionalProperties": false + } + }, + "published_at": { + "type": "string", + "description": "The time that the advisory was published in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "The time that the advisory was last modified in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "withdrawn_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the advisory was withdrawn in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + } + }, + "required": [ + "ghsa_id", + "cve_id", + "summary", + "description", + "vulnerabilities", + "severity", + "cvss", + "cwes", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at" + ], + "additionalProperties": false + }, + "security_vulnerability": { + "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true + }, + "first_patched_version": { + "type": [ + "object", + "null" + ], + "description": "Details pertaining to the package version that patches this vulnerability.", + "readOnly": true, + "properties": { + "identifier": { + "type": "string", + "description": "The package version that patches this vulnerability.", + "readOnly": true + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false + }, + "url": { + "type": "string", + "description": "The REST API URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "html_url": { + "type": "string", + "description": "The GitHub URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "created_at": { + "type": "string", + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "dismissed_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "dismissed_by": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + ] + }, + "dismissed_reason": { + "type": [ + "string", + "null" + ], + "description": "The reason that the alert was dismissed.", + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk", + null + ] + }, + "dismissed_comment": { + "type": [ + "string", + "null" + ], + "description": "An optional comment associated with the alert's dismissal.", + "maxLength": 280 + }, + "fixed_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the alert was no longer detected and was considered fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "repository": { + "title": "Simple Repository", + "description": "Simple Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "A unique identifier of the repository.", + "examples": [ + 1296269 + ] + }, + "node_id": { + "type": "string", + "description": "The GraphQL identifier of the repository.", + "examples": [ + "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + ] + }, + "name": { + "type": "string", + "description": "The name of the repository.", + "examples": [ + "Hello-World" + ] + }, + "full_name": { + "type": "string", + "description": "The full, globally unique, name of the repository.", + "examples": [ + "octocat/Hello-World" + ] + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "type": "boolean", + "description": "Whether the repository is private." + }, + "html_url": { + "type": "string", + "format": "uri", + "description": "The URL to view the repository on GitHub.com.", + "examples": [ + "https://github.com/octocat/Hello-World" + ] + }, + "description": { + "type": [ + "string", + "null" + ], + "description": "The repository description.", + "examples": [ + "This your first repo!" + ] + }, + "fork": { + "type": "boolean", + "description": "Whether the repository is a fork." + }, + "url": { + "type": "string", + "format": "uri", + "description": "The URL to get more information about the repository from the GitHub API.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World" + ] + }, + "archive_url": { + "type": "string", + "description": "A template for the API URL to download the repository as an archive.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + ] + }, + "assignees_url": { + "type": "string", + "description": "A template for the API URL to list the available assignees for issues in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/assignees{/user}" + ] + }, + "blobs_url": { + "type": "string", + "description": "A template for the API URL to create or retrieve a raw Git blob in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + ] + }, + "branches_url": { + "type": "string", + "description": "A template for the API URL to get information about branches in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/branches{/branch}" + ] + }, + "collaborators_url": { + "type": "string", + "description": "A template for the API URL to get information about collaborators of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + ] + }, + "comments_url": { + "type": "string", + "description": "A template for the API URL to get information about comments on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/comments{/number}" + ] + }, + "commits_url": { + "type": "string", + "description": "A template for the API URL to get information about commits on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/commits{/sha}" + ] + }, + "compare_url": { + "type": "string", + "description": "A template for the API URL to compare two commits or refs.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + ] + }, + "contents_url": { + "type": "string", + "description": "A template for the API URL to get the contents of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/contents/{+path}" + ] + }, + "contributors_url": { + "type": "string", + "format": "uri", + "description": "A template for the API URL to list the contributors to the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/contributors" + ] + }, + "deployments_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the deployments of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/deployments" + ] + }, + "downloads_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the downloads on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/downloads" + ] + }, + "events_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the events of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/events" + ] + }, + "forks_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the forks of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/forks" + ] + }, + "git_commits_url": { + "type": "string", + "description": "A template for the API URL to get information about Git commits of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + ] + }, + "git_refs_url": { + "type": "string", + "description": "A template for the API URL to get information about Git refs of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + ] + }, + "git_tags_url": { + "type": "string", + "description": "A template for the API URL to get information about Git tags of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + ] + }, + "issue_comment_url": { + "type": "string", + "description": "A template for the API URL to get information about issue comments on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + ] + }, + "issue_events_url": { + "type": "string", + "description": "A template for the API URL to get information about issue events on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + ] + }, + "issues_url": { + "type": "string", + "description": "A template for the API URL to get information about issues on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues{/number}" + ] + }, + "keys_url": { + "type": "string", + "description": "A template for the API URL to get information about deploy keys on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + ] + }, + "labels_url": { + "type": "string", + "description": "A template for the API URL to get information about labels of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/labels{/name}" + ] + }, + "languages_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get information about the languages of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/languages" + ] + }, + "merges_url": { + "type": "string", + "format": "uri", + "description": "The API URL to merge branches in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/merges" + ] + }, + "milestones_url": { + "type": "string", + "description": "A template for the API URL to get information about milestones of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/milestones{/number}" + ] + }, + "notifications_url": { + "type": "string", + "description": "A template for the API URL to get information about notifications on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + ] + }, + "pulls_url": { + "type": "string", + "description": "A template for the API URL to get information about pull requests on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/pulls{/number}" + ] + }, + "releases_url": { + "type": "string", + "description": "A template for the API URL to get information about releases on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/releases{/id}" + ] + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the stargazers on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/stargazers" + ] + }, + "statuses_url": { + "type": "string", + "description": "A template for the API URL to get information about statuses of a commit.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + ] + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the subscribers on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/subscribers" + ] + }, + "subscription_url": { + "type": "string", + "format": "uri", + "description": "The API URL to subscribe to notifications for this repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/subscription" + ] + }, + "tags_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get information about tags on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/tags" + ] + }, + "teams_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the teams on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/teams" + ] + }, + "trees_url": { + "type": "string", + "description": "A template for the API URL to create or retrieve a raw Git tree of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + ] + }, + "hooks_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the hooks on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/hooks" + ] + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + } + }, + "required": [ + "number", + "state", + "dependency", + "security_advisory", + "security_vulnerability", + "url", + "html_url", + "created_at", + "updated_at", + "dismissed_at", + "dismissed_by", + "dismissed_reason", + "dismissed_comment", + "fixed_at", + "repository" + ], + "additionalProperties": false + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Lists Dependabot alerts for an organization.

\n

To use this endpoint, you must be an owner or security manager for the organization, and you must use an access token with the repo scope or security_events scope.

\n

For public repositories, you may instead use the public_repo scope.

\n

GitHub Apps must have Dependabot alerts read permission to use this endpoint.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "304", + "description": "

Not modified

" + }, + { + "httpStatusCode": "400", + "description": "

Bad Request

" + }, + { + "httpStatusCode": "403", + "description": "

Forbidden

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "422", + "description": "

Validation failed, or the endpoint has been spammed.

" + } + ] + }, { "serverUrl": "https://api.github.com", "verb": "get", @@ -243562,7 +245359,11 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "limit": "collaborators_only", + "expiry": "one_month" + } }, "response": { "statusCode": "200", @@ -483429,8 +485230,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to read", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "read" + }, "parameters": { "team_id": "TEAM_ID", "project_id": "PROJECT_ID" @@ -487178,8 +488982,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to pull", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "push" + }, "parameters": { "team_id": "TEAM_ID", "owner": "OWNER", @@ -500859,8 +502666,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "description": "Example of updating blog and name", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } }, "response": { "statusCode": "200", @@ -507639,8 +509450,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating content type and URL", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "content_type": "json", + "url": "https://example.com/webhook" + }, "parameters": { "owner": "OWNER", "repo": "REPO", diff --git a/lib/rest/static/decorated/ghes-3.2.json b/lib/rest/static/decorated/ghes-3.2.json index 4fa449aced..0a9f41409a 100644 --- a/lib/rest/static/decorated/ghes-3.2.json +++ b/lib/rest/static/decorated/ghes-3.2.json @@ -111907,6 +111907,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -112358,6 +112363,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -112809,6 +112819,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "my-app" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -129847,7 +129862,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -273510,8 +273534,17 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating scopes and note", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + }, "parameters": { "authorization_id": "AUTHORIZATION_ID" } @@ -402227,8 +402260,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to read", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "read" + }, "parameters": { "team_id": "TEAM_ID", "project_id": "PROJECT_ID" @@ -405857,8 +405893,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to pull", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "push" + }, "parameters": { "team_id": "TEAM_ID", "owner": "OWNER", @@ -417318,8 +417357,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "description": "Example of updating blog and name", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } }, "response": { "statusCode": "200", @@ -422954,8 +422997,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating content type and URL", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "content_type": "json", + "url": "https://example.com/webhook" + }, "parameters": { "owner": "OWNER", "repo": "REPO", diff --git a/lib/rest/static/decorated/ghes-3.3.json b/lib/rest/static/decorated/ghes-3.3.json index b68ee86685..16dbd3d40b 100644 --- a/lib/rest/static/decorated/ghes-3.3.json +++ b/lib/rest/static/decorated/ghes-3.3.json @@ -112383,6 +112383,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -112834,6 +112839,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -113285,6 +113295,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "my-app" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -121490,7 +121505,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -130402,7 +130426,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -274468,8 +274501,17 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating scopes and note", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + }, "parameters": { "authorization_id": "AUTHORIZATION_ID" } @@ -399955,8 +399997,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to read", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "read" + }, "parameters": { "team_id": "TEAM_ID", "project_id": "PROJECT_ID" @@ -403594,8 +403639,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to pull", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "push" + }, "parameters": { "team_id": "TEAM_ID", "owner": "OWNER", @@ -415023,8 +415071,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "description": "Example of updating blog and name", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } }, "response": { "statusCode": "200", @@ -420659,8 +420711,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating content type and URL", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "content_type": "json", + "url": "https://example.com/webhook" + }, "parameters": { "owner": "OWNER", "repo": "REPO", diff --git a/lib/rest/static/decorated/ghes-3.4.json b/lib/rest/static/decorated/ghes-3.4.json index b461c61715..afc10b03ac 100644 --- a/lib/rest/static/decorated/ghes-3.4.json +++ b/lib/rest/static/decorated/ghes-3.4.json @@ -117679,6 +117679,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -118130,6 +118135,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -118581,6 +118591,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "my-app" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -126786,7 +126801,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -135696,7 +135720,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -292558,8 +292591,17 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating scopes and note", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + }, "parameters": { "authorization_id": "AUTHORIZATION_ID" } @@ -419496,8 +419538,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to read", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "read" + }, "parameters": { "team_id": "TEAM_ID", "project_id": "PROJECT_ID" @@ -423135,8 +423180,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to pull", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "push" + }, "parameters": { "team_id": "TEAM_ID", "owner": "OWNER", @@ -434573,8 +434621,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "description": "Example of updating blog and name", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } }, "response": { "statusCode": "200", @@ -440209,8 +440261,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating content type and URL", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "content_type": "json", + "url": "https://example.com/webhook" + }, "parameters": { "owner": "OWNER", "repo": "REPO", diff --git a/lib/rest/static/decorated/ghes-3.5.json b/lib/rest/static/decorated/ghes-3.5.json index 53ca0efe04..5224abaa3d 100644 --- a/lib/rest/static/decorated/ghes-3.5.json +++ b/lib/rest/static/decorated/ghes-3.5.json @@ -123351,6 +123351,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -123802,6 +123807,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -124253,6 +124263,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "my-app" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -132458,7 +132473,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -141392,7 +141416,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -144467,10 +144500,6 @@ "httpStatusCode": "200", "description": "

OK

" }, - { - "httpStatusCode": "403", - "description": "

Response if GitHub Advanced Security is not enabled for this repository

" - }, { "httpStatusCode": "404", "description": "

Resource not found

" @@ -299724,8 +299753,17 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating scopes and note", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + }, "parameters": { "authorization_id": "AUTHORIZATION_ID" } @@ -427154,8 +427192,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to read", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "read" + }, "parameters": { "team_id": "TEAM_ID", "project_id": "PROJECT_ID" @@ -430807,8 +430848,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to pull", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "push" + }, "parameters": { "team_id": "TEAM_ID", "owner": "OWNER", @@ -442245,8 +442289,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "description": "Example of updating blog and name", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } }, "response": { "statusCode": "200", @@ -447881,8 +447929,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating content type and URL", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "content_type": "json", + "url": "https://example.com/webhook" + }, "parameters": { "owner": "OWNER", "repo": "REPO", diff --git a/lib/rest/static/decorated/ghes-3.6.json b/lib/rest/static/decorated/ghes-3.6.json index 348976218c..c8fedd33d7 100644 --- a/lib/rest/static/decorated/ghes-3.6.json +++ b/lib/rest/static/decorated/ghes-3.6.json @@ -125868,6 +125868,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -126319,6 +126324,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -126770,6 +126780,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "my-app" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -134975,7 +134990,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -143933,7 +143957,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -147024,10 +147057,6 @@ "httpStatusCode": "200", "description": "

OK

" }, - { - "httpStatusCode": "403", - "description": "

Response if GitHub Advanced Security is not enabled for this repository

" - }, { "httpStatusCode": "404", "description": "

Resource not found

" @@ -309055,8 +309084,17 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating scopes and note", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + }, "parameters": { "authorization_id": "AUTHORIZATION_ID" } @@ -439535,8 +439573,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to read", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "read" + }, "parameters": { "team_id": "TEAM_ID", "project_id": "PROJECT_ID" @@ -443284,8 +443325,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to pull", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "push" + }, "parameters": { "team_id": "TEAM_ID", "owner": "OWNER", @@ -455486,8 +455530,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "description": "Example of updating blog and name", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } }, "response": { "statusCode": "200", @@ -461220,8 +461268,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating content type and URL", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "content_type": "json", + "url": "https://example.com/webhook" + }, "parameters": { "owner": "OWNER", "repo": "REPO", diff --git a/lib/rest/static/decorated/github.ae.json b/lib/rest/static/decorated/github.ae.json index aa955193cc..dcfebd265b 100644 --- a/lib/rest/static/decorated/github.ae.json +++ b/lib/rest/static/decorated/github.ae.json @@ -89279,6 +89279,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -89730,6 +89735,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "octoapp" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -90181,6 +90191,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "apps": [ + "my-app" + ] + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -98386,7 +98401,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -107344,7 +107368,16 @@ }, "response": { "statusCode": "201", - "description": "

Response

" + "contentType": "application/json", + "description": "

Response

", + "example": null, + "schema": { + "title": "Empty Object", + "description": "An object without any properties.", + "type": "object", + "properties": {}, + "additionalProperties": false + } } } ], @@ -372689,8 +372722,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to read", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "read" + }, "parameters": { "team_id": "TEAM_ID", "project_id": "PROJECT_ID" @@ -376361,8 +376397,11 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of setting permission to pull", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "permission": "push" + }, "parameters": { "team_id": "TEAM_ID", "owner": "OWNER", @@ -388442,8 +388481,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "description": "Example of updating blog and name", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } }, "response": { "statusCode": "200", @@ -393637,8 +393680,12 @@ "key": "default", "request": { "contentType": "application/json", - "description": "Example", + "description": "Example of updating content type and URL", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "content_type": "json", + "url": "https://example.com/webhook" + }, "parameters": { "owner": "OWNER", "repo": "REPO", diff --git a/lib/rest/static/dereferenced/api.github.com.deref.json b/lib/rest/static/dereferenced/api.github.com.deref.json index fb8aac775a..56282ff24d 100644 --- a/lib/rest/static/dereferenced/api.github.com.deref.json +++ b/lib/rest/static/dereferenced/api.github.com.deref.json @@ -21938,32 +21938,6 @@ } } }, - "403": { - "description": "Response if GitHub Advanced Security is not enabled for this repository", - "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" - } - } - } - } - } - }, "404": { "description": "Resource not found", "content": { @@ -70633,32 +70607,6 @@ } } }, - "403": { - "description": "Response if GitHub Advanced Security is not enabled for this repository", - "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" - } - } - } - } - } - }, "404": { "description": "Resource not found", "content": { @@ -76239,6 +76187,1879 @@ } } }, + "/orgs/{org}/dependabot/alerts": { + "get": { + "summary": "List Dependabot alerts for an organization", + "description": "Lists Dependabot alerts for an organization.\n\nTo use this endpoint, you must be an owner or security manager for the organization, and you must use an access token with the `repo` scope or `security_events` scope.\n\nFor public repositories, you may instead use the `public_repo` scope.\n\nGitHub Apps must have **Dependabot alerts** read permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-alerts-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization" + }, + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "A comma-separated list of states. If specified, only alerts with these states will be returned.\n\nCan be: `dismissed`, `fixed`, `open`", + "schema": { + "type": "string" + } + }, + { + "name": "severity", + "in": "query", + "description": "A comma-separated list of severities. If specified, only alerts with these severities will be returned.\n\nCan be: `low`, `medium`, `high`, `critical`", + "schema": { + "type": "string" + } + }, + { + "name": "ecosystem", + "in": "query", + "description": "A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned.\n\nCan be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust`", + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "query", + "description": "A comma-separated list of package names. If specified, only alerts for these packages will be returned.", + "schema": { + "type": "string" + } + }, + { + "name": "scope", + "in": "query", + "description": "The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned.", + "schema": { + "type": "string", + "enum": [ + "development", + "runtime" + ] + } + }, + { + "name": "sort", + "in": "query", + "description": "The property by which to sort the results.\n`created` means when the alert was created.\n`updated` means when the alert's state last changed.", + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ], + "default": "created" + } + }, + { + "name": "direction", + "description": "The direction to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + } + }, + { + "name": "before", + "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for results before this cursor.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for results after this cursor.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "first", + "description": "The number of results per page (max 100), starting from the first matching result.\nThis parameter must not be used in combination with `last`.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + } + }, + { + "name": "last", + "description": "The number of results per page (max 100), starting from the last matching result.\nThis parameter must not be used in combination with `first`.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100 + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "A Dependabot alert.", + "properties": { + "number": { + "type": "integer", + "description": "The security alert number.", + "readOnly": true + }, + "state": { + "type": "string", + "description": "The state of the Dependabot alert.", + "readOnly": true, + "enum": [ + "dismissed", + "fixed", + "open" + ] + }, + "dependency": { + "type": "object", + "description": "Details for the vulnerable dependency.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "manifest_path": { + "type": "string", + "description": "The full path to the dependency manifest file, relative to the root of the repository.", + "readOnly": true + }, + "scope": { + "type": [ + "string", + "null" + ], + "description": "The execution scope of the vulnerable dependency.", + "readOnly": true, + "enum": [ + "development", + "runtime", + null + ] + } + } + }, + "security_advisory": { + "type": "object", + "description": "Details for the GitHub Security Advisory.", + "readOnly": true, + "properties": { + "ghsa_id": { + "type": "string", + "description": "The unique GitHub Security Advisory ID assigned to the advisory.", + "readOnly": true + }, + "cve_id": { + "type": [ + "string", + "null" + ], + "description": "The unique CVE ID assigned to the advisory.", + "readOnly": true + }, + "summary": { + "type": "string", + "description": "A short, plain text summary of the advisory.", + "readOnly": true, + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A long-form Markdown-supported description of the advisory.", + "readOnly": true + }, + "vulnerabilities": { + "type": "array", + "description": "Vulnerable version range information for the advisory.", + "readOnly": true, + "items": { + "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true + }, + "first_patched_version": { + "type": [ + "object", + "null" + ], + "description": "Details pertaining to the package version that patches this vulnerability.", + "readOnly": true, + "properties": { + "identifier": { + "type": "string", + "description": "The package version that patches this vulnerability.", + "readOnly": true + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false + } + }, + "severity": { + "type": "string", + "description": "The severity of the advisory.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "cvss": { + "type": "object", + "description": "Details for the advisory pertaining to the Common Vulnerability Scoring System.", + "readOnly": true, + "properties": { + "score": { + "type": "number", + "description": "The overall CVSS score of the advisory.", + "minimum": 0, + "maximum": 10, + "readOnly": true + }, + "vector_string": { + "type": [ + "string", + "null" + ], + "description": "The full CVSS vector string for the advisory.", + "readOnly": true + } + }, + "required": [ + "score", + "vector_string" + ], + "additionalProperties": false + }, + "cwes": { + "type": "array", + "description": "Details for the advisory pertaining to Common Weakness Enumeration.", + "readOnly": true, + "items": { + "type": "object", + "description": "A CWE weakness assigned to the advisory.", + "readOnly": true, + "properties": { + "cwe_id": { + "type": "string", + "description": "The unique CWE ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The short, plain text name of the CWE.", + "readOnly": true + } + }, + "required": [ + "cwe_id", + "name" + ], + "additionalProperties": false + } + }, + "identifiers": { + "type": "array", + "description": "Values that identify this advisory among security information sources.", + "readOnly": true, + "items": { + "type": "object", + "description": "An advisory identifier.", + "readOnly": true, + "properties": { + "type": { + "type": "string", + "description": "The type of advisory identifier.", + "readOnly": true, + "enum": [ + "CVE", + "GHSA" + ] + }, + "value": { + "type": "string", + "description": "The value of the advisory identifer.", + "readOnly": true + } + }, + "required": [ + "value", + "type" + ], + "additionalProperties": false + } + }, + "references": { + "type": "array", + "description": "Links to additional advisory information.", + "readOnly": true, + "items": { + "type": "object", + "description": "A link to additional advisory information.", + "readOnly": true, + "properties": { + "url": { + "type": "string", + "description": "The URL of the reference.", + "format": "uri", + "readOnly": true + } + }, + "required": [ + "url" + ], + "additionalProperties": false + } + }, + "published_at": { + "type": "string", + "description": "The time that the advisory was published in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "The time that the advisory was last modified in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "withdrawn_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the advisory was withdrawn in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + } + }, + "required": [ + "ghsa_id", + "cve_id", + "summary", + "description", + "vulnerabilities", + "severity", + "cvss", + "cwes", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at" + ], + "additionalProperties": false + }, + "security_vulnerability": { + "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true + }, + "first_patched_version": { + "type": [ + "object", + "null" + ], + "description": "Details pertaining to the package version that patches this vulnerability.", + "readOnly": true, + "properties": { + "identifier": { + "type": "string", + "description": "The package version that patches this vulnerability.", + "readOnly": true + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false + }, + "url": { + "type": "string", + "description": "The REST API URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "html_url": { + "type": "string", + "description": "The GitHub URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "created_at": { + "type": "string", + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "dismissed_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "dismissed_by": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + ] + }, + "dismissed_reason": { + "type": [ + "string", + "null" + ], + "description": "The reason that the alert was dismissed.", + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk", + null + ] + }, + "dismissed_comment": { + "type": [ + "string", + "null" + ], + "description": "An optional comment associated with the alert's dismissal.", + "maxLength": 280 + }, + "fixed_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the alert was no longer detected and was considered fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "repository": { + "title": "Simple Repository", + "description": "Simple Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "A unique identifier of the repository.", + "examples": [ + 1296269 + ] + }, + "node_id": { + "type": "string", + "description": "The GraphQL identifier of the repository.", + "examples": [ + "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + ] + }, + "name": { + "type": "string", + "description": "The name of the repository.", + "examples": [ + "Hello-World" + ] + }, + "full_name": { + "type": "string", + "description": "The full, globally unique, name of the repository.", + "examples": [ + "octocat/Hello-World" + ] + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "type": "boolean", + "description": "Whether the repository is private." + }, + "html_url": { + "type": "string", + "format": "uri", + "description": "The URL to view the repository on GitHub.com.", + "examples": [ + "https://github.com/octocat/Hello-World" + ] + }, + "description": { + "type": [ + "string", + "null" + ], + "description": "The repository description.", + "examples": [ + "This your first repo!" + ] + }, + "fork": { + "type": "boolean", + "description": "Whether the repository is a fork." + }, + "url": { + "type": "string", + "format": "uri", + "description": "The URL to get more information about the repository from the GitHub API.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World" + ] + }, + "archive_url": { + "type": "string", + "description": "A template for the API URL to download the repository as an archive.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + ] + }, + "assignees_url": { + "type": "string", + "description": "A template for the API URL to list the available assignees for issues in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/assignees{/user}" + ] + }, + "blobs_url": { + "type": "string", + "description": "A template for the API URL to create or retrieve a raw Git blob in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + ] + }, + "branches_url": { + "type": "string", + "description": "A template for the API URL to get information about branches in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/branches{/branch}" + ] + }, + "collaborators_url": { + "type": "string", + "description": "A template for the API URL to get information about collaborators of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + ] + }, + "comments_url": { + "type": "string", + "description": "A template for the API URL to get information about comments on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/comments{/number}" + ] + }, + "commits_url": { + "type": "string", + "description": "A template for the API URL to get information about commits on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/commits{/sha}" + ] + }, + "compare_url": { + "type": "string", + "description": "A template for the API URL to compare two commits or refs.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + ] + }, + "contents_url": { + "type": "string", + "description": "A template for the API URL to get the contents of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/contents/{+path}" + ] + }, + "contributors_url": { + "type": "string", + "format": "uri", + "description": "A template for the API URL to list the contributors to the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/contributors" + ] + }, + "deployments_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the deployments of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/deployments" + ] + }, + "downloads_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the downloads on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/downloads" + ] + }, + "events_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the events of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/events" + ] + }, + "forks_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the forks of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/forks" + ] + }, + "git_commits_url": { + "type": "string", + "description": "A template for the API URL to get information about Git commits of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + ] + }, + "git_refs_url": { + "type": "string", + "description": "A template for the API URL to get information about Git refs of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + ] + }, + "git_tags_url": { + "type": "string", + "description": "A template for the API URL to get information about Git tags of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + ] + }, + "issue_comment_url": { + "type": "string", + "description": "A template for the API URL to get information about issue comments on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + ] + }, + "issue_events_url": { + "type": "string", + "description": "A template for the API URL to get information about issue events on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + ] + }, + "issues_url": { + "type": "string", + "description": "A template for the API URL to get information about issues on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues{/number}" + ] + }, + "keys_url": { + "type": "string", + "description": "A template for the API URL to get information about deploy keys on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + ] + }, + "labels_url": { + "type": "string", + "description": "A template for the API URL to get information about labels of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/labels{/name}" + ] + }, + "languages_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get information about the languages of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/languages" + ] + }, + "merges_url": { + "type": "string", + "format": "uri", + "description": "The API URL to merge branches in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/merges" + ] + }, + "milestones_url": { + "type": "string", + "description": "A template for the API URL to get information about milestones of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/milestones{/number}" + ] + }, + "notifications_url": { + "type": "string", + "description": "A template for the API URL to get information about notifications on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + ] + }, + "pulls_url": { + "type": "string", + "description": "A template for the API URL to get information about pull requests on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/pulls{/number}" + ] + }, + "releases_url": { + "type": "string", + "description": "A template for the API URL to get information about releases on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/releases{/id}" + ] + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the stargazers on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/stargazers" + ] + }, + "statuses_url": { + "type": "string", + "description": "A template for the API URL to get information about statuses of a commit.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + ] + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the subscribers on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/subscribers" + ] + }, + "subscription_url": { + "type": "string", + "format": "uri", + "description": "The API URL to subscribe to notifications for this repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/subscription" + ] + }, + "tags_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get information about tags on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/tags" + ] + }, + "teams_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the teams on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/teams" + ] + }, + "trees_url": { + "type": "string", + "description": "A template for the API URL to create or retrieve a raw Git tree of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + ] + }, + "hooks_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the hooks on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/hooks" + ] + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + } + }, + "required": [ + "number", + "state", + "dependency", + "security_advisory", + "security_vulnerability", + "url", + "html_url", + "created_at", + "updated_at", + "dismissed_at", + "dismissed_by", + "dismissed_reason", + "dismissed_comment", + "fixed_at", + "repository" + ], + "additionalProperties": false + } + }, + "examples": { + "default": { + "value": [ + { + "number": 2, + "state": "dismissed", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-rf4j-j272-fj86", + "cve_id": "CVE-2018-6188", + "summary": "Django allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive", + "description": "django.contrib.auth.forms.AuthenticationForm in Django 2.0 before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 1.11.8, < 1.11.10", + "first_patched_version": { + "identifier": "1.11.10" + } + } + ], + "severity": "high", + "cvss": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 + }, + "cwes": [ + { + "cwe_id": "CWE-200", + "name": "Exposure of Sensitive Information to an Unauthorized Actor" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-rf4j-j272-fj86" + }, + { + "type": "CVE", + "value": "CVE-2018-6188" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2018-6188" + }, + { + "url": "https://github.com/advisories/GHSA-rf4j-j272-fj86" + }, + { + "url": "https://usn.ubuntu.com/3559-1/" + }, + { + "url": "https://www.djangoproject.com/weblog/2018/feb/01/security-releases/" + }, + { + "url": "http://www.securitytracker.com/id/1040422" + } + ], + "published_at": "2018-10-03T21:13:54Z", + "updated_at": "2022-04-26T18:35:37Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + "url": "https://api.github.com/repos/octo-org/octo-repo/dependabot/alerts/2", + "html_url": "https://github.com/octo-org/octo-repo/security/dependabot/2", + "created_at": "2022-06-15T07:43:03Z", + "updated_at": "2022-08-23T14:29:47Z", + "dismissed_at": "2022-08-23T14:29:47Z", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_reason": "tolerable_risk", + "dismissed_comment": "This alert is accurate but we use a sanitizer.", + "fixed_at": null, + "repository": { + "id": 217723378, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=", + "name": "octo-repo", + "full_name": "octo-org/octo-repo", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/octo-repo", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/octo-repo", + "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads", + "events_url": "https://api.github.com/repos/octo-org/octo-repo/events", + "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages", + "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges", + "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription", + "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags", + "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams", + "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}" + } + }, + { + "number": 1, + "state": "open", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-8f4m-hccc-8qph", + "cve_id": "CVE-2021-20191", + "summary": "Insertion of Sensitive Information into Log File in ansible", + "description": "A flaw was found in ansible. Credentials, such as secrets, are being disclosed in console log by default and not protected by no_log feature when using those modules. An attacker can take advantage of this information to steal those credentials. The highest threat from this vulnerability is to data confidentiality.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.9.0, < 2.9.18", + "first_patched_version": { + "identifier": "2.9.18" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.10.0, < 2.10.7", + "first_patched_version": { + "identifier": "2.10.7" + } + } + ], + "severity": "medium", + "cvss": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 + }, + "cwes": [ + { + "cwe_id": "CWE-532", + "name": "Insertion of Sensitive Information into Log File" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-8f4m-hccc-8qph" + }, + { + "type": "CVE", + "value": "CVE-2021-20191" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-20191" + }, + { + "url": "https://access.redhat.com/security/cve/cve-2021-20191" + }, + { + "url": "https://bugzilla.redhat.com/show_bug.cgi?id=1916813" + } + ], + "published_at": "2021-06-01T17:38:00Z", + "updated_at": "2021-08-12T23:06:00Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + "url": "https://api.github.com/repos/octo-org/hello-world/dependabot/alerts/1", + "html_url": "https://github.com/octo-org/hello-world/security/dependabot/1", + "created_at": "2022-06-14T15:21:52Z", + "updated_at": "2022-06-14T15:21:52Z", + "dismissed_at": null, + "dismissed_by": null, + "dismissed_reason": null, + "dismissed_comment": null, + "fixed_at": null, + "repository": { + "id": 664700648, + "node_id": "MDEwOlJlcG9zaXRvcnk2NjQ3MDA2NDg=", + "name": "hello-world", + "full_name": "octo-org/hello-world", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/hello-world", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/hello-world", + "archive_url": "https://api.github.com/repos/octo-org/hello-world/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/hello-world/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/hello-world/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/hello-world/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/hello-world/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/hello-world/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/hello-world/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/hello-world/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/hello-world/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/hello-world/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/hello-world/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/hello-world/downloads", + "events_url": "https://api.github.com/repos/octo-org/hello-world/events", + "forks_url": "https://api.github.com/repos/octo-org/hello-world/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/hello-world/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/hello-world/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/hello-world/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/hello-world/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/hello-world/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/hello-world/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/hello-world/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/hello-world/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/hello-world/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/hello-world/languages", + "merges_url": "https://api.github.com/repos/octo-org/hello-world/merges", + "milestones_url": "https://api.github.com/repos/octo-org/hello-world/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/hello-world/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/hello-world/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/hello-world/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/hello-world/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/hello-world/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/hello-world/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/hello-world/subscription", + "tags_url": "https://api.github.com/repos/octo-org/hello-world/tags", + "teams_url": "https://api.github.com/repos/octo-org/hello-world/teams", + "trees_url": "https://api.github.com/repos/octo-org/hello-world/git/trees{/sha}" + } + } + ] + } + } + } + } + }, + "304": { + "description": "Not modified" + }, + "400": { + "description": "Bad Request", + "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" + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "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" + } + } + } + } + } + }, + "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" + } + } + } + } + } + }, + "422": { + "description": "Validation failed, or the endpoint has been spammed.", + "content": { + "application/json": { + "schema": { + "title": "Validation Error Simple", + "description": "Validation Error Simple", + "type": "object", + "required": [ + "message", + "documentation_url" + ], + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "alerts" + } + } + }, "/orgs/{org}/dependabot/secrets": { "get": { "summary": "List organization secrets", @@ -189245,6 +191066,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -189790,6 +191620,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -190334,6 +192173,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "my-app" + ] + } + } } } } @@ -201201,10 +203049,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -208941,10 +210796,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -219047,6 +220909,27 @@ } } } + }, + "503": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } } }, "x-github": { @@ -220400,10 +222283,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -273048,12 +274938,15 @@ } ] } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" + } } } } @@ -379717,6 +381610,27 @@ } } } + }, + "503": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } } }, "x-github": { @@ -436072,6 +437986,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to read", + "value": { + "permission": "read" + } + } } } } @@ -440047,6 +441969,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" + } + } } } } @@ -441484,6 +443414,15 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating blog and name", + "value": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } + } } } } @@ -448270,6 +450209,27 @@ } } } + }, + "503": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } } }, "x-github": { @@ -448648,14 +450608,21 @@ }, "responses": { "201": { - "description": "Response after successfully creaing a secret", + "description": "Response after successfully creating a secret", "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -464919,6 +466886,14 @@ "required": [ "limit" ] + }, + "examples": { + "default": { + "value": { + "limit": "collaborators_only", + "expiry": "one_month" + } + } } } } diff --git a/lib/rest/static/dereferenced/ghec.deref.json b/lib/rest/static/dereferenced/ghec.deref.json index 488a32de3e..a4a3516956 100644 --- a/lib/rest/static/dereferenced/ghec.deref.json +++ b/lib/rest/static/dereferenced/ghec.deref.json @@ -22313,32 +22313,6 @@ } } }, - "403": { - "description": "Response if GitHub Advanced Security is not enabled for this repository", - "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" - } - } - } - } - } - }, "404": { "description": "Resource not found", "content": { @@ -72199,32 +72173,6 @@ } } }, - "403": { - "description": "Response if GitHub Advanced Security is not enabled for this repository", - "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" - } - } - } - } - } - }, "404": { "description": "Resource not found", "content": { @@ -78089,6 +78037,1879 @@ } } }, + "/orgs/{org}/dependabot/alerts": { + "get": { + "summary": "List Dependabot alerts for an organization", + "description": "Lists Dependabot alerts for an organization.\n\nTo use this endpoint, you must be an owner or security manager for the organization, and you must use an access token with the `repo` scope or `security_events` scope.\n\nFor public repositories, you may instead use the `public_repo` scope.\n\nGitHub Apps must have **Dependabot alerts** read permission to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/list-alerts-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/enterprise-cloud@latest//rest/dependabot/alerts#list-dependabot-alerts-for-an-organization" + }, + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "A comma-separated list of states. If specified, only alerts with these states will be returned.\n\nCan be: `dismissed`, `fixed`, `open`", + "schema": { + "type": "string" + } + }, + { + "name": "severity", + "in": "query", + "description": "A comma-separated list of severities. If specified, only alerts with these severities will be returned.\n\nCan be: `low`, `medium`, `high`, `critical`", + "schema": { + "type": "string" + } + }, + { + "name": "ecosystem", + "in": "query", + "description": "A comma-separated list of ecosystems. If specified, only alerts for these ecosystems will be returned.\n\nCan be: `composer`, `go`, `maven`, `npm`, `nuget`, `pip`, `pub`, `rubygems`, `rust`", + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "query", + "description": "A comma-separated list of package names. If specified, only alerts for these packages will be returned.", + "schema": { + "type": "string" + } + }, + { + "name": "scope", + "in": "query", + "description": "The scope of the vulnerable dependency. If specified, only alerts with this scope will be returned.", + "schema": { + "type": "string", + "enum": [ + "development", + "runtime" + ] + } + }, + { + "name": "sort", + "in": "query", + "description": "The property by which to sort the results.\n`created` means when the alert was created.\n`updated` means when the alert's state last changed.", + "schema": { + "type": "string", + "enum": [ + "created", + "updated" + ], + "default": "created" + } + }, + { + "name": "direction", + "description": "The direction to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + } + }, + { + "name": "before", + "description": "A cursor, as given in the [Link header](https://docs.github.com/enterprise-cloud@latest//rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for results before this cursor.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "description": "A cursor, as given in the [Link header](https://docs.github.com/enterprise-cloud@latest//rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for results after this cursor.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "first", + "description": "The number of results per page (max 100), starting from the first matching result.\nThis parameter must not be used in combination with `last`.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + } + }, + { + "name": "last", + "description": "The number of results per page (max 100), starting from the last matching result.\nThis parameter must not be used in combination with `first`.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100 + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "description": "A Dependabot alert.", + "properties": { + "number": { + "type": "integer", + "description": "The security alert number.", + "readOnly": true + }, + "state": { + "type": "string", + "description": "The state of the Dependabot alert.", + "readOnly": true, + "enum": [ + "dismissed", + "fixed", + "open" + ] + }, + "dependency": { + "type": "object", + "description": "Details for the vulnerable dependency.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "manifest_path": { + "type": "string", + "description": "The full path to the dependency manifest file, relative to the root of the repository.", + "readOnly": true + }, + "scope": { + "type": [ + "string", + "null" + ], + "description": "The execution scope of the vulnerable dependency.", + "readOnly": true, + "enum": [ + "development", + "runtime", + null + ] + } + } + }, + "security_advisory": { + "type": "object", + "description": "Details for the GitHub Security Advisory.", + "readOnly": true, + "properties": { + "ghsa_id": { + "type": "string", + "description": "The unique GitHub Security Advisory ID assigned to the advisory.", + "readOnly": true + }, + "cve_id": { + "type": [ + "string", + "null" + ], + "description": "The unique CVE ID assigned to the advisory.", + "readOnly": true + }, + "summary": { + "type": "string", + "description": "A short, plain text summary of the advisory.", + "readOnly": true, + "maxLength": 1024 + }, + "description": { + "type": "string", + "description": "A long-form Markdown-supported description of the advisory.", + "readOnly": true + }, + "vulnerabilities": { + "type": "array", + "description": "Vulnerable version range information for the advisory.", + "readOnly": true, + "items": { + "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true + }, + "first_patched_version": { + "type": [ + "object", + "null" + ], + "description": "Details pertaining to the package version that patches this vulnerability.", + "readOnly": true, + "properties": { + "identifier": { + "type": "string", + "description": "The package version that patches this vulnerability.", + "readOnly": true + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false + } + }, + "severity": { + "type": "string", + "description": "The severity of the advisory.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "cvss": { + "type": "object", + "description": "Details for the advisory pertaining to the Common Vulnerability Scoring System.", + "readOnly": true, + "properties": { + "score": { + "type": "number", + "description": "The overall CVSS score of the advisory.", + "minimum": 0, + "maximum": 10, + "readOnly": true + }, + "vector_string": { + "type": [ + "string", + "null" + ], + "description": "The full CVSS vector string for the advisory.", + "readOnly": true + } + }, + "required": [ + "score", + "vector_string" + ], + "additionalProperties": false + }, + "cwes": { + "type": "array", + "description": "Details for the advisory pertaining to Common Weakness Enumeration.", + "readOnly": true, + "items": { + "type": "object", + "description": "A CWE weakness assigned to the advisory.", + "readOnly": true, + "properties": { + "cwe_id": { + "type": "string", + "description": "The unique CWE ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The short, plain text name of the CWE.", + "readOnly": true + } + }, + "required": [ + "cwe_id", + "name" + ], + "additionalProperties": false + } + }, + "identifiers": { + "type": "array", + "description": "Values that identify this advisory among security information sources.", + "readOnly": true, + "items": { + "type": "object", + "description": "An advisory identifier.", + "readOnly": true, + "properties": { + "type": { + "type": "string", + "description": "The type of advisory identifier.", + "readOnly": true, + "enum": [ + "CVE", + "GHSA" + ] + }, + "value": { + "type": "string", + "description": "The value of the advisory identifer.", + "readOnly": true + } + }, + "required": [ + "value", + "type" + ], + "additionalProperties": false + } + }, + "references": { + "type": "array", + "description": "Links to additional advisory information.", + "readOnly": true, + "items": { + "type": "object", + "description": "A link to additional advisory information.", + "readOnly": true, + "properties": { + "url": { + "type": "string", + "description": "The URL of the reference.", + "format": "uri", + "readOnly": true + } + }, + "required": [ + "url" + ], + "additionalProperties": false + } + }, + "published_at": { + "type": "string", + "description": "The time that the advisory was published in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "The time that the advisory was last modified in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "withdrawn_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the advisory was withdrawn in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + } + }, + "required": [ + "ghsa_id", + "cve_id", + "summary", + "description", + "vulnerabilities", + "severity", + "cvss", + "cwes", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at" + ], + "additionalProperties": false + }, + "security_vulnerability": { + "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, + "properties": { + "package": { + "type": "object", + "description": "Details for the vulnerable package.", + "readOnly": true, + "properties": { + "ecosystem": { + "type": "string", + "description": "The package's language or package management ecosystem.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "readOnly": true + } + }, + "required": [ + "ecosystem", + "name" + ], + "additionalProperties": false + }, + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true + }, + "first_patched_version": { + "type": [ + "object", + "null" + ], + "description": "Details pertaining to the package version that patches this vulnerability.", + "readOnly": true, + "properties": { + "identifier": { + "type": "string", + "description": "The package version that patches this vulnerability.", + "readOnly": true + } + }, + "required": [ + "identifier" + ], + "additionalProperties": false + } + }, + "required": [ + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false + }, + "url": { + "type": "string", + "description": "The REST API URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "html_url": { + "type": "string", + "description": "The GitHub URL of the alert resource.", + "format": "uri", + "readOnly": true + }, + "created_at": { + "type": "string", + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "dismissed_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "dismissed_by": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + ] + }, + "dismissed_reason": { + "type": [ + "string", + "null" + ], + "description": "The reason that the alert was dismissed.", + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk", + null + ] + }, + "dismissed_comment": { + "type": [ + "string", + "null" + ], + "description": "An optional comment associated with the alert's dismissal.", + "maxLength": 280 + }, + "fixed_at": { + "type": [ + "string", + "null" + ], + "description": "The time that the alert was no longer detected and was considered fixed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true + }, + "repository": { + "title": "Simple Repository", + "description": "Simple Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "A unique identifier of the repository.", + "examples": [ + 1296269 + ] + }, + "node_id": { + "type": "string", + "description": "The GraphQL identifier of the repository.", + "examples": [ + "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + ] + }, + "name": { + "type": "string", + "description": "The name of the repository.", + "examples": [ + "Hello-World" + ] + }, + "full_name": { + "type": "string", + "description": "The full, globally unique, name of the repository.", + "examples": [ + "octocat/Hello-World" + ] + }, + "owner": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { + "type": "boolean", + "description": "Whether the repository is private." + }, + "html_url": { + "type": "string", + "format": "uri", + "description": "The URL to view the repository on GitHub.com.", + "examples": [ + "https://github.com/octocat/Hello-World" + ] + }, + "description": { + "type": [ + "string", + "null" + ], + "description": "The repository description.", + "examples": [ + "This your first repo!" + ] + }, + "fork": { + "type": "boolean", + "description": "Whether the repository is a fork." + }, + "url": { + "type": "string", + "format": "uri", + "description": "The URL to get more information about the repository from the GitHub API.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World" + ] + }, + "archive_url": { + "type": "string", + "description": "A template for the API URL to download the repository as an archive.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + ] + }, + "assignees_url": { + "type": "string", + "description": "A template for the API URL to list the available assignees for issues in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/assignees{/user}" + ] + }, + "blobs_url": { + "type": "string", + "description": "A template for the API URL to create or retrieve a raw Git blob in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + ] + }, + "branches_url": { + "type": "string", + "description": "A template for the API URL to get information about branches in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/branches{/branch}" + ] + }, + "collaborators_url": { + "type": "string", + "description": "A template for the API URL to get information about collaborators of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + ] + }, + "comments_url": { + "type": "string", + "description": "A template for the API URL to get information about comments on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/comments{/number}" + ] + }, + "commits_url": { + "type": "string", + "description": "A template for the API URL to get information about commits on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/commits{/sha}" + ] + }, + "compare_url": { + "type": "string", + "description": "A template for the API URL to compare two commits or refs.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + ] + }, + "contents_url": { + "type": "string", + "description": "A template for the API URL to get the contents of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/contents/{+path}" + ] + }, + "contributors_url": { + "type": "string", + "format": "uri", + "description": "A template for the API URL to list the contributors to the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/contributors" + ] + }, + "deployments_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the deployments of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/deployments" + ] + }, + "downloads_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the downloads on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/downloads" + ] + }, + "events_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the events of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/events" + ] + }, + "forks_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the forks of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/forks" + ] + }, + "git_commits_url": { + "type": "string", + "description": "A template for the API URL to get information about Git commits of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + ] + }, + "git_refs_url": { + "type": "string", + "description": "A template for the API URL to get information about Git refs of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + ] + }, + "git_tags_url": { + "type": "string", + "description": "A template for the API URL to get information about Git tags of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + ] + }, + "issue_comment_url": { + "type": "string", + "description": "A template for the API URL to get information about issue comments on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + ] + }, + "issue_events_url": { + "type": "string", + "description": "A template for the API URL to get information about issue events on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + ] + }, + "issues_url": { + "type": "string", + "description": "A template for the API URL to get information about issues on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/issues{/number}" + ] + }, + "keys_url": { + "type": "string", + "description": "A template for the API URL to get information about deploy keys on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + ] + }, + "labels_url": { + "type": "string", + "description": "A template for the API URL to get information about labels of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/labels{/name}" + ] + }, + "languages_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get information about the languages of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/languages" + ] + }, + "merges_url": { + "type": "string", + "format": "uri", + "description": "The API URL to merge branches in the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/merges" + ] + }, + "milestones_url": { + "type": "string", + "description": "A template for the API URL to get information about milestones of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/milestones{/number}" + ] + }, + "notifications_url": { + "type": "string", + "description": "A template for the API URL to get information about notifications on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + ] + }, + "pulls_url": { + "type": "string", + "description": "A template for the API URL to get information about pull requests on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/pulls{/number}" + ] + }, + "releases_url": { + "type": "string", + "description": "A template for the API URL to get information about releases on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/releases{/id}" + ] + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the stargazers on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/stargazers" + ] + }, + "statuses_url": { + "type": "string", + "description": "A template for the API URL to get information about statuses of a commit.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + ] + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the subscribers on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/subscribers" + ] + }, + "subscription_url": { + "type": "string", + "format": "uri", + "description": "The API URL to subscribe to notifications for this repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/subscription" + ] + }, + "tags_url": { + "type": "string", + "format": "uri", + "description": "The API URL to get information about tags on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/tags" + ] + }, + "teams_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the teams on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/teams" + ] + }, + "trees_url": { + "type": "string", + "description": "A template for the API URL to create or retrieve a raw Git tree of the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + ] + }, + "hooks_url": { + "type": "string", + "format": "uri", + "description": "The API URL to list the hooks on the repository.", + "examples": [ + "https://api.github.com/repos/octocat/Hello-World/hooks" + ] + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + } + }, + "required": [ + "number", + "state", + "dependency", + "security_advisory", + "security_vulnerability", + "url", + "html_url", + "created_at", + "updated_at", + "dismissed_at", + "dismissed_by", + "dismissed_reason", + "dismissed_comment", + "fixed_at", + "repository" + ], + "additionalProperties": false + } + }, + "examples": { + "default": { + "value": [ + { + "number": 2, + "state": "dismissed", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-rf4j-j272-fj86", + "cve_id": "CVE-2018-6188", + "summary": "Django allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive", + "description": "django.contrib.auth.forms.AuthenticationForm in Django 2.0 before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 1.11.8, < 1.11.10", + "first_patched_version": { + "identifier": "1.11.10" + } + } + ], + "severity": "high", + "cvss": { + "vector_string": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "score": 7.5 + }, + "cwes": [ + { + "cwe_id": "CWE-200", + "name": "Exposure of Sensitive Information to an Unauthorized Actor" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-rf4j-j272-fj86" + }, + { + "type": "CVE", + "value": "CVE-2018-6188" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2018-6188" + }, + { + "url": "https://github.com/advisories/GHSA-rf4j-j272-fj86" + }, + { + "url": "https://usn.ubuntu.com/3559-1/" + }, + { + "url": "https://www.djangoproject.com/weblog/2018/feb/01/security-releases/" + }, + { + "url": "http://www.securitytracker.com/id/1040422" + } + ], + "published_at": "2018-10-03T21:13:54Z", + "updated_at": "2022-04-26T18:35:37Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "django" + }, + "severity": "high", + "vulnerable_version_range": ">= 2.0.0, < 2.0.2", + "first_patched_version": { + "identifier": "2.0.2" + } + }, + "url": "https://api.github.com/repos/octo-org/octo-repo/dependabot/alerts/2", + "html_url": "https://github.com/octo-org/octo-repo/security/dependabot/2", + "created_at": "2022-06-15T07:43:03Z", + "updated_at": "2022-08-23T14:29:47Z", + "dismissed_at": "2022-08-23T14:29:47Z", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_reason": "tolerable_risk", + "dismissed_comment": "This alert is accurate but we use a sanitizer.", + "fixed_at": null, + "repository": { + "id": 217723378, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=", + "name": "octo-repo", + "full_name": "octo-org/octo-repo", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/octo-repo", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/octo-repo", + "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads", + "events_url": "https://api.github.com/repos/octo-org/octo-repo/events", + "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages", + "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges", + "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription", + "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags", + "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams", + "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}" + } + }, + { + "number": 1, + "state": "open", + "dependency": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "manifest_path": "path/to/requirements.txt", + "scope": "runtime" + }, + "security_advisory": { + "ghsa_id": "GHSA-8f4m-hccc-8qph", + "cve_id": "CVE-2021-20191", + "summary": "Insertion of Sensitive Information into Log File in ansible", + "description": "A flaw was found in ansible. Credentials, such as secrets, are being disclosed in console log by default and not protected by no_log feature when using those modules. An attacker can take advantage of this information to steal those credentials. The highest threat from this vulnerability is to data confidentiality.", + "vulnerabilities": [ + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.9.0, < 2.9.18", + "first_patched_version": { + "identifier": "2.9.18" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": ">= 2.10.0, < 2.10.7", + "first_patched_version": { + "identifier": "2.10.7" + } + } + ], + "severity": "medium", + "cvss": { + "vector_string": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", + "score": 5.5 + }, + "cwes": [ + { + "cwe_id": "CWE-532", + "name": "Insertion of Sensitive Information into Log File" + } + ], + "identifiers": [ + { + "type": "GHSA", + "value": "GHSA-8f4m-hccc-8qph" + }, + { + "type": "CVE", + "value": "CVE-2021-20191" + } + ], + "references": [ + { + "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-20191" + }, + { + "url": "https://access.redhat.com/security/cve/cve-2021-20191" + }, + { + "url": "https://bugzilla.redhat.com/show_bug.cgi?id=1916813" + } + ], + "published_at": "2021-06-01T17:38:00Z", + "updated_at": "2021-08-12T23:06:00Z", + "withdrawn_at": null + }, + "security_vulnerability": { + "package": { + "ecosystem": "pip", + "name": "ansible" + }, + "severity": "medium", + "vulnerable_version_range": "< 2.8.19", + "first_patched_version": { + "identifier": "2.8.19" + } + }, + "url": "https://api.github.com/repos/octo-org/hello-world/dependabot/alerts/1", + "html_url": "https://github.com/octo-org/hello-world/security/dependabot/1", + "created_at": "2022-06-14T15:21:52Z", + "updated_at": "2022-06-14T15:21:52Z", + "dismissed_at": null, + "dismissed_by": null, + "dismissed_reason": null, + "dismissed_comment": null, + "fixed_at": null, + "repository": { + "id": 664700648, + "node_id": "MDEwOlJlcG9zaXRvcnk2NjQ3MDA2NDg=", + "name": "hello-world", + "full_name": "octo-org/hello-world", + "owner": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "private": true, + "html_url": "https://github.com/octo-org/hello-world", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/hello-world", + "archive_url": "https://api.github.com/repos/octo-org/hello-world/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octo-org/hello-world/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octo-org/hello-world/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octo-org/hello-world/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octo-org/hello-world/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octo-org/hello-world/comments{/number}", + "commits_url": "https://api.github.com/repos/octo-org/hello-world/commits{/sha}", + "compare_url": "https://api.github.com/repos/octo-org/hello-world/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octo-org/hello-world/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octo-org/hello-world/contributors", + "deployments_url": "https://api.github.com/repos/octo-org/hello-world/deployments", + "downloads_url": "https://api.github.com/repos/octo-org/hello-world/downloads", + "events_url": "https://api.github.com/repos/octo-org/hello-world/events", + "forks_url": "https://api.github.com/repos/octo-org/hello-world/forks", + "git_commits_url": "https://api.github.com/repos/octo-org/hello-world/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/hello-world/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/hello-world/git/tags{/sha}", + "hooks_url": "https://api.github.com/repos/octo-org/hello-world/hooks", + "issue_comment_url": "https://api.github.com/repos/octo-org/hello-world/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octo-org/hello-world/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octo-org/hello-world/issues{/number}", + "keys_url": "https://api.github.com/repos/octo-org/hello-world/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octo-org/hello-world/labels{/name}", + "languages_url": "https://api.github.com/repos/octo-org/hello-world/languages", + "merges_url": "https://api.github.com/repos/octo-org/hello-world/merges", + "milestones_url": "https://api.github.com/repos/octo-org/hello-world/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/hello-world/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octo-org/hello-world/pulls{/number}", + "releases_url": "https://api.github.com/repos/octo-org/hello-world/releases{/id}", + "stargazers_url": "https://api.github.com/repos/octo-org/hello-world/stargazers", + "statuses_url": "https://api.github.com/repos/octo-org/hello-world/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octo-org/hello-world/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/hello-world/subscription", + "tags_url": "https://api.github.com/repos/octo-org/hello-world/tags", + "teams_url": "https://api.github.com/repos/octo-org/hello-world/teams", + "trees_url": "https://api.github.com/repos/octo-org/hello-world/git/trees{/sha}" + } + } + ] + } + } + } + } + }, + "304": { + "description": "Not modified" + }, + "400": { + "description": "Bad Request", + "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" + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "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" + } + } + } + } + } + }, + "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" + } + } + } + } + } + }, + "422": { + "description": "Validation failed, or the endpoint has been spammed.", + "content": { + "application/json": { + "schema": { + "title": "Validation Error Simple", + "description": "Validation Error Simple", + "type": "object", + "required": [ + "message", + "documentation_url" + ], + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "alerts" + } + } + }, "/orgs/{org}/dependabot/secrets": { "get": { "summary": "List organization secrets", @@ -192738,6 +194559,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -193283,6 +195113,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -193827,6 +195666,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "my-app" + ] + } + } } } } @@ -204694,10 +206542,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -212434,10 +214289,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -222540,6 +224402,27 @@ } } } + }, + "503": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } } }, "x-github": { @@ -223893,10 +225776,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -276541,12 +278431,15 @@ } ] } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" + } } } } @@ -383210,6 +385103,27 @@ } } } + }, + "503": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } } }, "x-github": { @@ -443253,6 +445167,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to read", + "value": { + "permission": "read" + } + } } } } @@ -447228,6 +449150,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" + } + } } } } @@ -449154,6 +451084,15 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating blog and name", + "value": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } + } } } } @@ -455940,6 +457879,27 @@ } } } + }, + "503": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } } }, "x-github": { @@ -456318,14 +458278,21 @@ }, "responses": { "201": { - "description": "Response after successfully creaing a secret", + "description": "Response after successfully creating a secret", "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -472589,6 +474556,14 @@ "required": [ "limit" ] + }, + "examples": { + "default": { + "value": { + "limit": "collaborators_only", + "expiry": "one_month" + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.2.deref.json b/lib/rest/static/dereferenced/ghes-3.2.deref.json index d9cf4deeba..0974d86d54 100644 --- a/lib/rest/static/dereferenced/ghes-3.2.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.2.deref.json @@ -26777,6 +26777,20 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating scopes and note", + "value": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + } + } } } } @@ -156354,6 +156368,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -156899,6 +156922,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -157443,6 +157475,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "my-app" + ] + } + } } } } @@ -175134,10 +175175,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -226295,12 +226343,15 @@ } ] } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" + } } } } @@ -380592,6 +380643,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to read", + "value": { + "permission": "read" + } + } } } } @@ -384451,6 +384510,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" + } + } } } } @@ -385886,6 +385953,15 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating blog and name", + "value": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.3.deref.json b/lib/rest/static/dereferenced/ghes-3.3.deref.json index 2edf42a85e..88ae26b1ba 100644 --- a/lib/rest/static/dereferenced/ghes-3.3.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.3.deref.json @@ -26642,6 +26642,20 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating scopes and note", + "value": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + } + } } } } @@ -158227,6 +158241,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -158772,6 +158795,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -159316,6 +159348,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "my-app" + ] + } + } } } } @@ -169457,10 +169498,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -177155,10 +177203,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -228266,12 +228321,15 @@ } ] } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" + } } } } @@ -382953,6 +383011,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to read", + "value": { + "permission": "read" + } + } } } } @@ -386818,6 +386884,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" + } + } } } } @@ -388253,6 +388327,15 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating blog and name", + "value": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.4.deref.json b/lib/rest/static/dereferenced/ghes-3.4.deref.json index fc3ba1aa69..01d73d0bd7 100644 --- a/lib/rest/static/dereferenced/ghes-3.4.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.4.deref.json @@ -24645,6 +24645,20 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating scopes and note", + "value": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + } + } } } } @@ -172480,6 +172494,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -173025,6 +173048,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -173569,6 +173601,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "my-app" + ] + } + } } } } @@ -184436,10 +184477,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -192128,10 +192176,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -243493,12 +243548,15 @@ } ] } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" + } } } } @@ -398398,6 +398456,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to read", + "value": { + "permission": "read" + } + } } } } @@ -402263,6 +402329,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" + } + } } } } @@ -403698,6 +403772,15 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating blog and name", + "value": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.5.deref.json b/lib/rest/static/dereferenced/ghes-3.5.deref.json index a6a2371fd8..899696fbc0 100644 --- a/lib/rest/static/dereferenced/ghes-3.5.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.5.deref.json @@ -24645,6 +24645,20 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating scopes and note", + "value": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + } + } } } } @@ -80850,32 +80864,6 @@ } } }, - "403": { - "description": "Response if GitHub Advanced Security is not enabled for this repository", - "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" - } - } - } - } - } - }, "404": { "description": "Resource not found", "content": { @@ -179631,6 +179619,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -180176,6 +180173,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -180720,6 +180726,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "my-app" + ] + } + } } } } @@ -191587,10 +191602,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -199303,10 +199325,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -250882,12 +250911,15 @@ } ] } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" + } } } } @@ -406275,6 +406307,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to read", + "value": { + "permission": "read" + } + } } } } @@ -410154,6 +410194,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" + } + } } } } @@ -411589,6 +411637,15 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating blog and name", + "value": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.6.deref.json b/lib/rest/static/dereferenced/ghes-3.6.deref.json index ed22ed2f69..a9bb30beb6 100644 --- a/lib/rest/static/dereferenced/ghes-3.6.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.6.deref.json @@ -24727,6 +24727,20 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating scopes and note", + "value": { + "add_scopes": [ + "public_repo" + ], + "remove_scopes": [ + "user" + ], + "note": "optional note" + } + } } } } @@ -82088,32 +82102,6 @@ } } }, - "403": { - "description": "Response if GitHub Advanced Security is not enabled for this repository", - "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" - } - } - } - } - } - }, "404": { "description": "Resource not found", "content": { @@ -183665,6 +183653,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -184210,6 +184207,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -184754,6 +184760,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "my-app" + ] + } + } } } } @@ -195621,10 +195636,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -203361,10 +203383,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -255847,12 +255876,15 @@ } ] } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" + } } } } @@ -420567,6 +420599,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to read", + "value": { + "permission": "read" + } + } } } } @@ -424542,6 +424582,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" + } + } } } } @@ -425977,6 +426025,15 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating blog and name", + "value": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } + } } } } diff --git a/lib/rest/static/dereferenced/github.ae.deref.json b/lib/rest/static/dereferenced/github.ae.deref.json index 61cc5c5b23..795b95727b 100644 --- a/lib/rest/static/dereferenced/github.ae.deref.json +++ b/lib/rest/static/dereferenced/github.ae.deref.json @@ -144141,6 +144141,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -144686,6 +144695,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } + } } } } @@ -145230,6 +145248,15 @@ } } ] + }, + "examples": { + "default": { + "value": { + "apps": [ + "my-app" + ] + } + } } } } @@ -153115,10 +153142,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -160855,10 +160889,17 @@ "content": { "application/json": { "schema": { + "title": "Empty Object", + "description": "An object without any properties.", "type": "object", "properties": { }, "additionalProperties": false + }, + "examples": { + "default": { + "value": null + } } } } @@ -212001,12 +212042,15 @@ } ] } - }, - "example": { - "content_type": "json", - "insecure_ssl": "0", - "secret": "********", - "url": "https://example.com/webhook" + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" + } } } } @@ -361879,6 +361923,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to read", + "value": { + "permission": "read" + } + } } } } @@ -365777,6 +365829,14 @@ ] } } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" + } + } } } } @@ -367214,6 +367274,15 @@ "type": "string" } } + }, + "examples": { + "default": { + "summary": "Example of updating blog and name", + "value": { + "blog": "https://github.com/blog", + "name": "monalisa octocat" + } + } } } } diff --git a/lib/search/indexes/github-docs-3.2-cn-records.json.br b/lib/search/indexes/github-docs-3.2-cn-records.json.br index 3c0a1d93e4..cf8ace432b 100644 --- a/lib/search/indexes/github-docs-3.2-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.2-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:808b63704a1039e79aa86592325facbf7a8f48d5b27e9bd18527ad28dbb5e041 -size 785266 +oid sha256:dd15968a37e1f4f3d3eeb9dd34fbf713631a37a280c67dd51a2554b4740f4ecb +size 785238 diff --git a/lib/search/indexes/github-docs-3.2-cn.json.br b/lib/search/indexes/github-docs-3.2-cn.json.br index e6efe0ca68..246ff1a7e6 100644 --- a/lib/search/indexes/github-docs-3.2-cn.json.br +++ b/lib/search/indexes/github-docs-3.2-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4ae83a60154deeac784a8d7f1ffb0ec66a61f20b100a7321b547750d7237f0ed -size 1642658 +oid sha256:b5120dd28d85f01662f2e437fcfd43416adda8523c55831ae05cd33c0472a1a9 +size 1642599 diff --git a/lib/search/indexes/github-docs-3.2-en-records.json.br b/lib/search/indexes/github-docs-3.2-en-records.json.br index 69dee9a9e0..28290aa965 100644 --- a/lib/search/indexes/github-docs-3.2-en-records.json.br +++ b/lib/search/indexes/github-docs-3.2-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de46bab96e5a3cc1f2508fca45d8c98bcba21d5a163fcb02a123755572a0ec6e -size 1100857 +oid sha256:39ae49d50e510a2e09bcce630ec87fabb7a9f2ec0bf41878bf184cb66fc3aff4 +size 1100895 diff --git a/lib/search/indexes/github-docs-3.2-en.json.br b/lib/search/indexes/github-docs-3.2-en.json.br index fd7fe0209a..bf3b7dd507 100644 --- a/lib/search/indexes/github-docs-3.2-en.json.br +++ b/lib/search/indexes/github-docs-3.2-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d3248ef00c8dc9e7487fb55fb1193b5d3980101dd2cd7ea0f6c6cfa0860123db -size 4482589 +oid sha256:4496ec6829bc9ac6787544a1550c3ab67f82f7b6317416104d725d1bf343f89e +size 4482293 diff --git a/lib/search/indexes/github-docs-3.2-es-records.json.br b/lib/search/indexes/github-docs-3.2-es-records.json.br index 70fe1af738..802f24ad69 100644 --- a/lib/search/indexes/github-docs-3.2-es-records.json.br +++ b/lib/search/indexes/github-docs-3.2-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:361d9f642f587a331086c19169cc9ac924ff4d0df8658e195781debc1177e011 -size 746928 +oid sha256:7037532f2932506399f3bd2db5fd87dd9981829d4f604093540b7973671c9346 +size 746942 diff --git a/lib/search/indexes/github-docs-3.2-es.json.br b/lib/search/indexes/github-docs-3.2-es.json.br index f132915a78..1c399133ce 100644 --- a/lib/search/indexes/github-docs-3.2-es.json.br +++ b/lib/search/indexes/github-docs-3.2-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0d9b9b02e48b616894f338de13d8a85837faf67af7a384aee13208e9778de2af -size 3156653 +oid sha256:73835b488700a5dfb4c8a1cafba66c75243bdb29adf7c692624cfecfbed75283 +size 3156658 diff --git a/lib/search/indexes/github-docs-3.2-ja-records.json.br b/lib/search/indexes/github-docs-3.2-ja-records.json.br index 400f7c7d0a..849e984fe8 100644 --- a/lib/search/indexes/github-docs-3.2-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.2-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fb240105c36108687129493377b3bcc88da6aad460daf8881f9f0ec0bffb3fa0 -size 827109 +oid sha256:04f750fd0b18628109049063cfbacfa5920599520ae317b0f319fd84daa5aa5e +size 827107 diff --git a/lib/search/indexes/github-docs-3.2-ja.json.br b/lib/search/indexes/github-docs-3.2-ja.json.br index 2e59cd0a61..b104e16d29 100644 --- a/lib/search/indexes/github-docs-3.2-ja.json.br +++ b/lib/search/indexes/github-docs-3.2-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0d19a8d78d23b4b38e16a21caac8a703bee23deb28d333727395fd8b102b2344 -size 4412296 +oid sha256:950431613c3fbbef84bc721d52439a5447e2036114de055df7fc5ae40f9131b3 +size 4412757 diff --git a/lib/search/indexes/github-docs-3.2-pt-records.json.br b/lib/search/indexes/github-docs-3.2-pt-records.json.br index 29a2b039fa..d6abf260b7 100644 --- a/lib/search/indexes/github-docs-3.2-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.2-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3cc8a9ee0ac3a8254199cf023b14b0b43019d0b8b13ee18a2d79bd24b4e34fcf -size 733445 +oid sha256:d2cd4c7a32dc788e356bca320ff0eaa1a4b093e0e4e84a7197ac489f68ed6a04 +size 733415 diff --git a/lib/search/indexes/github-docs-3.2-pt.json.br b/lib/search/indexes/github-docs-3.2-pt.json.br index 7cdfb3da2b..8bd0c3c87d 100644 --- a/lib/search/indexes/github-docs-3.2-pt.json.br +++ b/lib/search/indexes/github-docs-3.2-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a4292309ffba77d5d3be3c648bfd508d0682bc2d7e2ba545d6a97c2f0a19c6ce -size 3135168 +oid sha256:1de5523f9fb939e8063047bea20fdeead13f2168929f782c7b2665be300f14de +size 3135117 diff --git a/lib/search/indexes/github-docs-3.3-cn-records.json.br b/lib/search/indexes/github-docs-3.3-cn-records.json.br index 1b5c578502..aa5fd6611c 100644 --- a/lib/search/indexes/github-docs-3.3-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.3-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8f90e52137f3c612eeab7c834f83338b1b75884e7e262de2c558c696d0a8d8b5 -size 809904 +oid sha256:808a542062d255058b815912ec415a48afd07eb43fb0bf119b2058320bf288cf +size 809829 diff --git a/lib/search/indexes/github-docs-3.3-cn.json.br b/lib/search/indexes/github-docs-3.3-cn.json.br index 39277f3010..ccae18c328 100644 --- a/lib/search/indexes/github-docs-3.3-cn.json.br +++ b/lib/search/indexes/github-docs-3.3-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b3f596f66f7a167183daa49303e5a2815d6987bce96fdc8f637fa08e6b2fe0d6 -size 1697696 +oid sha256:dc72ecccd75db8c6c7acb3b3580fcd9cb3e299b8e126184f00c4866debd2b9e4 +size 1697432 diff --git a/lib/search/indexes/github-docs-3.3-en-records.json.br b/lib/search/indexes/github-docs-3.3-en-records.json.br index a8c3a84bf6..c8739f18c3 100644 --- a/lib/search/indexes/github-docs-3.3-en-records.json.br +++ b/lib/search/indexes/github-docs-3.3-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:65d2bc22ca4c3f660d41b880cf2b22245d8ace667a469fd2ecdc61d64cd11dc6 -size 1136513 +oid sha256:d6b465c28334225a23d5ceecae6179c2e501ede556da6705c2f90537546296aa +size 1136272 diff --git a/lib/search/indexes/github-docs-3.3-en.json.br b/lib/search/indexes/github-docs-3.3-en.json.br index c748e921b7..4be7382201 100644 --- a/lib/search/indexes/github-docs-3.3-en.json.br +++ b/lib/search/indexes/github-docs-3.3-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6995178c100c6e13fdec44fd5d6863e6fbc0d582afb3b4e92ef4f728bab4a63f -size 4585860 +oid sha256:11d8116eeda4c3488786f063ee20c6898f9bf6444756423c0eeb0742973ba19a +size 4585744 diff --git a/lib/search/indexes/github-docs-3.3-es-records.json.br b/lib/search/indexes/github-docs-3.3-es-records.json.br index c6e34eb025..d75e626b15 100644 --- a/lib/search/indexes/github-docs-3.3-es-records.json.br +++ b/lib/search/indexes/github-docs-3.3-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:316e40a698c6ab5df2d6684f54e263f45b4cba923c7ad7949ddff74abb4fe474 -size 769008 +oid sha256:d19e4d355c42d5509d2f8e8522bd942bd96e9ee014e57f19f46ed2a32e82eb74 +size 768997 diff --git a/lib/search/indexes/github-docs-3.3-es.json.br b/lib/search/indexes/github-docs-3.3-es.json.br index febbee6a93..0e031fbe9f 100644 --- a/lib/search/indexes/github-docs-3.3-es.json.br +++ b/lib/search/indexes/github-docs-3.3-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e1dd71e97a98011c27df567452912f07df9902eaf235045da9c1abb1a5f9ed8c -size 3253063 +oid sha256:17ad7f54a36a283c448a219836400fac6ab6f0f64571816b162d29729f4948f6 +size 3252967 diff --git a/lib/search/indexes/github-docs-3.3-ja-records.json.br b/lib/search/indexes/github-docs-3.3-ja-records.json.br index d78e8aba5b..66bdb341a4 100644 --- a/lib/search/indexes/github-docs-3.3-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.3-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6506d257bd685ff15ce719a4e32849632301df61c69d10fafbf1e0c782811277 -size 850887 +oid sha256:dc9c0f235111d908fc779308f6030c0fcf09578905163adcde187649a59f7b46 +size 850947 diff --git a/lib/search/indexes/github-docs-3.3-ja.json.br b/lib/search/indexes/github-docs-3.3-ja.json.br index 7e2c2d4d82..6498e35c2d 100644 --- a/lib/search/indexes/github-docs-3.3-ja.json.br +++ b/lib/search/indexes/github-docs-3.3-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:807613d74094c1e5394bce2be4d881969f910f3a7d622b36db326442de3dbe59 -size 4543449 +oid sha256:56e49f354444c6ef5b87799fea2ba83bb3ec97f7f7261d66ff36e1862945d4e4 +size 4543083 diff --git a/lib/search/indexes/github-docs-3.3-pt-records.json.br b/lib/search/indexes/github-docs-3.3-pt-records.json.br index 81637c8b7c..164c3de480 100644 --- a/lib/search/indexes/github-docs-3.3-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.3-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:62b8569f1b0a41b6e44afefe2840531386835c93e0e25a069731ccb5449e3de9 +oid sha256:85888fee7b6927fa24658bf5422d7b738ee42bb479702ea692c0914247e4d76f size 755690 diff --git a/lib/search/indexes/github-docs-3.3-pt.json.br b/lib/search/indexes/github-docs-3.3-pt.json.br index 9ce9440a85..7b587c8101 100644 --- a/lib/search/indexes/github-docs-3.3-pt.json.br +++ b/lib/search/indexes/github-docs-3.3-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:117909df6d8a3dbbadfe6ada10423cd9fdb677cd736b710e00760c738cfe3b0d -size 3231148 +oid sha256:16b07e49c191444142f8927fd5f3257365c506f5be3838705351b16bc6b5ac4a +size 3230909 diff --git a/lib/search/indexes/github-docs-3.4-cn-records.json.br b/lib/search/indexes/github-docs-3.4-cn-records.json.br index afa71fc0df..b40c43a1a8 100644 --- a/lib/search/indexes/github-docs-3.4-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.4-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:394f15a2aa110e7587ccce489fb6ab641d3137b04647c563555a905086993fe1 -size 812382 +oid sha256:91819ada79f197cb65fcd57da911bc6d9310fb46870c6a0f18e925979d9ed119 +size 812317 diff --git a/lib/search/indexes/github-docs-3.4-cn.json.br b/lib/search/indexes/github-docs-3.4-cn.json.br index 6ecc60a1de..0bf851a5ab 100644 --- a/lib/search/indexes/github-docs-3.4-cn.json.br +++ b/lib/search/indexes/github-docs-3.4-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:73dc718016620f2dc21141ed76112e850535a60c6773e0740b7ec6c63bd7ec0e -size 1710699 +oid sha256:d7cfb16c05dc10572c012d5ca27c85ae627a142bb6a33841b6433c07e671045b +size 1710671 diff --git a/lib/search/indexes/github-docs-3.4-en-records.json.br b/lib/search/indexes/github-docs-3.4-en-records.json.br index ae690fc747..b5c2282868 100644 --- a/lib/search/indexes/github-docs-3.4-en-records.json.br +++ b/lib/search/indexes/github-docs-3.4-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e7c99d4183189267a7bf191428d6a68f35e147a9863fa56d6de579ed5abb1ff1 -size 1147719 +oid sha256:837f7963f2be8b91237b4d2479fd2dc0ac3b4bcb3a1c5827466eeb462938122d +size 1148230 diff --git a/lib/search/indexes/github-docs-3.4-en.json.br b/lib/search/indexes/github-docs-3.4-en.json.br index ef192704f0..9b76004641 100644 --- a/lib/search/indexes/github-docs-3.4-en.json.br +++ b/lib/search/indexes/github-docs-3.4-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b88c24d8d7eb8aa49975fb0a698513fc1dd86e4401eabec78a9b1e135cc82b2 -size 4648241 +oid sha256:eb5b59894abdbf62620e3dd6f2ff793c65ae81857f1e176fcb32530c1f8b5573 +size 4648333 diff --git a/lib/search/indexes/github-docs-3.4-es-records.json.br b/lib/search/indexes/github-docs-3.4-es-records.json.br index 08eecfd344..afb7e3f78d 100644 --- a/lib/search/indexes/github-docs-3.4-es-records.json.br +++ b/lib/search/indexes/github-docs-3.4-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:962524160050830cca06a0e486b125d1ce17592ffdbdaf2a7b5c9924bcb16612 -size 773226 +oid sha256:a7e88ebc7ab377b5d9644935264f72bb07d9aea54f1ddcad492e5395456508fb +size 773225 diff --git a/lib/search/indexes/github-docs-3.4-es.json.br b/lib/search/indexes/github-docs-3.4-es.json.br index 2f1191b675..613321ced6 100644 --- a/lib/search/indexes/github-docs-3.4-es.json.br +++ b/lib/search/indexes/github-docs-3.4-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29feaba7d2b5babadccc3489ddf438a2849960216dd8a994ccb6d037ac9e1309 -size 3279539 +oid sha256:358c896dc5feed071c1185648d8484a599e7a40f083b86b15c8f31604d3a46c7 +size 3279666 diff --git a/lib/search/indexes/github-docs-3.4-ja-records.json.br b/lib/search/indexes/github-docs-3.4-ja-records.json.br index 7000721943..88f99bb857 100644 --- a/lib/search/indexes/github-docs-3.4-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.4-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21edb5ffa844380ae49257d0fbd8be9fe4905b99ca584cfea8f2eab0fa042a5a -size 853037 +oid sha256:edf3565d052f50b7f2099c11c1b79c383b2abb31a0f8a9dc7bf6b7a46c910a14 +size 853016 diff --git a/lib/search/indexes/github-docs-3.4-ja.json.br b/lib/search/indexes/github-docs-3.4-ja.json.br index cea8788249..c672047051 100644 --- a/lib/search/indexes/github-docs-3.4-ja.json.br +++ b/lib/search/indexes/github-docs-3.4-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:11d522890f232913a67b4c62015123808a5d72226200d933d5fee8939d24b9fb -size 4571712 +oid sha256:132779ccca53c981377d04d5014ab18c76c8b25290cee5a63b9aececbe4dac52 +size 4571735 diff --git a/lib/search/indexes/github-docs-3.4-pt-records.json.br b/lib/search/indexes/github-docs-3.4-pt-records.json.br index 54d41b4931..626a708d4d 100644 --- a/lib/search/indexes/github-docs-3.4-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.4-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9eead74c9b376b0ec9c57f37a8d18a546a79174898bf4629b013d8a564d55fa7 -size 760015 +oid sha256:2628cad742d61182a644b08b4b44e347a3ee280c4e703f0db9d0b46c0d113da3 +size 760012 diff --git a/lib/search/indexes/github-docs-3.4-pt.json.br b/lib/search/indexes/github-docs-3.4-pt.json.br index 5db4b1ef32..7659f46fd1 100644 --- a/lib/search/indexes/github-docs-3.4-pt.json.br +++ b/lib/search/indexes/github-docs-3.4-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af64ab9b8a2df7bc3fdcd342336183045088802dba5000ea2b2480b96c30dae5 -size 3258921 +oid sha256:69b138787b7091dc84cf9a2c6d94f6298e147b81e9b0e1aa1a60b78ee0edd33d +size 3258927 diff --git a/lib/search/indexes/github-docs-3.5-cn-records.json.br b/lib/search/indexes/github-docs-3.5-cn-records.json.br index 4c14cf34cc..fbaf757ca9 100644 --- a/lib/search/indexes/github-docs-3.5-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.5-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a3828eeee9f12b12e71df8eae2b350e4885ae9a5692304f4b242f4bad98a7fd4 -size 842759 +oid sha256:c9248eea6103e33a3154cf72538c09890dcdd5c499ae839a4b914e57e32c09c3 +size 842749 diff --git a/lib/search/indexes/github-docs-3.5-cn.json.br b/lib/search/indexes/github-docs-3.5-cn.json.br index bba5bd03b1..45f344fb43 100644 --- a/lib/search/indexes/github-docs-3.5-cn.json.br +++ b/lib/search/indexes/github-docs-3.5-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab536cee443435696668de699af8f07feed84c095b23040a2f7953c002400a70 -size 1777348 +oid sha256:5e8fe09cb0dad8ae10aa7eacadfe61ddce2d7ae7a869392ad531e08f5418ff46 +size 1777410 diff --git a/lib/search/indexes/github-docs-3.5-en-records.json.br b/lib/search/indexes/github-docs-3.5-en-records.json.br index fdbfb2dc6f..a5b17cd7b2 100644 --- a/lib/search/indexes/github-docs-3.5-en-records.json.br +++ b/lib/search/indexes/github-docs-3.5-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a512a977a84f54d0aede20c5c4533ab4a7e813ac96de9c501aafb67567aa925 -size 1188632 +oid sha256:c01421eb17c3eaf4686939b0bff8dfba17ee39e130af57e010d15c14b3b02a6c +size 1188728 diff --git a/lib/search/indexes/github-docs-3.5-en.json.br b/lib/search/indexes/github-docs-3.5-en.json.br index 5322133bdb..712dc27bdf 100644 --- a/lib/search/indexes/github-docs-3.5-en.json.br +++ b/lib/search/indexes/github-docs-3.5-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5d98970c9c7417d719b8eb3ad5ddd98af1ec5eb7c9f13f580475b3f94e5a6b4f -size 4814780 +oid sha256:3eab6db09e87737776db48644ad44eeddd415fae6679e4089ff1e9584e588ff5 +size 4814848 diff --git a/lib/search/indexes/github-docs-3.5-es-records.json.br b/lib/search/indexes/github-docs-3.5-es-records.json.br index 46c949d964..b8ab7587b7 100644 --- a/lib/search/indexes/github-docs-3.5-es-records.json.br +++ b/lib/search/indexes/github-docs-3.5-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9d22bbbac4f34aaf16e0a01eaa92ea39880f58350f233438f9fc90eababad135 -size 798132 +oid sha256:90ea4edc798f6d9a2db2a41ed2f246f059ef46407fbdaab0340dbd77339ea190 +size 798147 diff --git a/lib/search/indexes/github-docs-3.5-es.json.br b/lib/search/indexes/github-docs-3.5-es.json.br index 941f096762..04c3b20dd9 100644 --- a/lib/search/indexes/github-docs-3.5-es.json.br +++ b/lib/search/indexes/github-docs-3.5-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:720cc04a81b1a954eb998cec17a39db1363d07106c447984bc3d8db628a0e9c4 -size 3394116 +oid sha256:d5e86d2687dcfd5be6a3de25bdedb66ba72d51375a32291de70557395cec6380 +size 3394256 diff --git a/lib/search/indexes/github-docs-3.5-ja-records.json.br b/lib/search/indexes/github-docs-3.5-ja-records.json.br index 4645aa2560..74cd6c244a 100644 --- a/lib/search/indexes/github-docs-3.5-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.5-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f81d055f1f82c3065c041a84596c7a585cffe0f6bf205450c2d27e4969686ee -size 883051 +oid sha256:bf01a0d0c5988ada188c96d61b52cb10ae2cee4a6723b64c21e34f6328d73e6f +size 883068 diff --git a/lib/search/indexes/github-docs-3.5-ja.json.br b/lib/search/indexes/github-docs-3.5-ja.json.br index 217074fdc4..670eeb30ae 100644 --- a/lib/search/indexes/github-docs-3.5-ja.json.br +++ b/lib/search/indexes/github-docs-3.5-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d3baa0c2fc9fa49dff61f10c5ea0e396d9cd059c4ae774843c63ac76c3546b43 -size 4740592 +oid sha256:9a4d2b4cc6dcc050f57eefee0995fc9cad961e4e1e501111ec8505e28861211c +size 4740470 diff --git a/lib/search/indexes/github-docs-3.5-pt-records.json.br b/lib/search/indexes/github-docs-3.5-pt-records.json.br index f3f4db947c..6580b99ebf 100644 --- a/lib/search/indexes/github-docs-3.5-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.5-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3444735d1e83a3bf62b9cccb3f0a64655c2966f9e011f390d1e5215b231cadd3 -size 785100 +oid sha256:f04603be43ebe410b1f1d6e3704c828626f98a4e0a4b4c15703343a63b5ef64b +size 785099 diff --git a/lib/search/indexes/github-docs-3.5-pt.json.br b/lib/search/indexes/github-docs-3.5-pt.json.br index 13b6581c2e..1538670358 100644 --- a/lib/search/indexes/github-docs-3.5-pt.json.br +++ b/lib/search/indexes/github-docs-3.5-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2cabdf5bf065422ff2289c2af12b7c5a74c47d4771a5d499881dc7a27e4bd694 -size 3373584 +oid sha256:554c41a8a46ad7bf862b308bdce58e5cc89adb1acf116d88bc0cdbbbbc11528c +size 3373518 diff --git a/lib/search/indexes/github-docs-3.6-cn-records.json.br b/lib/search/indexes/github-docs-3.6-cn-records.json.br index 66119c362c..cb8691ae07 100644 --- a/lib/search/indexes/github-docs-3.6-cn-records.json.br +++ b/lib/search/indexes/github-docs-3.6-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5ef35da86f1079dfaab68c9037974e4b5d1c41e6b03d911721bf1f7cbd148c67 -size 866098 +oid sha256:e65cb4f1545881d18d9377530f0a43b99129c1ec24d41b0e84682da5043b418f +size 866188 diff --git a/lib/search/indexes/github-docs-3.6-cn.json.br b/lib/search/indexes/github-docs-3.6-cn.json.br index fc167b3c86..36cb715c68 100644 --- a/lib/search/indexes/github-docs-3.6-cn.json.br +++ b/lib/search/indexes/github-docs-3.6-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:357606607a5d73fd6d5f740d849971b169462f79e40410617331e2b98be31564 -size 1820582 +oid sha256:dcf9fed39e22ed70c202ad8a72daf45c522db12a5711ad0a5c94501eee10cccb +size 1819843 diff --git a/lib/search/indexes/github-docs-3.6-en-records.json.br b/lib/search/indexes/github-docs-3.6-en-records.json.br index db5cfe1717..d90ade650e 100644 --- a/lib/search/indexes/github-docs-3.6-en-records.json.br +++ b/lib/search/indexes/github-docs-3.6-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ff175b915e80f702986fb40f1fe7f6f2d8543f9f3dc1f308310154c11ea4627b -size 1222847 +oid sha256:2bd4ac30684a7f3793cda1352a7f9bb98ad59cd1bd44bd377cfb7dabddabcd11 +size 1223112 diff --git a/lib/search/indexes/github-docs-3.6-en.json.br b/lib/search/indexes/github-docs-3.6-en.json.br index 6b92543f3c..8fa8942184 100644 --- a/lib/search/indexes/github-docs-3.6-en.json.br +++ b/lib/search/indexes/github-docs-3.6-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2ad712b230ff5079c4c47d904a886719c6861314d11fdc0858b3ac1bee7d4b24 -size 4951338 +oid sha256:3292663ddb509c04b2aa54728f0d88dd2375911d1f2982abab823d5f332fdd3b +size 4951235 diff --git a/lib/search/indexes/github-docs-3.6-es-records.json.br b/lib/search/indexes/github-docs-3.6-es-records.json.br index 9d0d87f223..943023a9a2 100644 --- a/lib/search/indexes/github-docs-3.6-es-records.json.br +++ b/lib/search/indexes/github-docs-3.6-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f651cd64bcba847919b396acac9668d5200b2fa419fe5b7494948ae4615a168a -size 822257 +oid sha256:cb3f9cdda86d10ed843e0961dd6bd6072dfc0472b4850097cf673634a67711d5 +size 822243 diff --git a/lib/search/indexes/github-docs-3.6-es.json.br b/lib/search/indexes/github-docs-3.6-es.json.br index 07d99ce8ac..d7259cdf33 100644 --- a/lib/search/indexes/github-docs-3.6-es.json.br +++ b/lib/search/indexes/github-docs-3.6-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ba2b1e719d838fea013ad72e8d928d96e7db31d37a17daab4a01ad96e7527d26 -size 3501579 +oid sha256:242c0a2ebc12b14208a0b38eac755e6d3729b04df05d8e9e0e6ca69e4c10135b +size 3501176 diff --git a/lib/search/indexes/github-docs-3.6-ja-records.json.br b/lib/search/indexes/github-docs-3.6-ja-records.json.br index 33c476b509..b97a02384f 100644 --- a/lib/search/indexes/github-docs-3.6-ja-records.json.br +++ b/lib/search/indexes/github-docs-3.6-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8f3d33a0c5c824ab31d75a6e18fff83d538fb27a1bca25050e7663eaf68d4974 -size 909051 +oid sha256:a97f8144d351d48443452c734da1e326afa59f0291d8370f5df461fa625f9a26 +size 909063 diff --git a/lib/search/indexes/github-docs-3.6-ja.json.br b/lib/search/indexes/github-docs-3.6-ja.json.br index 6d40c11196..11fa1ef377 100644 --- a/lib/search/indexes/github-docs-3.6-ja.json.br +++ b/lib/search/indexes/github-docs-3.6-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:707030d50261ddb051e9f9bf157f02a72bff3e01742c69b574b58d121f2f0393 -size 4882093 +oid sha256:1489a4b0ca6217b01c1a7d92325aeb7eaa6745da7f803167eb673f2aa29ccc6b +size 4881586 diff --git a/lib/search/indexes/github-docs-3.6-pt-records.json.br b/lib/search/indexes/github-docs-3.6-pt-records.json.br index 2cac45c915..427e1d008e 100644 --- a/lib/search/indexes/github-docs-3.6-pt-records.json.br +++ b/lib/search/indexes/github-docs-3.6-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0ba34acc771a7f490cd2d868224695f9c012c8be9742f81edf4236aba2926869 -size 808189 +oid sha256:4a03e08f63c4b27992b101c2631e0d89ad78f57dfc6a23f4253a9d4fe623fbfb +size 808073 diff --git a/lib/search/indexes/github-docs-3.6-pt.json.br b/lib/search/indexes/github-docs-3.6-pt.json.br index 5ccb4b56b8..5cb66b874e 100644 --- a/lib/search/indexes/github-docs-3.6-pt.json.br +++ b/lib/search/indexes/github-docs-3.6-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:27c6e2b0e9363762bbfda8d11cfaa7c409ad5ff12e648b3ecc2ddb9c38a7e4b1 -size 3475772 +oid sha256:7997d45b70f741e9172031a10fe802d234cb37c0cb63cfe540717d619076aa74 +size 3475604 diff --git a/lib/search/indexes/github-docs-dotcom-cn-records.json.br b/lib/search/indexes/github-docs-dotcom-cn-records.json.br index 507c2bc24b..331b4b4ee8 100644 --- a/lib/search/indexes/github-docs-dotcom-cn-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4d35f00061d27ba05190ac20c3779afe26fb75079ff75a0ca6bd22d2e7528c5f -size 1011769 +oid sha256:16b3a12b97ce56dbfed39de7858e7139ef5d7eed8d9341d7ca6396c997511c33 +size 1011929 diff --git a/lib/search/indexes/github-docs-dotcom-cn.json.br b/lib/search/indexes/github-docs-dotcom-cn.json.br index 130530050e..18489fd292 100644 --- a/lib/search/indexes/github-docs-dotcom-cn.json.br +++ b/lib/search/indexes/github-docs-dotcom-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b74745636ad124d4d18a0932913dc7aed325a547c647593150b5a25359b18adf -size 1912992 +oid sha256:6db6f4a794b1861bcb1947f5f66f9b0677fabf48227ee858029da71935998638 +size 1912968 diff --git a/lib/search/indexes/github-docs-dotcom-en-records.json.br b/lib/search/indexes/github-docs-dotcom-en-records.json.br index b5fe82ad45..d0cdd667db 100644 --- a/lib/search/indexes/github-docs-dotcom-en-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9ee3a9c46d624bbc5e9ac49369b8d9816d59e19656a09066a706e07e76d90d53 -size 1443384 +oid sha256:857ba8ed9d1abfce60d88c3de31e8d458c3294b80596ef6f35ba2fe110054c46 +size 1449010 diff --git a/lib/search/indexes/github-docs-dotcom-en.json.br b/lib/search/indexes/github-docs-dotcom-en.json.br index f51b4ee7f4..5783bab764 100644 --- a/lib/search/indexes/github-docs-dotcom-en.json.br +++ b/lib/search/indexes/github-docs-dotcom-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eb57719291bd114abd3956051fea748d5c97d2a21b73dca8eda45784331d1aae -size 5638189 +oid sha256:9cf280ad1d1687dbec6fff9b45b74f3a571cefe9a866f56f8388902fd8020545 +size 5637155 diff --git a/lib/search/indexes/github-docs-dotcom-es-records.json.br b/lib/search/indexes/github-docs-dotcom-es-records.json.br index 8c8612e1b6..da068cd82a 100644 --- a/lib/search/indexes/github-docs-dotcom-es-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5282dbf6bb91d0d8e79b957fb2dd1817c256e48f1e28d68b2793f1e49790e517 -size 948951 +oid sha256:a34571f218c4d999a7855526771fb9431cb91dd73496a32d19179e176b93457a +size 948843 diff --git a/lib/search/indexes/github-docs-dotcom-es.json.br b/lib/search/indexes/github-docs-dotcom-es.json.br index 3e26e51284..7fdb1e5613 100644 --- a/lib/search/indexes/github-docs-dotcom-es.json.br +++ b/lib/search/indexes/github-docs-dotcom-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3141f9b4f85ee24713cd459a3c1470fbf715c0ad67862c2e73af79fdf4b6b8d6 -size 3950384 +oid sha256:bcde31a5979939acc681451e05508427f108c494d0984d1eece56ae95fc9e26a +size 3950459 diff --git a/lib/search/indexes/github-docs-dotcom-ja-records.json.br b/lib/search/indexes/github-docs-dotcom-ja-records.json.br index cb1b16f534..6dbfd13c48 100644 --- a/lib/search/indexes/github-docs-dotcom-ja-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b8a660421102e142978a5af3af01b06c8f1170d62f9e6a7650ac30750706ba2e -size 1059319 +oid sha256:229e07b69d71b1f17a56fb47269c50b228b4c47facb2c43019d3acc27d2e886c +size 1059308 diff --git a/lib/search/indexes/github-docs-dotcom-ja.json.br b/lib/search/indexes/github-docs-dotcom-ja.json.br index 1a9375e705..fe8e83580b 100644 --- a/lib/search/indexes/github-docs-dotcom-ja.json.br +++ b/lib/search/indexes/github-docs-dotcom-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d530baacd62cb03ac2420b6c872cfc52db46222645789a5b2dcc123659b42472 -size 5529246 +oid sha256:a472a1ef7e50ab0a93ba6279e65e0fd39858c92d342724dd4da2f23dc281edbf +size 5529089 diff --git a/lib/search/indexes/github-docs-dotcom-pt-records.json.br b/lib/search/indexes/github-docs-dotcom-pt-records.json.br index b88c0d1502..489ef95107 100644 --- a/lib/search/indexes/github-docs-dotcom-pt-records.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5d17c16dcc60d13efdbd9473d6a2d2ec687f6d7f7a9e54d5ebd06c3433fb12fe -size 932173 +oid sha256:dc2416b2d505c5abc88b07154f4b588612ea92c68b55e157a6d1a92b5fb4bf2e +size 932144 diff --git a/lib/search/indexes/github-docs-dotcom-pt.json.br b/lib/search/indexes/github-docs-dotcom-pt.json.br index 3c0c3e1410..1a42cdb06f 100644 --- a/lib/search/indexes/github-docs-dotcom-pt.json.br +++ b/lib/search/indexes/github-docs-dotcom-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7a9ea0e0ea4c69980eaba19cabcffee0d25c785de739cc820f49d7265bfb9a0c -size 3905889 +oid sha256:11d4a8877c4ae82c233f422abef3eba359ad9da744c9f98e012a1fa4930bac92 +size 3905843 diff --git a/lib/search/indexes/github-docs-ghae-cn-records.json.br b/lib/search/indexes/github-docs-ghae-cn-records.json.br index 873e2ccd6a..0441792127 100644 --- a/lib/search/indexes/github-docs-ghae-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghae-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:029eccd948678c7c5a4738ab69267584a9ddb4b9a82ebca92b8a235affff741a -size 649760 +oid sha256:2a51eb0641756b3096e234e20237555b0b5dd65d2b5e401cdf3d0a87a540d3d0 +size 649757 diff --git a/lib/search/indexes/github-docs-ghae-cn.json.br b/lib/search/indexes/github-docs-ghae-cn.json.br index d4474d897d..deb9a79e01 100644 --- a/lib/search/indexes/github-docs-ghae-cn.json.br +++ b/lib/search/indexes/github-docs-ghae-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f8676fed94284ac347f1304ff9ac82b106062e6e5ecc72f8fc0f94e5630e7831 -size 1381605 +oid sha256:8ccf23b012e027873fc708c619c9d00f5b3bfca013b32abc28438f3c5722eaa6 +size 1381613 diff --git a/lib/search/indexes/github-docs-ghae-en-records.json.br b/lib/search/indexes/github-docs-ghae-en-records.json.br index 80e49a884b..3bb0d6a861 100644 --- a/lib/search/indexes/github-docs-ghae-en-records.json.br +++ b/lib/search/indexes/github-docs-ghae-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dc6525062c186911de95e17fe35243e334d004a439d895ecf41256ebdf4800c0 -size 943628 +oid sha256:2c825b1790eec94ea6c4e28a971e9cd40a078490638629aeabd3b383fefb8ef0 +size 943692 diff --git a/lib/search/indexes/github-docs-ghae-en.json.br b/lib/search/indexes/github-docs-ghae-en.json.br index 07d8f3300a..4251db271c 100644 --- a/lib/search/indexes/github-docs-ghae-en.json.br +++ b/lib/search/indexes/github-docs-ghae-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:27e7c5b32ae76bd379550d88a65930409d62abb35cbf5b14f7c9f81aa70403e9 -size 3775994 +oid sha256:ecc0e0dd0d62ab8b986b51e04b84cd1b1fabde723cc6681aed4a21be1a035fb1 +size 3775829 diff --git a/lib/search/indexes/github-docs-ghae-es-records.json.br b/lib/search/indexes/github-docs-ghae-es-records.json.br index 2ae6dd1eed..f3a121a807 100644 --- a/lib/search/indexes/github-docs-ghae-es-records.json.br +++ b/lib/search/indexes/github-docs-ghae-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:72c6f4f080691bc49ba5bf763f6449541b1fd0706dc12d52dc75269823090672 -size 626903 +oid sha256:ce1e0ee4f8770feaa271413b1894b98d3b2b11e602e3c5eec918c661d6941d20 +size 626935 diff --git a/lib/search/indexes/github-docs-ghae-es.json.br b/lib/search/indexes/github-docs-ghae-es.json.br index 7f646c025e..2cd27ef86c 100644 --- a/lib/search/indexes/github-docs-ghae-es.json.br +++ b/lib/search/indexes/github-docs-ghae-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1a8f1971b08020903b63d01b933811595ddb25691ef4afa0f83aff81f5419527 -size 2590541 +oid sha256:49626027d3920a3398279f46c41a0fb8099934f0dc505c95d2d69804c8304adb +size 2590617 diff --git a/lib/search/indexes/github-docs-ghae-ja-records.json.br b/lib/search/indexes/github-docs-ghae-ja-records.json.br index d3c11a943b..7cdad3ac45 100644 --- a/lib/search/indexes/github-docs-ghae-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghae-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c7d8fb79e8fbf1f625d12d7edc99de853029a00575bbe507e14a23751af5e715 -size 682031 +oid sha256:fca2527be64fc10ee0b63c5028f2d28238c0db4b6deb65f9f4742d8fe0537817 +size 682016 diff --git a/lib/search/indexes/github-docs-ghae-ja.json.br b/lib/search/indexes/github-docs-ghae-ja.json.br index ae2b137d4f..f148a7512e 100644 --- a/lib/search/indexes/github-docs-ghae-ja.json.br +++ b/lib/search/indexes/github-docs-ghae-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b6b6afd236e46e41d17b2e6d44cd1f072dd90c07042fa15802e9376cd018363 -size 3571994 +oid sha256:899a5c98850d6c3e5de0937aaa051e4a87799729b68e3621511696938cae652f +size 3571786 diff --git a/lib/search/indexes/github-docs-ghae-pt-records.json.br b/lib/search/indexes/github-docs-ghae-pt-records.json.br index c10baefa9b..b41c021a23 100644 --- a/lib/search/indexes/github-docs-ghae-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghae-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0aa6f6bc7c36907a73978ab1544c46b5de85f6d129e301a1c58982065714c3dc -size 616446 +oid sha256:b3d6f38fd7b2888eca494b3457ea725debe4f62e6c6383279f19ceacb6789d0d +size 616428 diff --git a/lib/search/indexes/github-docs-ghae-pt.json.br b/lib/search/indexes/github-docs-ghae-pt.json.br index 94c3c97cb2..9ee3b019b3 100644 --- a/lib/search/indexes/github-docs-ghae-pt.json.br +++ b/lib/search/indexes/github-docs-ghae-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:861798feeae13827cd410e2d325649ad47939366673159563bf7210549fb75b3 -size 2574632 +oid sha256:ca0fa471022d19ec01c3b3a2ca42665e7b1433fd4e869bbeb44f5ed733bb6243 +size 2574656 diff --git a/lib/search/indexes/github-docs-ghec-cn-records.json.br b/lib/search/indexes/github-docs-ghec-cn-records.json.br index ea00b92314..05e6ddf402 100644 --- a/lib/search/indexes/github-docs-ghec-cn-records.json.br +++ b/lib/search/indexes/github-docs-ghec-cn-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:345ce05737e69a9bad813c8aec15d1adb93837111bb40b1929216ee9f513d76c -size 993830 +oid sha256:bfb17219a04d8b748811080d1bc23e030dc046eec5f28f705cfe10216f5c8b9f +size 993951 diff --git a/lib/search/indexes/github-docs-ghec-cn.json.br b/lib/search/indexes/github-docs-ghec-cn.json.br index 63870b6249..586c3647f6 100644 --- a/lib/search/indexes/github-docs-ghec-cn.json.br +++ b/lib/search/indexes/github-docs-ghec-cn.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d52671efe8bb986f4597413e9ae0018961d26219fc32158291c664e41870f865 -size 2064574 +oid sha256:aeb59575c7226241e550e5a0dbbf6f12a87d00d710b2edaa6ba3f9078614e155 +size 2064757 diff --git a/lib/search/indexes/github-docs-ghec-en-records.json.br b/lib/search/indexes/github-docs-ghec-en-records.json.br index 0eccf8c1af..80e40e6ccd 100644 --- a/lib/search/indexes/github-docs-ghec-en-records.json.br +++ b/lib/search/indexes/github-docs-ghec-en-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:734a51ef123dc1501abe28d9951068f30d21197f2467ec28ab1594c4533aea8c -size 1414386 +oid sha256:d22ef7e0a2911a5c2f432cc55fb66e38899aad868f03933d791c62733c46ea5e +size 1414344 diff --git a/lib/search/indexes/github-docs-ghec-en.json.br b/lib/search/indexes/github-docs-ghec-en.json.br index 11c4eb2d49..18f3e94a2b 100644 --- a/lib/search/indexes/github-docs-ghec-en.json.br +++ b/lib/search/indexes/github-docs-ghec-en.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d8cc8ba7ca6bd3229245764d2459a332697ef47893872aeff60dcff89c2d108b -size 5767186 +oid sha256:2e2c1c476887a741b3962e9bbf9c739d8bc3bf8363e15ef86f242e88b3e7acd6 +size 5767599 diff --git a/lib/search/indexes/github-docs-ghec-es-records.json.br b/lib/search/indexes/github-docs-ghec-es-records.json.br index 44a9251523..692f884af8 100644 --- a/lib/search/indexes/github-docs-ghec-es-records.json.br +++ b/lib/search/indexes/github-docs-ghec-es-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:77d313c2406e05c2febd43eadb5e2d3675ab37f28049f1d593cbd59806de26a9 -size 956497 +oid sha256:db3393aafc689513e30e2c6594028e54228f32ec9290a0705faf1c9e3b0a2cea +size 956509 diff --git a/lib/search/indexes/github-docs-ghec-es.json.br b/lib/search/indexes/github-docs-ghec-es.json.br index 1fb99f5621..3477828914 100644 --- a/lib/search/indexes/github-docs-ghec-es.json.br +++ b/lib/search/indexes/github-docs-ghec-es.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:62a7331c99b98f021586fa4a61a1f7adf88214879312201e5a654bb72ac0505d -size 4128837 +oid sha256:9e52e7128b673d34f273136f9d91f14598717f015922cfdd1a97fa7871d2c474 +size 4128771 diff --git a/lib/search/indexes/github-docs-ghec-ja-records.json.br b/lib/search/indexes/github-docs-ghec-ja-records.json.br index d380ee5dea..26d47def50 100644 --- a/lib/search/indexes/github-docs-ghec-ja-records.json.br +++ b/lib/search/indexes/github-docs-ghec-ja-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:41a2e5a416712be055c71744f19641e7bcd52736febff93be9481ff59a33fa58 -size 1050177 +oid sha256:86f0467a40ff24ba8e0d3c81c37ef06db7cf6dfe944f7d69ba60190cb317d2a5 +size 1050192 diff --git a/lib/search/indexes/github-docs-ghec-ja.json.br b/lib/search/indexes/github-docs-ghec-ja.json.br index 04f4cd4e18..ae073ecf0b 100644 --- a/lib/search/indexes/github-docs-ghec-ja.json.br +++ b/lib/search/indexes/github-docs-ghec-ja.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a94d42eb5149bed00872cebdee14f6edc0116b3a0dac8694241d898666ca4373 -size 5683301 +oid sha256:833217a14f9c570722f69a7ca5da0ee9061bbc49244c32cecfe4d85309494cd9 +size 5683074 diff --git a/lib/search/indexes/github-docs-ghec-pt-records.json.br b/lib/search/indexes/github-docs-ghec-pt-records.json.br index 79d7e5ca66..a0391a7350 100644 --- a/lib/search/indexes/github-docs-ghec-pt-records.json.br +++ b/lib/search/indexes/github-docs-ghec-pt-records.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:798b5ade474def827d4fe5a1073259b7221222ef7399518c5f6c56a2de224c0e -size 939084 +oid sha256:28c6fd15bb706e2a42feaf4ef81db31677f2e64a2cf1e0adb4478c1494ac02ef +size 938940 diff --git a/lib/search/indexes/github-docs-ghec-pt.json.br b/lib/search/indexes/github-docs-ghec-pt.json.br index e6e0fcbe4c..79ca848b00 100644 --- a/lib/search/indexes/github-docs-ghec-pt.json.br +++ b/lib/search/indexes/github-docs-ghec-pt.json.br @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c98a9028dff47e68afd2232ce7d6e9a0a50494d47f055a7f220e23ce8c99c53 -size 4076317 +oid sha256:b0a74453171c3a8a0c7868b2d09ddc22b44314cdbd6ad0a14e5fb0fa51aa9a39 +size 4075940 diff --git a/middleware/api/index.js b/middleware/api/index.js index c9b04bbe43..f95df82537 100644 --- a/middleware/api/index.js +++ b/middleware/api/index.js @@ -37,4 +37,8 @@ if (process.env.ELASTICSEARCH_URL) { ) } +router.get('*', (req, res, next) => { + res.status(404).json({ error: `${req.path} not found` }) +}) + export default router diff --git a/middleware/categories-for-support.js b/middleware/categories-for-support.js index 317bb6c451..72ca2fef66 100644 --- a/middleware/categories-for-support.js +++ b/middleware/categories-for-support.js @@ -6,46 +6,30 @@ const renderOpts = { textOnly: true, encodeEntities: true } const cacheControl = cacheControlFactory(60 * 60 * 24) -// Module-global variable that gets populate once the categoriesForSupport() -// runs at least once. -let globalAllCategoriesCache = null - // This middleware exposes a list of all categories and child articles at /categories.json. // GitHub Support uses this for internal ZenDesk search functionality. export default async function categoriesForSupport(req, res) { const englishSiteTree = req.context.siteTree.en + const allCategories = [] - const allCategories = globalAllCategoriesCache || [] - if (!allCategories.length) { + for (const productPage of Object.values(englishSiteTree['free-pro-team@latest'].childPages)) { + if (productPage.page.relativePath.startsWith('early-access')) continue + if (!productPage.childPages || !productPage.childPages.length) continue await Promise.all( - Object.keys(englishSiteTree).map(async (version) => { - await Promise.all( - englishSiteTree[version].childPages.map(async (productPage) => { - if (productPage.page.relativePath.startsWith('early-access')) return - if (!productPage.childPages) return + productPage.childPages.map(async (categoryPage) => { + // We can't get the rendered titles from middleware/render-tree-titles + // here because that middleware only runs on the current version, and this + // middleware processes all versions. + const name = categoryPage.page.title.includes('{') + ? await categoryPage.page.renderProp('title', req.context, renderOpts) + : categoryPage.page.title - await Promise.all( - productPage.childPages.map(async (categoryPage) => { - // We can't get the rendered titles from middleware/render-tree-titles - // here because that middleware only runs on the current version, and this - // middleware processes all versions. - const name = categoryPage.page.title.includes('{') - ? await categoryPage.page.renderProp('title', req.context, renderOpts) - : categoryPage.page.title - - allCategories.push({ - name, - published_articles: await findArticlesPerCategory(categoryPage, [], req.context), - }) - }) - ) - }) - ) + allCategories.push({ + name, + published_articles: await findArticlesPerCategory(categoryPage, [], req.context), + }) }) ) - if (allCategories.length && process.env.NODE_ENV !== 'development') { - globalAllCategoriesCache = allCategories - } } // Cache somewhat aggressively but note that it will be soft-purged diff --git a/middleware/context.js b/middleware/context.js index 6cc53abb73..6c892a780d 100644 --- a/middleware/context.js +++ b/middleware/context.js @@ -1,7 +1,7 @@ import languages from '../lib/languages.js' import enterpriseServerReleases from '../lib/enterprise-server-releases.js' import { allVersions } from '../lib/all-versions.js' -import { productMap, getProductGroups } from '../lib/all-products.js' +import { productMap } from '../lib/all-products.js' import pathUtils from '../lib/path-utils.js' import productNames from '../lib/product-names.js' import warmServer from '../lib/warm-server.js' @@ -39,7 +39,6 @@ export default async function contextualize(req, res, next) { req.context.currentProduct = getProductStringFromPath(req.pagePath) req.context.currentCategory = getCategoryStringFromPath(req.pagePath) req.context.productMap = productMap - req.context.productGroups = getProductGroups(pageMap, req.language) req.context.activeProducts = activeProducts req.context.allVersions = allVersions req.context.currentPathWithoutLanguage = getPathWithoutLanguage(req.pagePath) diff --git a/middleware/contextualizers/product-groups.js b/middleware/contextualizers/product-groups.js new file mode 100644 index 0000000000..74bcb0cc95 --- /dev/null +++ b/middleware/contextualizers/product-groups.js @@ -0,0 +1,32 @@ +import { getProductGroups } from '../../lib/all-products.js' +import warmServer from '../../lib/warm-server.js' +import { languageKeys } from '../../lib/languages.js' +import { allVersionKeys } from '../../lib/all-versions.js' + +const isHomepage = (path) => { + const split = path.split('/') + // E.g. `/foo` but not `foo/bar` or `foo/` + if (split.length === 2 && split[1] && !split[0]) { + return languageKeys.includes(split[1]) + } + // E.g. `/foo/possiblyproductname` but not `foo/possiblyproductname` or + // `/foo/something/` + if (split.length === 3 && !split[0] && split[2]) { + return allVersionKeys.includes(split[2]) + } + return false +} + +export default async function productGroups(req, res, next) { + // It's important to use `req.pathPage` instead of `req.path` because + // the request could be the client-side routing from Next where the URL + // might be something like `/_next/data/foo/bar.json` which is translated, + // in another middleware, to what it would equate to if it wasn't + // client-side routing. + if (isHomepage(req.pagePath)) { + const { pages } = await warmServer() + req.context.productGroups = getProductGroups(pages, req.language) + } + + return next() +} diff --git a/middleware/index.js b/middleware/index.js index 610e593d0e..dff852abe9 100644 --- a/middleware/index.js +++ b/middleware/index.js @@ -45,6 +45,7 @@ import genericToc from './contextualizers/generic-toc.js' import breadcrumbs from './contextualizers/breadcrumbs.js' import features from './contextualizers/features.js' import productExamples from './contextualizers/product-examples.js' +import productGroups from './contextualizers/product-groups.js' import featuredLinks from './featured-links.js' import learningTrack from './learning-track.js' import next from './next.js' @@ -267,6 +268,7 @@ export default function (app) { app.use(asyncMiddleware(instrument(breadcrumbs, './contextualizers/breadcrumbs'))) app.use(instrument(features, './contextualizers/features')) app.use(asyncMiddleware(instrument(productExamples, './contextualizers/product-examples'))) + app.use(asyncMiddleware(instrument(productGroups, './contextualizers/product-groups'))) app.use(asyncMiddleware(instrument(featuredLinks, './featured-links'))) app.use(asyncMiddleware(instrument(learningTrack, './learning-track'))) diff --git a/package-lock.json b/package-lock.json index e1f640c5a8..057ade1852 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19905,7 +19905,8 @@ }, "node_modules/uuid": { "version": "8.3.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "bin": { "uuid": "dist/bin/uuid" } @@ -34494,7 +34495,9 @@ "version": "1.0.1" }, "uuid": { - "version": "8.3.2" + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "uvu": { "version": "0.5.2", diff --git a/pages/index.tsx b/pages/index.tsx index 751d5d1997..15c86d3d50 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,12 +1,13 @@ -import { GetServerSideProps } from 'next' +import React from 'react' +import type { GetServerSideProps } from 'next' import { MainContextT, MainContext, getMainContext } from 'components/context/MainContext' -import React from 'react' import { DefaultLayout } from 'components/DefaultLayout' import { useTranslation } from 'components/hooks/useTranslation' import { ArticleList } from 'components/landing/ArticleList' import { HomePageHero } from 'components/homepage/HomePageHero' +import type { ProductGroupT } from 'components/homepage/ProductSelections' import { ProductSelections } from 'components/homepage/ProductSelections' type FeaturedLink = { @@ -19,13 +20,23 @@ type Props = { mainContext: MainContextT popularLinks: Array gettingStartedLinks: Array + productGroups: Array } -export default function MainHomePage({ mainContext, gettingStartedLinks, popularLinks }: Props) { +export default function MainHomePage({ + mainContext, + gettingStartedLinks, + popularLinks, + productGroups, +}: Props) { return ( - + ) @@ -34,15 +45,16 @@ export default function MainHomePage({ mainContext, gettingStartedLinks, popular type HomePageProps = { popularLinks: Array gettingStartedLinks: Array + productGroups: Array } function HomePage(props: HomePageProps) { - const { gettingStartedLinks, popularLinks } = props + const { gettingStartedLinks, popularLinks, productGroups } = props const { t } = useTranslation(['toc']) return (
- +
@@ -67,6 +79,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => return { props: { mainContext: await getMainContext(req, res), + productGroups: req.context.productGroups, gettingStartedLinks: req.context.featuredLinks.gettingStarted.map( ({ title, href, intro }: any) => ({ title, href, intro }) ), diff --git a/script/README.md b/script/README.md index 6e326c26ef..7ae765aee6 100644 --- a/script/README.md +++ b/script/README.md @@ -39,28 +39,98 @@ Usage: script/anonymize-branch.js [base-branch] Example: sc --- -### [`check-english-links.js`](check-english-links.js) +### [`bookmarklets/add-pr-links.js`](bookmarklets/add-pr-links.js) + + + +--- + + +### [`bookmarklets/open-in-vscode.js`](bookmarklets/open-in-vscode.js) + + + +--- + + +### [`bookmarklets/pr-link-source.js`](bookmarklets/pr-link-source.js) + + + +--- + + +### [`bookmarklets/view-in-development.js`](bookmarklets/view-in-development.js) + + + +--- + + +### [`bookmarklets/view-in-production.js`](bookmarklets/view-in-production.js) + -This script runs once per day via a scheduled GitHub Action to check all links in English content, not including deprecated Enterprise Server content. It opens an issue if it finds broken links. To exclude a link path, add it to `lib/excluded-links.js`. --- ### [`check-for-node`](check-for-node) -This script is run automatically when you run the server locally. It checks whether or not Node.js is installed. +This script is run automatically when you run the server locally. It checks whether Node.js is installed. --- -### [`content-migrations/extended-markdown-tags.js`](content-migrations/extended-markdown-tags.js) +### [`check-github-github-links.js`](check-github-github-links.js) + +Run this script to get all broken docs.github.com links in github/github + +--- + + +### [`content-migrations/add-early-access-tocs.js`](content-migrations/add-early-access-tocs.js) --- -### [`content-migrations/octicon-tag.js`](content-migrations/octicon-tag.js) +### [`content-migrations/add-ghec-to-schema.js`](content-migrations/add-ghec-to-schema.js) + +A one-time use script to add GHEC to the REST schema on github/github. + +--- + + +### [`content-migrations/add_mini_toc_frontmatter.js`](content-migrations/add_mini_toc_frontmatter.js) + +Run this one time script to add max mini toc to rest reference documentation + +--- + + +### [`content-migrations/comment-on-open-prs.js`](content-migrations/comment-on-open-prs.js) + +This script finds all open PRs from active branches that touch content files, and adds a comment with steps to run some commands. The idea is to help writers and other Hubbers update their open branches and mitigate conflicts with the main branch. + +--- + + +### [`content-migrations/convert-if-to-ifversion.js`](content-migrations/convert-if-to-ifversion.js) + +Run this one-time script to convert `if ` Liquid tags to `ifversion `. + +--- + + +### [`content-migrations/create-csv-of-short-titles.js`](content-migrations/create-csv-of-short-titles.js) + + + +--- + + +### [`content-migrations/move-unique-image-assets.js`](content-migrations/move-unique-image-assets.js) @@ -74,7 +144,14 @@ This script is run automatically when you run the server locally. It checks whet --- -### [`content-migrations/site-data-tag.js`](content-migrations/site-data-tag.js) +### [`content-migrations/remove-unused-assets.js`](content-migrations/remove-unused-assets.js) + + + +--- + + +### [`content-migrations/topics-upcase.js`](content-migrations/topics-upcase.js) @@ -88,17 +165,72 @@ This script is run automatically when you run the server locally. It checks whet --- -### [`create-glossary-from-spreadsheet.js`](create-glossary-from-spreadsheet.js) +### [`content-migrations/update-headers.js`](content-migrations/update-headers.js) + +Run this one time script to update headers for accessibility Changing H3 to H2, H4 to H3, H5 to H4, and H6 to H5 + +--- + + +### [`content-migrations/update-versioning-in-files.js`](content-migrations/update-versioning-in-files.js) -This script turns a Google Sheets CSV spreadsheet into a YAML file. --- -### [`early-access/clone-for-build.js`](early-access/clone-for-build.js) +### [`content-migrations/use-short-versions.js`](content-migrations/use-short-versions.js) + +Run this script to convert long form Liquid conditionals (e.g., {% if currentVersion == "free-pro-team" %}) to the new custom tag (e.g., {% ifversion fpt %}) and also use the short names in versions frontmatter. + +--- + + +### [`copy-to-test-repo.sh`](copy-to-test-repo.sh) + + + +--- + + +### [`create-glossary-from-spreadsheet.js`](create-glossary-from-spreadsheet.js) + +This script turns a Google Sheets CSV spreadsheet into a YAML file. + +--- + + +### [`deployment/purge-edge-cache.js`](deployment/purge-edge-cache.js) + + + +--- + + +### [`dev-toc/generate.js`](dev-toc/generate.js) + + + +--- + + +### [`dev-toc/index.js`](dev-toc/index.js) + + + +--- + + +### [`dev-toc/layout.html`](dev-toc/layout.html) + + + +--- + + +### [`domwaiter.js`](domwaiter.js) + -This script is run as a postbuild script during staging and deployments on Heroku. It clones a branch in the early-access repo that matches the current branch in the docs repo; if one can't be found, it clones the `main` branch. --- @@ -135,6 +267,21 @@ This script is run on a writer's machine while developing Early Access content l Run this script during the Enterprise deprecation process to download static copies of all pages for the oldest supported Enterprise version. See the Enterprise deprecation issue template for instructions. +NOTE: If you get this error: + + Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'website-scraper' ... + +it's because you haven't installed all the *optional* dependencies. To do that, run: + + npm install --include=optional + +--- + + +### [`enterprise-server-deprecations/remove-redirects.js`](enterprise-server-deprecations/remove-redirects.js) + +Run this script after an Enterprise deprecation to remove redirects for the deprecated version. See the Enterprise deprecation issue template for instructions. + --- @@ -152,6 +299,13 @@ Run this script after an Enterprise deprecation to remove Liquid statements and --- +### [`enterprise-server-releases/add-ghec-to-fpt.js`](enterprise-server-releases/add-ghec-to-fpt.js) + +Run this script to add versions frontmatter and Liquid conditionals for GitHub Enterprise Cloud, based on anything currently versioned for the specified release of free-pro-team. + +--- + + ### [`enterprise-server-releases/create-graphql-files.js`](enterprise-server-releases/create-graphql-files.js) This script creates the static GraphQL files for a new version. @@ -161,7 +315,7 @@ This script creates the static GraphQL files for a new version. ### [`enterprise-server-releases/create-rest-files.js`](enterprise-server-releases/create-rest-files.js) -This script creates new static openAPI files for a new version and modifies the info.version. +This script first copies the dereferenced schema from the previous GHES version for the new one. It then replaces references to the previous version's docs URL (e.g., enterprise-server@3.0) with the new version (e.g., enterprise-server@3.1). Finally, it generates a new decorated file from the new dereferenced file to ensure that the dereferenced and decorated files match. --- @@ -175,7 +329,7 @@ This script creates new static webhook payload files for a new version. ### [`enterprise-server-releases/ghes-to-ghae-versioning.js`](enterprise-server-releases/ghes-to-ghae-versioning.js) -Run this script to add versions frontmatter and Liquid conditionals for GitHub AE, based on anything currently versioned for the provided release of Enterprise Server. This script should be run as part of the Enterprise Server release process. +Run this script to add versions frontmatter and Liquid conditionals for GitHub AE, based on anything currently versioned for the specified release of Enterprise Server. This script should be run as part of the Enterprise Server release process. --- @@ -187,22 +341,16 @@ This script creates or removes a release candidate banner for a specified versio --- -### [`get-new-dotcom-path.js`](get-new-dotcom-path.js) +### [`find-orphaned-assets.js`](find-orphaned-assets.js) -Pass this script any old dotcom path (e.g., `articles/foo` or `foo.md`) and it will output the new path in the content/github directory. +Print a list of all the asset files that can't be found mentioned in any of the source files (content & code). --- -### [`get-new-version-path.js`](get-new-version-path.js) +### [`get-new-dotcom-path.js`](get-new-dotcom-path.js) -Helper script that returns a "new" versioned path given an "old" versioned path. - -Examples: - -Given: /github/getting-started-with-github/using-github Returns: /free-pro-team@latest/github/getting-started-with-github/using-github - -Given: /enterprise/admin/installation/upgrading-github-enterprise Returns: /enterprise-server@2.22/admin/installation/upgrading-github-enterprise +Pass this script any old dotcom path (e.g., `articles/foo` or `foo.md`) and it will output the new path in the content/github directory. --- @@ -225,13 +373,6 @@ Given: /enterprise/admin/installation/upgrading-github-enterprise Returns: /ente ---- - - -### [`graphql/utils/prerender-objects.js`](graphql/utils/prerender-objects.js) - - - --- @@ -252,6 +393,7 @@ Given: /enterprise/admin/installation/upgrading-github-enterprise Returns: /ente ### [`graphql/utils/process-upcoming-changes.js`](graphql/utils/process-upcoming-changes.js) + --- @@ -259,6 +401,170 @@ Given: /enterprise/admin/installation/upgrading-github-enterprise Returns: /ente +--- + + +### [`helpers/action-injections.js`](helpers/action-injections.js) + + + +--- + + +### [`helpers/add-redirect-to-frontmatter.js`](helpers/add-redirect-to-frontmatter.js) + + + +--- + + +### [`helpers/find-unused-assets.js`](helpers/find-unused-assets.js) + + + +--- + + +### [`helpers/get-liquid-conditionals.js`](helpers/get-liquid-conditionals.js) + + + +--- + + +### [`helpers/get-version-blocks.js`](helpers/get-version-blocks.js) + + + +--- + + +### [`helpers/git-utils.js`](helpers/git-utils.js) + + + +--- + + +### [`helpers/github.js`](helpers/github.js) + + + +--- + + +### [`helpers/remove-deprecated-frontmatter.js`](helpers/remove-deprecated-frontmatter.js) + + + +--- + + +### [`helpers/remove-liquid-statements.js`](helpers/remove-liquid-statements.js) + + + +--- + + +### [`helpers/retry-on-error-test.js`](helpers/retry-on-error-test.js) + +Return a function that you can use to run any code within and if it throws you get a chance to say whether to sleep + retry. Example: + +async function mainFunction() { if (Math.random() > 0.9) throw new Error('too large') return 'OK' } + +const errorTest = (err) => err instanceof Error && err.message.includes('too large') const config = { // all optional attempts: 3, sleepTime: 800, onError: (err, attempts) => console.warn(`Failed ${attempts} attempts`) } const ok = await retry(errorTest, mainFunction, config) + +--- + + +### [`helpers/walk-files.js`](helpers/walk-files.js) + +A helper that returns an array of files for a given path and file extension. + +--- + + +### [`i18n/fix-translation-errors.js`](i18n/fix-translation-errors.js) + +Run this script to fix known frontmatter errors by copying values from english file Currently only fixing errors in: 'type', 'changelog' Please double check the changes created by this script before committing. + +--- + + +### [`i18n/homogenize-frontmatter.js`](i18n/homogenize-frontmatter.js) + +Run this script to fix known frontmatter errors by copying values from english file Translatable properties are designated in the frontmatter JSON schema + +--- + + +### [`i18n/lint-translation-files.js`](i18n/lint-translation-files.js) + +Use this script as part of the translation merge process to output a list of either parsing or rendering errors in translated files and run script/i18n/reset-translated-file.js on them. + +--- + + +### [`i18n/msft-report-reset-files.js`](i18n/msft-report-reset-files.js) + + + +--- + + +### [`i18n/msft-reset-files-with-broken-liquid-tags.js`](i18n/msft-reset-files-with-broken-liquid-tags.js) + + + +--- + + +### [`i18n/msft-tokens.js`](i18n/msft-tokens.js) + + + +--- + + +### [`i18n/prune-stale-files.js`](i18n/prune-stale-files.js) + + + +--- + + +### [`i18n/reset-translated-file.js`](i18n/reset-translated-file.js) + +This is a convenience script for replacing the contents of translated files with the English content from their corresponding source file. + +Usage: script/i18n/reset-translated-file.js + +Examples: + +$ script/i18n/reset-translated-file.js translations/es-XL/content/actions/index.md + +--- + + +### [`i18n/test-html-pages.js`](i18n/test-html-pages.js) + + + +--- + + +### [`i18n/test-render-translation.js`](i18n/test-render-translation.js) + +Run this script to test-render all the translation files that have been changed (when compared to the `main` branch). + +--- + + +### [`kill-server-for-jest.js`](kill-server-for-jest.js) + + + --- @@ -266,12 +572,34 @@ Given: /enterprise/admin/installation/upgrading-github-enterprise Returns: /ente This script lists all local image files, sorted by their dimensions. +NOTE: If you get this error: + + Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'image-size' ... + +it's because you haven't installed all the *optional* dependencies. To do that, run: + + npm install --include=optional + +--- + + +### [`migrate-colors-primer-18.js`](migrate-colors-primer-18.js) + + + --- ### [`move-category-to-product.js`](move-category-to-product.js) -Pass this script three arguments: 1. current category path (e.g., `github/automating-your-workflows-with-github-actions`) 2. new product ID (e.g., `actions`) 3. new product name in quotes (e.g., `"GitHub Actions"`) and it does everything that needs to be done to make the category into a new product. +Move the files from a category directory to a top-level product and add redirects. + +--- + + +### [`move-content.js`](move-content.js) + +Helps you move (a.k.a. rename) a file or a folder and does what's needed with frontmatter redrect_from and equivalent in translations. --- @@ -290,13 +618,6 @@ This is a temporary script to visualize which pages have liquid (and conditional --- -### [`ping-staging-apps.js`](ping-staging-apps.js) - -This script finds all Heroku staging apps and pings them to make sure they're always "warmed" and responsive to requests. - ---- - - ### [`prevent-pushes-to-main.js`](prevent-pushes-to-main.js) This script is intended to be used as a git "prepush" hook. If the current branch is main, it will exit unsuccessfully and prevent the push. @@ -306,7 +627,7 @@ This script is intended to be used as a git "prepush" hook. If the current branc ### [`prevent-translation-commits.js`](prevent-translation-commits.js) -This script is run as a git precommit hook (installed by husky after npm install). It detects changes to the files in the translations folder and prevents the commit if any changes exist. +This script is run as a git precommit hook (installed by husky after npm install). It detects changes to files the in the translations folder and prevents the commit if any changes exist. --- @@ -345,13 +666,6 @@ An automated test checks for discrepancies between filenames and [autogenerated --- -### [`remove-stale-staging-apps.js`](remove-stale-staging-apps.js) - -This script removes all stale Heroku staging apps that outlasted the closure of their corresponding pull requests, or correspond to spammy pull requests. - ---- - - ### [`remove-unused-assets.js`](remove-unused-assets.js) Run this script to remove reusables and image files that exist in the repo but are not used in content files. It also displays a list of unused variables. Set the `--dry-run` to flag to print results without deleting any files. For images you don't want to delete, add them to `ignoreList` in `lib/find-unused-assets.js` @@ -359,21 +673,23 @@ Run this script to remove reusables and image files that exist in the repo but a --- -### [`reset-translated-file.js`](reset-translated-file.js) +### [`rendered-content-link-checker.js`](rendered-content-link-checker.js) -This is a convenience script for replacing the contents of translated files with the English content from their corresponding source file. +This script goes through all content and renders their HTML and from there can analyze for various flaws (e.g. broken links) -Usage: script/i18n/reset-translated-file.js +--- -Examples: -reset a single translated file using a relative path: $ script/i18n/reset-translated-file.js translations/es-XL/content/actions/index.md +### [`rest/openapi-check.js`](rest/openapi-check.js) -reset a single translated file using a full path: $ script/i18n/reset-translated-file.js /Users/z/git/github/docs-internal/translations/es-XL/content/actions/index.md +Run this script to check if OpenAPI files can be decorated successfully. -reset all language variants of a single English file (using a relative path): $ script/i18n/reset-translated-file.js content/actions/index.md $ script/i18n/reset-translated-file.js data/ui.yml +--- -reset all language variants of a single English file (using a full path): $ script/i18n/reset-translated-file.js /Users/z/git/github/docs-internal/content/desktop/index.md $ script/i18n/reset-translated-file.js /Users/z/git/github/docs-internal/data/ui.yml + +### [`rest/test-open-api-schema.js`](rest/test-open-api-schema.js) + +Run this script to check if OpenAPI operations match versions in content/rest operations --- @@ -385,7 +701,21 @@ Run this script to pull openAPI files from github/github, dereference them, and --- -### [`rest/utils/create-code-samples.js`](rest/utils/create-code-samples.js) +### [`rest/utils/create-rest-examples.js`](rest/utils/create-rest-examples.js) + + + +--- + + +### [`rest/utils/decorator.js`](rest/utils/decorator.js) + + + +--- + + +### [`rest/utils/get-body-params.js`](rest/utils/get-body-params.js) @@ -413,7 +743,125 @@ Run this script to pull openAPI files from github/github, dereference them, and --- -### [`sample-unix-commands.md`](sample-unix-commands.md) +### [`rest/utils/rest-api-overrides.json`](rest/utils/rest-api-overrides.json) + + + +--- + + +### [`rest/utils/webhook-schema.js`](rest/utils/webhook-schema.js) + + + +--- + + +### [`rest/utils/webhook.js`](rest/utils/webhook.js) + + + +--- + + +### [`search/analyze-text.js`](search/analyze-text.js) + +See how a piece of text gets turned into tokens by the different analyzers. Requires that the index exists in Elasticsearch. + +Example: + + ./script/search/analyze-text.js my words to tokenize + +--- + + +### [`search/build-records.js`](search/build-records.js) + + + +--- + + +### [`search/find-indexable-pages.js`](search/find-indexable-pages.js) + + + +--- + + +### [`search/index-elasticsearch.js`](search/index-elasticsearch.js) + +Creates Elasticsearch index, populates from records, moves the index alias, deletes old indexes. + +--- + + +### [`search/lunr-get-index-names.js`](search/lunr-get-index-names.js) + + + +--- + + +### [`search/lunr-search-index.js`](search/lunr-search-index.js) + + + +--- + + +### [`search/parse-page-sections-into-records.js`](search/parse-page-sections-into-records.js) + + + +--- + + +### [`search/popular-pages.js`](search/popular-pages.js) + + + +--- + + +### [`search/search-index-records.js`](search/search-index-records.js) + + + +--- + + +### [`search/search-qa-data.json`](search/search-qa-data.json) + + + +--- + + +### [`search/search-qa-test.js`](search/search-qa-test.js) + +This script is a quality assurance test for the Lunr search configuration. This test runs example queries and expects a specific page to land in the top 3 results. + +The data source used by this script is a JSON file `script/search/search-qa-data.json`, which is populated from spreadsheet data here: https://docs.google.com/spreadsheets/d/1Dt5JRVcmyAGWKBwGjwmXxi7Ww_vdfYLfZ-EFpu2S2CQ/edit?usp=sharing + +--- + + +### [`search/sync-search-indices.js`](search/sync-search-indices.js) + +This script is run automatically via GitHub Actions on every push to `main` to generate searchable data. It can also be run manually. For more info see [contributing/search.md](contributing/search.md) + +--- + + +### [`search/sync.js`](search/sync.js) + + + +--- + + +### [`search/validate-records.js`](search/validate-records.js) @@ -427,6 +875,13 @@ Starts the local development server with all of the available languages enabled. --- +### [`server-for-jest.js`](server-for-jest.js) + + + +--- + + ### [`standardize-frontmatter-order.js`](standardize-frontmatter-order.js) Run this script to standardize frontmatter fields in all content files, per the order: - title - intro - product callout - productVersion - map topic status - hidden status - layout - redirect @@ -434,9 +889,9 @@ Run this script to standardize frontmatter fields in all content files, per the --- -### [`sync-search-indices.js`](sync-search-indices.js) +### [`start-server-for-jest.js`](start-server-for-jest.js) + -This script is run on a schedule every four hours to generate searchable data. It can also be run manually. To run it manually, click "Run workflow" button in the [Actions tab](https://github.com/github/docs-internal/actions/workflows/sync-search-indices.yml). For more info see [contributing/search.md](contributing/search.md) --- @@ -448,6 +903,13 @@ List all the TODOs in our JavaScript files and stylesheets. --- +### [`toggle-ghae-feature-flags.js`](toggle-ghae-feature-flags.js) + +Find and replace lightweight feature flags for GitHub AE content. + +--- + + ### [`update-enterprise-dates.js`](update-enterprise-dates.js) This script fetches data from https://github.com/github/enterprise-releases/blob/master/releases.json and updates `lib/enterprise-dates.json`, which the site uses for various functionality. @@ -455,6 +917,15 @@ This script fetches data from https://github.com/github/enterprise-releases/blob --- +### [`update-internal-links.js`](update-internal-links.js) + +Run this script to find internal links in all content and data Markdown files, check if either the title or link (or both) are outdated, and automatically update them if so. + +Exceptions: * Links with fragments (e.g., [Bar](/foo#bar)) will get their root links updated if necessary, but the fragment and title will be unchanged (e.g., [Bar](/noo#bar)). * Links with hardcoded versions (e.g., [Foo](/enterprise-server/baz)) will get their root links updated if necessary, but the hardcoded versions will be preserved (e.g., [Foo](/enterprise-server/qux)). * Links with Liquid in the titles will have their root links updated if necessary, but the titles will be preserved. + +--- + + ### [`update-readme.js`](update-readme.js) This script crawls the script directory, hooks on special comment markers in each script, and adds the comment to `script/README.md`. @@ -462,8 +933,3 @@ This script crawls the script directory, hooks on special comment markers in eac --- -### [`update-versioning-in-files.js`](update-versioning-in-files.js) - - - ---- diff --git a/script/check-english-links.js b/script/check-english-links.js deleted file mode 100755 index 842f87564f..0000000000 --- a/script/check-english-links.js +++ /dev/null @@ -1,217 +0,0 @@ -#!/usr/bin/env node - -// [start-readme] -// -// This script runs once per day via a scheduled GitHub Action to check all links in -// English content, not including deprecated Enterprise Server content. It opens an issue -// if it finds broken links. To exclude a link path, add it to `lib/excluded-links.js`. -// Note that linkinator somtimes returns 429 and 503 errors for links that are not actually -// broken, so this script double-checks those using `got`. -// -// [end-readme] - -import { fileURLToPath } from 'url' -import path from 'path' -import fs from 'fs' -import { LinkChecker } from 'linkinator' -import { program } from 'commander' -import { pull, uniq } from 'lodash-es' -import rimraf from 'rimraf' -import mkdirp from 'mkdirp' -import { deprecated } from '../lib/enterprise-server-releases.js' -import got from 'got' -import excludedLinks from '../lib/excluded-links.js' -import libLanguages from '../lib/languages.js' -const __dirname = path.dirname(fileURLToPath(import.meta.url)) - -const checker = new LinkChecker() -const root = 'http://localhost:4000' -const englishRoot = `${root}/en` - -const LINKINATOR_LOG_FILE_PATH = - process.env.LINKINATOR_LOG_FILE_PATH || path.join(__dirname, '../.linkinator/full.log') -// When using the peter-evans/create-issue-from-file Action to post an -// issue comment you might get an error like this: -// -// "body is too long (maximum is 65536 characters)" -// -// So we cap our to not exceed that length. -// This number doesn't have to be strictly less that the maximum possible -// but it just mustn't exceed the validation limit. -// Note, a little bit of room must be left for adding -// a note in the generated output about the excess. -const DISPLAY_MAX_LENGTH = parseInt(process.env.DISPLAY_MAX_LENGTH || '30000', 10) - -// Links with these codes may or may not really be broken. -const retryStatusCodes = [429, 503, 'Invalid'] - -const LINKINATOR_CONCURRENCY = parseInt(process.env.LINKINATOR_CONCURRENCY || '300') - -program - .description('Check all links in the English docs.') - .option( - '-d, --dry-run', - 'Turn off recursion to get a fast minimal report (useful for previewing output).' - ) - .option( - '-r, --do-not-retry', - `Do not retry broken links with status codes ${retryStatusCodes.join(', ')}.` - ) - .option( - '-p, --path ', - `Provide an optional path to check. Best used with --dry-run. Default: ${englishRoot}` - ) - .parse(process.argv) - -// Skip excluded links defined in separate file. - -// Skip non-English content. -const languagesToSkip = Object.keys(libLanguages) - .filter((code) => code !== 'en') - .map((code) => new RegExp(`${root}/${code}`)) - -// Skip deprecated Enterprise content. -// Capture the old format https://docs.github.com/enterprise/2.1/ -// and the new format https://docs.github.com/enterprise-server@2.19/. -const enterpriseReleasesToSkip = new RegExp(`${root}.+?[/@](${deprecated.join('|')})(/|$)`) - -const config = { - path: program.opts().path || englishRoot, - concurrency: LINKINATOR_CONCURRENCY, - // If this is a dry run, turn off recursion. - recurse: !program.opts().dryRun, - silent: true, - // The values in this array are treated as regexes. - linksToSkip: linksToSkipFactory([ - enterpriseReleasesToSkip, - ...languagesToSkip, - ...excludedLinks, - // Don't leak into the production site - /https:\/\/docs\.github\.com/, - ]), -} - -// Return a function that can as quickly as possible check if a certain -// href input should be skipped. -// Do this so we can use a `Set` and a `iterable.some()` for a speedier -// check. The default implementation in Linkinator, if you set -// the `linksToSkip` config to be an array, it will, for every URL it -// checks turn that into a new regex every single time. -function linksToSkipFactory(regexAndURLs) { - const set = new Set(regexAndURLs.filter((regexOrURL) => typeof regexOrURL === 'string')) - const regexes = regexAndURLs.filter((regexOrURL) => regexOrURL instanceof RegExp) - return (href) => set.has(href) || regexes.some((regex) => regex.test(href)) -} - -main() - -async function main() { - // Clear and recreate a directory for logs. - const logFile = LINKINATOR_LOG_FILE_PATH - rimraf.sync(path.dirname(logFile)) - await mkdirp(path.dirname(logFile)) - - // Update CLI output and append to logfile after each checked link. - checker.on('link', (result) => { - // We don't need to dump all of the HTTP and HTML details - delete result.failureDetails - - fs.appendFileSync(logFile, JSON.stringify(result) + '\n') - }) - - // Start the scan; events will be logged as they occur. - const result = (await checker.check(config)).links - - // Scan is complete! Filter the results for broken links. - const brokenLinks = result - .filter((link) => link.state === 'BROKEN') - // Coerce undefined status codes into `Invalid` strings so we can display them. - // Without this, undefined codes get JSON.stringified as `0`, which is not useful output. - .map((link) => { - link.status = link.status || 'Invalid' - return link - }) - - // It's OK to console.warn because that goes to stderr. - console.warn(`${brokenLinks.length} broken links in total (before retry)`) - - if (!program.opts().doNotRetry) { - // Links to retry individually. - const linksToRetry = brokenLinks.filter((link) => retryStatusCodes.includes(link.status)) - - // It's OK to console.warn because that goes to stderr. - console.warn(`${linksToRetry.length} links to retry`) - - await Promise.all( - linksToRetry.map(async (link) => { - try { - // got throws an HTTPError if response code is not 2xx or 3xx. - // If got succeeds, we can remove the link from the list. - await got(link.url) - pull(brokenLinks, link) - // If got fails, do nothing. The link is already in the broken list. - } catch (err) { - // noop - } - }) - ) - } - - // Exit successfully if no broken links! - if (!brokenLinks.length) { - console.log('All links are good!') - process.exit(0) - } - - // Format and display the results. - console.log(`${brokenLinks.length} broken links found on ${root}\n`) - console.log(getDisplayBrokenLinks(brokenLinks, DISPLAY_MAX_LENGTH)) - console.log( - '\nIf links are "false positives" (e.g. can only be opened by a browser) ' + - 'consider making a pull request that edits `lib/excluded-links.js`.' - ) - - // Exit unsuccessfully if broken links are found. - process.exit(1) -} - -function getDisplayBrokenLinks(brokenLinks, maxLength) { - let output = '' - // Sort results by status code. - const allStatusCodes = uniq( - brokenLinks - // Coerce undefined status codes into `Invalid` strings so we can display them. - // Without this, undefined codes get JSON.stringified as `0`, - // which is not useful output. - .map((link) => link.status || 'Invalid') - ) - - allStatusCodes.forEach((statusCode) => { - const brokenLinksForStatus = brokenLinks.filter((x) => x.status === statusCode) - - output += `## Status ${statusCode}: Found ${brokenLinksForStatus.length} broken links\n\n` - output += '```\n' - let exceededDisplayLimit = 0 - brokenLinksForStatus.forEach((brokenLinkObj) => { - // We don't need to dump all of the HTTP and HTML details - delete brokenLinkObj.failureDetails - const line = JSON.stringify(brokenLinkObj, null, 2) - if (output.length + line.length > maxLength) { - exceededDisplayLimit++ - return - } - - output += `${line}\n` - }) - output += '```\n' - if (exceededDisplayLimit > 0) { - output += `\n(🎵! Because the comment is already big, - we skipped ${exceededDisplayLimit} additional broken links. - It is unlikely that these are real broken links. More likely - they are false positives due to a server-related issue that - needs investigating. \n` - } - }) - - return output -} diff --git a/script/check-github-github-links.js b/script/check-github-github-links.js index 54bd1d1b75..e49f729ab1 100755 --- a/script/check-github-github-links.js +++ b/script/check-github-github-links.js @@ -112,7 +112,10 @@ async function main() { (contents.substring(numIndex, numIndex + 11) === 'GitHub.help' && contents.charAt(numIndex + 16) === '#') || (contents.substring(numIndex, numIndex + 16) === 'GitHub.developer' && - contents.charAt(numIndex + 26) === '#') + contents.charAt(numIndex + 26) === '#') || + // See internal issue #2180 + contents.slice(numIndex, numIndex + 'GitHub.help_url}/github/#{'.length) === + 'GitHub.help_url}/github/#{' ) { return } diff --git a/script/content-migrations/convert-if-to-ifversion.js b/script/content-migrations/convert-if-to-ifversion.js index a821cd056d..c71b45d59d 100755 --- a/script/content-migrations/convert-if-to-ifversion.js +++ b/script/content-migrations/convert-if-to-ifversion.js @@ -12,8 +12,6 @@ import walkFiles from '../helpers/walk-files.js' const allFiles = walkFiles('content', '.md') .concat(walkFiles('data', ['.yml', '.md'])) - // We need to update translations files directly so the new tests don't fail on them. - .concat(walkFiles('translations', ['.yml', '.md'])) // GraphQL content files have some non-FBV if statements that we don't want to change. // Fortunately they do not include any FBV if statements, so we can just ignore the whole dir. .filter((file) => !file.includes('/content/graphql/')) diff --git a/script/content-migrations/extended-markdown-tags.js b/script/content-migrations/extended-markdown-tags.js deleted file mode 100755 index b47c681c89..0000000000 --- a/script/content-migrations/extended-markdown-tags.js +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env node -import { fileURLToPath } from 'url' -import path from 'path' -import walk from 'walk-sync' -import replace from 'replace' -const __dirname = path.dirname(fileURLToPath(import.meta.url)) - -const FINDER = /{{\s?([#/])([a-z-]+)?\s?}}/g - -async function rewriteFiles(dir) { - const files = walk(dir, { includeBasePath: true }) - replace({ - regex: FINDER, - replacement: (match, p1, p2) => { - if (p1 === '#') { - // The starting tag, like {{#note}} - return `{% ${p2} %}` - } else if (p1 === '/') { - // The ending tag, like {{/note}} - return `{% end${p2} %}` - } else { - throw new Error(`Invalid prefix ${p1} found`) - } - }, - paths: files, - recursive: true, - }) -} - -async function main() { - const dirs = [ - path.join(__dirname, '../../content'), - path.join(__dirname, '../../data'), - path.join(__dirname, '../../translations'), - ] - - for (const dir of dirs) { - await rewriteFiles(dir) - } -} - -main() - .catch(console.error) - .finally(() => console.log('Done!')) diff --git a/script/content-migrations/octicon-tag.js b/script/content-migrations/octicon-tag.js deleted file mode 100755 index d5867eea8c..0000000000 --- a/script/content-migrations/octicon-tag.js +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node -import { fileURLToPath } from 'url' -import path from 'path' -import walk from 'walk-sync' -import replace from 'replace' -const __dirname = path.dirname(fileURLToPath(import.meta.url)) - -const FINDER = /{{\s?octicon-([a-z-]+)(\s[\w\s\d-]+)?\s?}}/g - -async function rewriteFiles(dir) { - const files = walk(dir, { includeBasePath: true }) - replace({ - regex: FINDER, - replacement: (match, p1, p2) => { - if (p2) { - return `{% octicon "${p1}" aria-label="${p2.trim()}" %}` - } else { - return `{% octicon "${p1}" %}` - } - }, - paths: files, - recursive: true, - }) -} - -async function main() { - const dirs = [ - path.join(__dirname, '../../content'), - path.join(__dirname, '../../data'), - path.join(__dirname, '../../translations'), - ] - - for (const dir of dirs) { - await rewriteFiles(dir) - } -} - -main() - .catch(console.error) - .finally(() => console.log('Done!')) diff --git a/script/content-migrations/remove-map-topics.js b/script/content-migrations/remove-map-topics.js deleted file mode 100755 index ffd4cc5665..0000000000 --- a/script/content-migrations/remove-map-topics.js +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/env node -import fs from 'fs' -import path from 'path' -import walk from 'walk-sync' -import stripHtmlComments from 'strip-html-comments' -import languages from '../../lib/languages.js' -import frontmatter from '../../lib/read-frontmatter.js' -import addRedirectToFrontmatter from '../helpers/add-redirect-to-frontmatter.js' - -const relativeRefRegex = /\/[a-zA-Z0-9-]+/g -const linkString = /{% [^}]*?link.*? \/(.*?) ?%}/m -const linksArray = new RegExp(linkString.source, 'gm') - -const walkOpts = { - includeBasePath: true, - directories: false, -} - -// We only want category TOC files, not product TOCs. -const categoryFileRegex = /content\/[^/]+?\/[^/]+?\/index.md/ - -const fullDirectoryPaths = Object.values(languages).map((langObj) => - path.join(process.cwd(), langObj.dir, 'content') -) -const categoryIndexFiles = fullDirectoryPaths - .map((fullDirectoryPath) => walk(fullDirectoryPath, walkOpts)) - .flat() - .filter((file) => categoryFileRegex.test(file)) - -categoryIndexFiles.forEach((categoryIndexFile) => { - let categoryIndexContent = fs.readFileSync(categoryIndexFile, 'utf8') - - if (categoryIndexFile.endsWith('github/getting-started-with-github/index.md')) { - categoryIndexContent = stripHtmlComments(categoryIndexContent.replace(/\n$/m.test(line)) - - newContent = newLinesArray.join('\n') - - // Index files should no longer have body content, so we write an empty string - fs.writeFileSync(indexFile, frontmatter.stringify(newContent, data, { lineWidth: 10000 })) -}) - -function getLinks(linkItemArray) { - // do a oneoff replacement while mapping - return linkItemArray.map((item) => - item.match(linkString)[1].replace('/discussions-guides', '/guides') - ) -} diff --git a/script/copy-to-test-repo.sh b/script/copy-to-test-repo.sh new file mode 100755 index 0000000000..d6f9d35578 --- /dev/null +++ b/script/copy-to-test-repo.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Copies certain directories over to docs-internal-test and pushes. Useful for debugging actions +# Doesn't copy over git lfs files (.json.br), content/, and data/ directories + +echo "Make sure to run this script in the root path of docs-internal!" + +read -p "Relative path to test repo [../docs-internal-test] (enter for default):" TEST_PATH + +TEST_PATH=${TEST_PATH:-../docs-internal-test} + +cd $TEST_PATH +REPO_NAME=$(basename `git rev-parse --show-toplevel`) +REPO_BRANCH=$(git rev-parse --symbolic-full-name --abbrev-ref HEAD) +cd - + +if [[ "$REPO_BRANCH" != "main" ]]; then + echo "docs-internal-test isn't on main branch" + exit 1 +fi; + +if [[ "$REPO_NAME" == "docs-internal-test" ]]; then + echo "Copying files to $TEST_PATH..." + rsync -r --exclude='.git' --exclude='.gitattributes' --exclude='node_modules' --exclude='data' --exclude='content' --exclude="lib/search/indexes" --exclude=".github/CODEOWNERS" . $TEST_PATH + cd $TEST_PATH + if [[ `git status --porcelain` ]]; then + echo "Committing and pushing test files" + git add --all + git commit -m "testing (commited from script)" + git push -f + else + echo "No changes copied over. Are there relevent changes and are you pointing to the correct -test directory?" + exit 1 + fi +else + echo "$TEST_PATH is not the docs-internal-test repo directory" + exit 1 +fi; + +exit + + + diff --git a/script/enterprise-server-releases/ghes-to-ghae-versioning.js b/script/enterprise-server-releases/ghes-to-ghae-versioning.js deleted file mode 100755 index b8e2dfdc21..0000000000 --- a/script/enterprise-server-releases/ghes-to-ghae-versioning.js +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env node - -// [start-readme] -// -// Run this script to add versions frontmatter and Liquid conditionals for -// GitHub AE, based on anything currently versioned for the specified release -// of Enterprise Server. This script should be run as part of the Enterprise -// Server release process. -// -// [end-readme] - -import fs from 'fs' -import path from 'path' -import walk from 'walk-sync' -import { program } from 'commander' -import { escapeRegExp } from 'lodash-es' -import frontmatter from '../../lib/read-frontmatter.js' -import versionSatisfiesRange from '../../lib/version-satisfies-range.js' -import { getLiquidConditionals } from '../helpers/get-liquid-conditionals.js' - -const contentPath = path.join(process.cwd(), 'content') -const dataPath = path.join(process.cwd(), 'data') -const translationsPath = path.join(process.cwd(), 'translations') - -program - .description( - 'Add versions frontmatter and Liquid conditionals for GitHub AE based on a given Enterprise Server release. Runs on all content by default.' - ) - .option( - '-r, --ghes-release ', - 'The Enterprise Server release to base AE versioning on. Example: 2.23' - ) - .option( - '-p, --products [OPTIONAL PRODUCT_IDS...]', - 'Optional list of space-separated product IDs. Example: admin github developers' - ) - .option('-t, --translations', 'Run the script on content and data in translations too.') - .parse(process.argv) - -const { ghesRelease, products, translations } = program.opts() - -if (!ghesRelease) { - console.error('Must provide an Enterprise Server release number!') - process.exit(1) -} - -console.log(`✅ Adding AE versioning based on GHES ${ghesRelease} versioning`) - -if (products) { - console.log(`✅ Running on the following products: ${products}`) -} else { - console.log('✅ Running on all products') -} - -if (translations) { - console.log('✅ Running on both English and translated content and data\n') -} else { - console.log('✅ Running on English content and data\n') -} - -// Match: ghes -// Example: ghes > 2.21 -const ghesRegex = new RegExp(`ghes (<|>|=|!=) ${ghesRelease}`) - -console.log('Working...\n') - -const englishContentFiles = walkContent(contentPath) -const englishDataFiles = walkData(dataPath) - -function walkContent(dirPath) { - const productArray = products || [''] - return productArray - .map((product) => { - dirPath = path.join(contentPath, product) - return walk(dirPath, { includeBasePath: true, directories: false }) - .filter((file) => file.includes('/content/')) - .filter((file) => file.endsWith('.md')) - .filter((file) => !file.endsWith('README.md')) - }) - .flat() -} - -function walkData(dirPath) { - return walk(dirPath, { includeBasePath: true, directories: false }) - .filter((file) => file.includes('/data/reusables') || file.includes('/data/variables')) - .filter((file) => !file.endsWith('README.md')) -} - -let allContentFiles, allDataFiles -if (translations) { - const translatedContentFiles = walkContent(translationsPath) - const translatedDataFiles = walkData(translationsPath) - allContentFiles = englishContentFiles.concat(translatedContentFiles) - allDataFiles = englishDataFiles.concat(translatedDataFiles) -} else { - allContentFiles = englishContentFiles - allDataFiles = englishDataFiles -} - -// Update the data files -allDataFiles.forEach((file) => { - const dataContent = fs.readFileSync(file, 'utf8') - - const conditionalsToUpdate = getConditionalsToUpdate(dataContent) - if (!conditionalsToUpdate.length) return - - // Update Liquid in data files - const newDataContent = updateLiquid(conditionalsToUpdate, dataContent) - - fs.writeFileSync(file, newDataContent) -}) - -// Update the content files -allContentFiles.forEach((file) => { - const { data, content } = frontmatter(fs.readFileSync(file, 'utf8')) - - // Return early if the current page frontmatter does not apply to either GHAE or the given GHES release - if ( - !( - data.versions['github-ae'] || - versionSatisfiesRange(ghesRelease, data.versions['enterprise-server']) - ) - ) - return - - const conditionalsToUpdate = getConditionalsToUpdate(content) - if (!conditionalsToUpdate.length) return - - // Update Liquid in content files - const newContent = updateLiquid(conditionalsToUpdate, content) - - // Add frontmatter version - data.versions['github-ae'] = '*' - - // Update Liquid in frontmatter props - Object.keys(data) - .filter((key) => typeof data[key] === 'string') - .forEach((key) => { - const conditionalsToUpdate = getConditionalsToUpdate(data[key]) - if (!conditionalsToUpdate.length) return - data[key] = updateLiquid(conditionalsToUpdate, data[key]) - }) - - fs.writeFileSync(file, frontmatter.stringify(newContent, data, { lineWidth: 10000 })) -}) - -function getConditionalsToUpdate(content) { - return getLiquidConditionals(content, 'ifversion') - .filter((c) => !c.includes('ghae')) - .filter((c) => doesReleaseSatisfyConditional(c.match(ghesRegex))) -} - -function updateLiquid(conditionalsToUpdate, content) { - let newContent = content - conditionalsToUpdate.forEach((cond) => { - const oldConditional = `{% ifversion ${cond} %}` - const newConditional = `{% ifversion ${cond.concat(' or ghae')} %}` - const oldConditionalRegex = new RegExp(escapeRegExp(oldConditional), 'g') - - // Then replace all instances of the conditional in the content - newContent = newContent.replace(oldConditionalRegex, newConditional) - }) - - return newContent -} - -console.log('Done!') - -function doesReleaseSatisfyConditional(ghesMatch) { - if (!ghesMatch) return false - - // Operator (e.g., <) - const operator = ghesMatch[1] - - // Release number (e.g., 2.21) - const number = ghesMatch[2] - - return versionSatisfiesRange(ghesRelease, `${operator}${number}`) -} diff --git a/script/helpers/action-injections.js b/script/helpers/action-injections.js new file mode 100644 index 0000000000..6c48235b43 --- /dev/null +++ b/script/helpers/action-injections.js @@ -0,0 +1,52 @@ +/* + * Dependency injection for scripts that call .github/actions/ code + * Replaces action platform specific functionality with local machine functionality + */ + +import fs from 'fs' +import path from 'path' +import chalk from 'chalk' + +import github from './github.js' + +// Directs core logging to console +export function getCoreInject(debug) { + return { + info: console.log, + debug: (message) => (debug ? console.warn(chalk.blue(message)) : {}), + warning: (message) => console.warn(chalk.yellow(message)), + error: console.error, + setOutput: (name, value) => { + if (debug) { + console.log(`Output "${name}" set to: "${value}"`) + } + }, + setFailed: (message) => { + if (debug) { + console.log('setFailed called.') + } + throw new Error(message) + }, + } +} + +// Writes strings that would be uploaded as artifacts to a local logs/ directory +const cwd = new URL('', import.meta.url).pathname +const logsPath = path.join(cwd, '..', '..', 'logs') +if (!fs.existsSync(logsPath)) { + fs.mkdirSync(logsPath) +} +export function getUploadArtifactInject(debug) { + return (name, contents) => { + const logFilename = path.join(logsPath, `${new Date().toISOString().substr(0, 16)}-${name}`) + if (debug) { + fs.writeFileSync(logFilename, contents) + console.log(`${name} artifact upload written to ${logFilename}`) + } else { + console.log(`Debug not enabled. ${name} artifact NOT written to ${logFilename}`) + } + } +} + +// Uses local process.env GITHUB_TOKEN to create an octokit instance +export const octokitInject = github() diff --git a/script/migrate-colors-primer-18.js b/script/migrate-colors-primer-18.js deleted file mode 100755 index 7800b715bf..0000000000 --- a/script/migrate-colors-primer-18.js +++ /dev/null @@ -1,539 +0,0 @@ -#!/usr/bin/env node - -import walkSync from 'walk-sync' -import fs from 'fs/promises' - -const colorMap = { - 'color-text-primary': 'color-fg-default', - 'color-text-secondary': 'color-fg-muted', - 'color-text-tertiary': 'color-fg-muted', - 'color-text-link': 'color-fg-accent', - 'color-text-success': 'color-fg-success', - 'color-text-warning': 'color-fg-attention', - 'color-text-danger': 'color-fg-danger', - 'color-text-inverse': 'color-fg-on-emphasis', - 'color-text-white': '', - 'color-icon-primary': 'color-fg-default', - 'color-icon-secondary': 'color-fg-muted', - 'color-icon-tertiary': 'color-fg-muted', - 'color-icon-info': 'color-fg-accent', - 'color-icon-danger': 'color-fg-danger', - 'color-icon-success': 'color-fg-success', - 'color-icon-warning': 'color-fg-attention', - 'color-border-primary': 'color-border-default', - 'color-border-secondary': 'color-border-muted', - 'color-border-tertiary': 'color-border-default', - 'color-border-inverse': '', - 'color-border-info': 'color-border-accent-emphasis', - 'color-border-warning': 'color-border-attention-emphasis', - 'color-bg-canvas': 'color-bg-default', - 'color-bg-canvas-inverse': 'color-bg-emphasis', - 'color-bg-canvas-inset': 'color-bg-inset', - 'color-bg-primary': 'color-bg-default', - 'color-bg-secondary': 'color-bg-subtle', - 'color-bg-tertiary': 'color-bg-subtle', - 'color-bg-info': 'color-bg-accent', - 'color-bg-info-inverse': 'color-bg-accent-emphasis', - 'color-bg-danger-inverse': 'color-bg-danger-emphasis', - 'color-bg-success-inverse': 'color-bg-success-emphasis', - 'color-bg-warning': 'color-bg-attention', - 'color-bg-warning-inverse': 'color-bg-attention-emphasis', - 'text-inherit': 'color-fg-inherit', -} - -/******************************************************************************/ - -async function readFiles(opts) { - const paths = walkSync('./', { - directories: false, - includeBasePath: true, - ...opts, - }) - return await Promise.all(paths.map(async (path) => [path, await fs.readFile(path, 'utf8')])) -} - -function withAllFiles(files, fn) { - return files.map(([path, file]) => [path, fn(path, file)]) -} - -async function writeFiles(files) { - return await Promise.all(files.map(async ([path, file]) => await fs.writeFile(path, file))) -} - -/******************************************************************************/ - -let files = await readFiles({ - globs: [ - 'components/**', - 'content/**', - 'contributing/**', - 'data/**', - 'includes/**', - 'lib/**', - 'middleware/**', - 'pages/**', - 'stylesheets/**', - 'tests/**', - // 'translations/**', - ], -}) - -files = withAllFiles(files, (path, file) => { - Object.keys(colorMap) - .sort((a, b) => b.length - a.length) - .forEach((key) => { - file = file.replaceAll(key, colorMap[key]) - }) - - return file -}) - -await writeFiles(files) - -/**** - -check for allowed colors in vars - -****/ - -const allowedVarColors = [ - 'color-canvas-default-transparent', - 'color-marketing-icon-primary', - 'color-marketing-icon-secondary', - 'color-diff-blob-addition-num-text', - 'color-diff-blob-addition-fg', - 'color-diff-blob-addition-num-bg', - 'color-diff-blob-addition-line-bg', - 'color-diff-blob-addition-word-bg', - 'color-diff-blob-deletion-num-text', - 'color-diff-blob-deletion-fg', - 'color-diff-blob-deletion-num-bg', - 'color-diff-blob-deletion-line-bg', - 'color-diff-blob-deletion-word-bg', - 'color-diff-blob-hunk-num-bg', - 'color-diff-blob-expander-icon', - 'color-diff-blob-selected-line-highlight-mix-blend-mode', - 'color-diffstat-deletion-border', - 'color-diffstat-addition-border', - 'color-diffstat-addition-bg', - 'color-search-keyword-hl', - 'color-prettylights-syntax-comment', - 'color-prettylights-syntax-constant', - 'color-prettylights-syntax-entity', - 'color-prettylights-syntax-storage-modifier-import', - 'color-prettylights-syntax-entity-tag', - 'color-prettylights-syntax-keyword', - 'color-prettylights-syntax-string', - 'color-prettylights-syntax-variable', - 'color-prettylights-syntax-brackethighlighter-unmatched', - 'color-prettylights-syntax-invalid-illegal-text', - 'color-prettylights-syntax-invalid-illegal-bg', - 'color-prettylights-syntax-carriage-return-text', - 'color-prettylights-syntax-carriage-return-bg', - 'color-prettylights-syntax-string-regexp', - 'color-prettylights-syntax-markup-list', - 'color-prettylights-syntax-markup-heading', - 'color-prettylights-syntax-markup-italic', - 'color-prettylights-syntax-markup-bold', - 'color-prettylights-syntax-markup-deleted-text', - 'color-prettylights-syntax-markup-deleted-bg', - 'color-prettylights-syntax-markup-inserted-text', - 'color-prettylights-syntax-markup-inserted-bg', - 'color-prettylights-syntax-markup-changed-text', - 'color-prettylights-syntax-markup-changed-bg', - 'color-prettylights-syntax-markup-ignored-text', - 'color-prettylights-syntax-markup-ignored-bg', - 'color-prettylights-syntax-meta-diff-range', - 'color-prettylights-syntax-brackethighlighter-angle', - 'color-prettylights-syntax-sublimelinter-gutter-mark', - 'color-prettylights-syntax-constant-other-reference-link', - 'color-codemirror-text', - 'color-codemirror-bg', - 'color-codemirror-gutters-bg', - 'color-codemirror-guttermarker-text', - 'color-codemirror-guttermarker-subtle-text', - 'color-codemirror-linenumber-text', - 'color-codemirror-cursor', - 'color-codemirror-selection-bg', - 'color-codemirror-activeline-bg', - 'color-codemirror-matchingbracket-text', - 'color-codemirror-lines-bg', - 'color-codemirror-syntax-comment', - 'color-codemirror-syntax-constant', - 'color-codemirror-syntax-entity', - 'color-codemirror-syntax-keyword', - 'color-codemirror-syntax-storage', - 'color-codemirror-syntax-string', - 'color-codemirror-syntax-support', - 'color-codemirror-syntax-variable', - 'color-checks-bg', - 'color-checks-run-border-width', - 'color-checks-container-border-width', - 'color-checks-text-primary', - 'color-checks-text-secondary', - 'color-checks-text-link', - 'color-checks-btn-icon', - 'color-checks-btn-hover-icon', - 'color-checks-btn-hover-bg', - 'color-checks-input-text', - 'color-checks-input-placeholder-text', - 'color-checks-input-focus-text', - 'color-checks-input-bg', - 'color-checks-input-shadow', - 'color-checks-donut-error', - 'color-checks-donut-pending', - 'color-checks-donut-success', - 'color-checks-donut-neutral', - 'color-checks-dropdown-text', - 'color-checks-dropdown-bg', - 'color-checks-dropdown-border', - 'color-checks-dropdown-shadow', - 'color-checks-dropdown-hover-text', - 'color-checks-dropdown-hover-bg', - 'color-checks-dropdown-btn-hover-text', - 'color-checks-dropdown-btn-hover-bg', - 'color-checks-scrollbar-thumb-bg', - 'color-checks-header-label-text', - 'color-checks-header-label-open-text', - 'color-checks-header-border', - 'color-checks-header-icon', - 'color-checks-line-text', - 'color-checks-line-num-text', - 'color-checks-line-timestamp-text', - 'color-checks-line-hover-bg', - 'color-checks-line-selected-bg', - 'color-checks-line-selected-num-text', - 'color-checks-line-dt-fm-text', - 'color-checks-line-dt-fm-bg', - 'color-checks-gate-bg', - 'color-checks-gate-text', - 'color-checks-gate-waiting-text', - 'color-checks-step-header-open-bg', - 'color-checks-step-error-text', - 'color-checks-step-warning-text', - 'color-checks-logline-text', - 'color-checks-logline-num-text', - 'color-checks-logline-debug-text', - 'color-checks-logline-error-text', - 'color-checks-logline-error-num-text', - 'color-checks-logline-error-bg', - 'color-checks-logline-warning-text', - 'color-checks-logline-warning-num-text', - 'color-checks-logline-warning-bg', - 'color-checks-logline-command-text', - 'color-checks-logline-section-text', - 'color-checks-ansi-black', - 'color-checks-ansi-black-bright', - 'color-checks-ansi-white', - 'color-checks-ansi-white-bright', - 'color-checks-ansi-gray', - 'color-checks-ansi-red', - 'color-checks-ansi-red-bright', - 'color-checks-ansi-green', - 'color-checks-ansi-green-bright', - 'color-checks-ansi-yellow', - 'color-checks-ansi-yellow-bright', - 'color-checks-ansi-blue', - 'color-checks-ansi-blue-bright', - 'color-checks-ansi-magenta', - 'color-checks-ansi-magenta-bright', - 'color-checks-ansi-cyan', - 'color-checks-ansi-cyan-bright', - 'color-project-header-bg', - 'color-project-sidebar-bg', - 'color-project-gradient-in', - 'color-project-gradient-out', - 'color-mktg-success', - 'color-mktg-info', - 'color-mktg-bg-shade-gradient-top', - 'color-mktg-bg-shade-gradient-bottom', - 'color-mktg-btn-bg-top', - 'color-mktg-btn-bg-bottom', - 'color-mktg-btn-bg-overlay-top', - 'color-mktg-btn-bg-overlay-bottom', - 'color-mktg-btn-text', - 'color-mktg-btn-primary-bg-top', - 'color-mktg-btn-primary-bg-bottom', - 'color-mktg-btn-primary-bg-overlay-top', - 'color-mktg-btn-primary-bg-overlay-bottom', - 'color-mktg-btn-primary-text', - 'color-mktg-btn-enterprise-bg-top', - 'color-mktg-btn-enterprise-bg-bottom', - 'color-mktg-btn-enterprise-bg-overlay-top', - 'color-mktg-btn-enterprise-bg-overlay-bottom', - 'color-mktg-btn-enterprise-text', - 'color-mktg-btn-outline-text', - 'color-mktg-btn-outline-border', - 'color-mktg-btn-outline-hover-text', - 'color-mktg-btn-outline-hover-border', - 'color-mktg-btn-outline-focus-border', - 'color-mktg-btn-outline-focus-border-inset', - 'color-mktg-btn-dark-text', - 'color-mktg-btn-dark-border', - 'color-mktg-btn-dark-hover-text', - 'color-mktg-btn-dark-hover-border', - 'color-mktg-btn-dark-focus-border', - 'color-mktg-btn-dark-focus-border-inset', - 'color-avatar-bg', - 'color-avatar-border', - 'color-avatar-stack-fade', - 'color-avatar-stack-fade-more', - 'color-avatar-child-shadow', - 'color-topic-tag-border', - 'color-select-menu-backdrop-border', - 'color-select-menu-tap-highlight', - 'color-select-menu-tap-focus-bg', - 'color-overlay-shadow', - 'color-header-text', - 'color-header-bg', - 'color-header-logo', - 'color-header-search-bg', - 'color-header-search-border', - 'color-sidenav-selected-bg', - 'color-menu-bg-active', - 'color-input-disabled-bg', - 'color-timeline-badge-bg', - 'color-ansi-black', - 'color-ansi-black-bright', - 'color-ansi-white', - 'color-ansi-white-bright', - 'color-ansi-gray', - 'color-ansi-red', - 'color-ansi-red-bright', - 'color-ansi-green', - 'color-ansi-green-bright', - 'color-ansi-yellow', - 'color-ansi-yellow-bright', - 'color-ansi-blue', - 'color-ansi-blue-bright', - 'color-ansi-magenta', - 'color-ansi-magenta-bright', - 'color-ansi-cyan', - 'color-ansi-cyan-bright', - 'color-btn-text', - 'color-btn-bg', - 'color-btn-border', - 'color-btn-shadow', - 'color-btn-inset-shadow', - 'color-btn-hover-bg', - 'color-btn-hover-border', - 'color-btn-active-bg', - 'color-btn-active-border', - 'color-btn-selected-bg', - 'color-btn-focus-bg', - 'color-btn-focus-border', - 'color-btn-focus-shadow', - 'color-btn-shadow-active', - 'color-btn-shadow-input-focus', - 'color-btn-counter-bg', - 'color-btn-primary-text', - 'color-btn-primary-bg', - 'color-btn-primary-border', - 'color-btn-primary-shadow', - 'color-btn-primary-inset-shadow', - 'color-btn-primary-hover-bg', - 'color-btn-primary-hover-border', - 'color-btn-primary-selected-bg', - 'color-btn-primary-selected-shadow', - 'color-btn-primary-disabled-text', - 'color-btn-primary-disabled-bg', - 'color-btn-primary-disabled-border', - 'color-btn-primary-focus-bg', - 'color-btn-primary-focus-border', - 'color-btn-primary-focus-shadow', - 'color-btn-primary-icon', - 'color-btn-primary-counter-bg', - 'color-btn-outline-text', - 'color-btn-outline-hover-text', - 'color-btn-outline-hover-bg', - 'color-btn-outline-hover-border', - 'color-btn-outline-hover-shadow', - 'color-btn-outline-hover-inset-shadow', - 'color-btn-outline-hover-counter-bg', - 'color-btn-outline-selected-text', - 'color-btn-outline-selected-bg', - 'color-btn-outline-selected-border', - 'color-btn-outline-selected-shadow', - 'color-btn-outline-disabled-text', - 'color-btn-outline-disabled-bg', - 'color-btn-outline-disabled-counter-bg', - 'color-btn-outline-focus-border', - 'color-btn-outline-focus-shadow', - 'color-btn-outline-counter-bg', - 'color-btn-danger-text', - 'color-btn-danger-hover-text', - 'color-btn-danger-hover-bg', - 'color-btn-danger-hover-border', - 'color-btn-danger-hover-shadow', - 'color-btn-danger-hover-inset-shadow', - 'color-btn-danger-hover-counter-bg', - 'color-btn-danger-selected-text', - 'color-btn-danger-selected-bg', - 'color-btn-danger-selected-border', - 'color-btn-danger-selected-shadow', - 'color-btn-danger-disabled-text', - 'color-btn-danger-disabled-bg', - 'color-btn-danger-disabled-counter-bg', - 'color-btn-danger-focus-border', - 'color-btn-danger-focus-shadow', - 'color-btn-danger-counter-bg', - 'color-btn-danger-icon', - 'color-btn-danger-hover-icon', - 'color-underlinenav-icon', - 'color-underlinenav-border-hover', - 'color-fg-default', - 'color-fg-muted', - 'color-fg-subtle', - 'color-fg-on-emphasis', - 'color-canvas-default', - 'color-canvas-overlay', - 'color-canvas-inset', - 'color-canvas-subtle', - 'color-border-default', - 'color-border-muted', - 'color-border-subtle', - 'color-shadow-small', - 'color-shadow-medium', - 'color-shadow-large', - 'color-shadow-extra-large', - 'color-neutral-emphasis-plus', - 'color-neutral-emphasis', - 'color-neutral-muted', - 'color-neutral-subtle', - 'color-accent-fg', - 'color-accent-emphasis', - 'color-accent-muted', - 'color-accent-subtle', - 'color-success-fg', - 'color-success-emphasis', - 'color-success-muted', - 'color-success-subtle', - 'color-attention-fg', - 'color-attention-emphasis', - 'color-attention-muted', - 'color-attention-subtle', - 'color-severe-fg', - 'color-severe-emphasis', - 'color-severe-muted', - 'color-severe-subtle', - 'color-danger-fg', - 'color-danger-emphasis', - 'color-danger-muted', - 'color-danger-subtle', - 'color-done-fg', - 'color-done-emphasis', - 'color-done-muted', - 'color-done-subtle', - 'color-sponsors-fg', - 'color-sponsors-emphasis', - 'color-sponsors-muted', - 'color-sponsors-subtle', - 'color-primer-fg-disabled', - 'color-primer-canvas-backdrop', - 'color-primer-canvas-sticky', - 'color-primer-border-active', - 'color-primer-border-contrast', - 'color-primer-shadow-highlight', - 'color-primer-shadow-inset', - 'color-primer-shadow-focus', - 'color-scale-black', - 'color-scale-white', - 'color-scale-gray-0', - 'color-scale-gray-1', - 'color-scale-gray-2', - 'color-scale-gray-3', - 'color-scale-gray-4', - 'color-scale-gray-5', - 'color-scale-gray-6', - 'color-scale-gray-7', - 'color-scale-gray-8', - 'color-scale-gray-9', - 'color-scale-blue-0', - 'color-scale-blue-1', - 'color-scale-blue-2', - 'color-scale-blue-3', - 'color-scale-blue-4', - 'color-scale-blue-5', - 'color-scale-blue-6', - 'color-scale-blue-7', - 'color-scale-blue-8', - 'color-scale-blue-9', - 'color-scale-green-0', - 'color-scale-green-1', - 'color-scale-green-2', - 'color-scale-green-3', - 'color-scale-green-4', - 'color-scale-green-5', - 'color-scale-green-6', - 'color-scale-green-7', - 'color-scale-green-8', - 'color-scale-green-9', - 'color-scale-yellow-0', - 'color-scale-yellow-1', - 'color-scale-yellow-2', - 'color-scale-yellow-3', - 'color-scale-yellow-4', - 'color-scale-yellow-5', - 'color-scale-yellow-6', - 'color-scale-yellow-7', - 'color-scale-yellow-8', - 'color-scale-yellow-9', - 'color-scale-orange-0', - 'color-scale-orange-1', - 'color-scale-orange-2', - 'color-scale-orange-3', - 'color-scale-orange-4', - 'color-scale-orange-5', - 'color-scale-orange-6', - 'color-scale-orange-7', - 'color-scale-orange-8', - 'color-scale-orange-9', - 'color-scale-red-0', - 'color-scale-red-1', - 'color-scale-red-2', - 'color-scale-red-3', - 'color-scale-red-4', - 'color-scale-red-5', - 'color-scale-red-6', - 'color-scale-red-7', - 'color-scale-red-8', - 'color-scale-red-9', - 'color-scale-purple-0', - 'color-scale-purple-1', - 'color-scale-purple-2', - 'color-scale-purple-3', - 'color-scale-purple-4', - 'color-scale-purple-5', - 'color-scale-purple-6', - 'color-scale-purple-7', - 'color-scale-purple-8', - 'color-scale-purple-9', - 'color-scale-pink-0', - 'color-scale-pink-1', - 'color-scale-pink-2', - 'color-scale-pink-3', - 'color-scale-pink-4', - 'color-scale-pink-5', - 'color-scale-pink-6', - 'color-scale-pink-7', - 'color-scale-pink-8', - 'color-scale-pink-9', - 'color-scale-coral-0', - 'color-scale-coral-1', - 'color-scale-coral-2', - 'color-scale-coral-3', - 'color-scale-coral-4', - 'color-scale-coral-5', - 'color-scale-coral-6', - 'color-scale-coral-7', - 'color-scale-coral-8', - 'color-scale-coral-9', -] - -for (const [path, file] of files) { - for (const match of file.matchAll(/var\(--(.*?)\)/g)) { - if (!allowedVarColors.includes(match[1])) { - console.error(path, match[1]) - } - } -} diff --git a/script/move-content.js b/script/move-content.js index 0ccc01ddf9..b6b600c4e5 100755 --- a/script/move-content.js +++ b/script/move-content.js @@ -3,7 +3,7 @@ // [start-readme] // // Helps you move (a.k.a. rename) a file or a folder and does what's -// needed with frontmatter redrect_from and equivalent in translations. +// needed with frontmatter redirect_from. // // [end-readme] diff --git a/script/move-reusables-to-markdown.js b/script/move-reusables-to-markdown.js deleted file mode 100755 index 61e8ea62cc..0000000000 --- a/script/move-reusables-to-markdown.js +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env node - -// [start-readme] -// -// This script moves reusables out of YAML files into individual Markdown files. -// -// [end-readme] - -import { fileURLToPath } from 'url' -import path from 'path' -import fs from 'fs/promises' -import flat from 'flat' -import { get } from 'lodash-es' -import WalkSync from 'walk-sync' -import yaml from 'js-yaml' -import mkdirp from 'mkdirp' -import languages from '../lib/languages.js' - -const __dirname = path.dirname(fileURLToPath(import.meta.url)) -const walk = WalkSync.entries - -// move reusables for each language -Object.values(languages).map(async ({ dir }) => move(dir)) - -async function move(dir) { - const fullDir = path.join(__dirname, '..', dir, 'data/reusables') - console.log('removing', fullDir) - const files = walk(fullDir).filter((entry) => entry.relativePath.endsWith('yml')) - - for (const file of files) { - const fullPath = path.join(file.basePath, file.relativePath) - const fileContent = await fs.readFile(fullPath, 'utf8') - const data = flat(yaml.load(fileContent)) - - for (const key of Object.keys(data)) { - const value = get(data, key) - const markdownFilename = path.join(fullPath.replace('.yml', ''), `${key}.md`) - await mkdirp(path.dirname(markdownFilename)) - await fs.writeFile(markdownFilename, value) - console.log('created new markdown file ', path.relative(file.basePath, markdownFilename)) - } - } -} diff --git a/script/rendered-content-link-checker.js b/script/rendered-content-link-checker.js index 38b0922eea..8261735962 100755 --- a/script/rendered-content-link-checker.js +++ b/script/rendered-content-link-checker.js @@ -9,19 +9,11 @@ import fs from 'fs' import path from 'path' -import cheerio from 'cheerio' import { program, Option, InvalidArgumentError } from 'commander' -import chalk from 'chalk' -import got, { RequestError } from 'got' - -import shortVersions from '../middleware/contextualizers/short-versions.js' -import contextualize from '../middleware/context.js' import { languageKeys } from '../lib/languages.js' -import getRedirect from '../lib/get-redirect.js' -import warmServer from '../lib/warm-server.js' -import renderContent from '../lib/render-content/index.js' -import { deprecated } from '../lib/enterprise-server-releases.js' -import excludedLinks from '../lib/excluded-links.js' +import renderedContentLinkChecker from '../.github/actions/rendered-content-link-checker.js' +import { getCoreInject, getUploadArtifactInject } from './helpers/action-injections.js' +import github from './helpers/github.js' const STATIC_PREFIXES = { assets: path.resolve('assets'), @@ -34,24 +26,6 @@ Object.entries(STATIC_PREFIXES).forEach(([key, value]) => { } }) -// Return a function that can as quickly as possible check if a certain -// href input should be skipped. -// Do this so we can use a `Set` and a `iterable.some()` for a speedier -// check. -function linksToSkipFactory() { - const set = new Set(excludedLinks.filter((regexOrURL) => typeof regexOrURL === 'string')) - const regexes = excludedLinks.filter((regexOrURL) => regexOrURL instanceof RegExp) - return (href) => set.has(href) || regexes.some((regex) => regex.test(href)) -} - -const linksToSkip = linksToSkipFactory(excludedLinks) - -const CONTENT_ROOT = path.resolve('content') - -const deprecatedVersionPrefixesRegex = new RegExp( - `enterprise(-server@|/)(${deprecated.join('|')})(/|$)` -) - program .description('Analyze all checked content files, render them, and check for flaws.') .addOption( @@ -62,21 +36,47 @@ program ]) ) .addOption( - new Option('-l, --language ', 'Which languages to focus on').choices(languageKeys) + new Option( + '-l, --language ', + 'Which languages to focus on. (default: "en")' + ).choices(languageKeys) ) - .option('--verbose-url ', 'Print the absolute URL if set') .option('-f, --filter ', 'Search filter(s) on the paths') - .option('-e, --exit', 'Exit script by count of flaws (useful for CI)') - .option('-b, --bail', 'Exit on the first flaw') + .option('-l, --level', 'Level of broken link to be marked as a flaw. (default: "critical")') + .option('-v, --verbose', 'Verbose outputs') + .option( + '--create-report', + 'Create a report issue in report-repository if there are flaws. (default: false)' + ) + .option( + '--report-repository ', + 'Repository to create issue in. (default: "github/docs-content")' + ) + .option( + '--link-reports', + 'If comments should be made on previous report and new report "linking" them. (default: false)' + ) + .option( + '--report-author ', + 'Previous author of report PR for linking. (default: "docubot")' + ) + .option( + '--report-label