From 0b02439ceaa1dd744b7cdb203654faa60fab31be Mon Sep 17 00:00:00 2001 From: Jenni C <97056108+dihydroJenoxide@users.noreply.github.com> Date: Thu, 11 Dec 2025 11:20:55 -0800 Subject: [PATCH 1/3] tented 0008 (#58814) Co-authored-by: sunbrye Co-authored-by: Kevin Heis --- config/kubernetes/production/deployments/webapp.yaml | 2 ++ content/copilot/reference/ai-models/model-comparison.md | 1 + content/copilot/reference/ai-models/model-hosting.md | 1 + data/tables/copilot/model-multipliers.yml | 4 ++++ data/tables/copilot/model-release-status.yml | 7 +++++++ data/tables/copilot/model-supported-clients.yml | 8 ++++++++ data/tables/copilot/model-supported-plans.yml | 7 +++++++ data/variables/copilot.yml | 1 + 8 files changed, 31 insertions(+) diff --git a/config/kubernetes/production/deployments/webapp.yaml b/config/kubernetes/production/deployments/webapp.yaml index d6c5b57b8f7d..b2490d383618 100644 --- a/config/kubernetes/production/deployments/webapp.yaml +++ b/config/kubernetes/production/deployments/webapp.yaml @@ -2,6 +2,8 @@ apiVersion: apps/v1 kind: Deployment metadata: name: webapp + annotations: + moda.github.net/allow-missing-ready-pods: '1' spec: replicas: 6 selector: diff --git a/content/copilot/reference/ai-models/model-comparison.md b/content/copilot/reference/ai-models/model-comparison.md index a2c04d80a166..0add3515cbc1 100644 --- a/content/copilot/reference/ai-models/model-comparison.md +++ b/content/copilot/reference/ai-models/model-comparison.md @@ -32,6 +32,7 @@ Use this table to find a suitable model quickly, see more detail in the sections | Model | Task area | Excels at (primary use case) | Additional capabilities | Further reading | |-------------------------------------------------------|--------------------------------------------------|-------------------------------------------------------------------------|-------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------| | {% data variables.copilot.copilot_gpt_41 %} | General-purpose coding and writing | Fast, accurate code completions and explanations | Agent mode, vision | [{% data variables.copilot.copilot_gpt_41 %} model card](https://openai.com/index/gpt-4-1/) | +| {% data variables.copilot.copilot_gpt_52 %} | Deep reasoning and debugging | Multi-step problem solving and architecture-level code analysis | Agent mode | Not available | | {% data variables.copilot.copilot_gpt_51 %} | Deep reasoning and debugging | Multi-step problem solving and architecture-level code analysis | Agent mode | Not available | | {% data variables.copilot.copilot_gpt_5_codex %} | General-purpose coding and writing | Fast, accurate code completions and explanations | Agent mode | [{% data variables.copilot.copilot_gpt_5_codex %} model card](https://cdn.openai.com/pdf/97cc5669-7a25-4e63-b15f-5fd5bdc4d149/gpt-5-codex-system-card.pdf) | | {% data variables.copilot.copilot_gpt_5_mini %} | General-purpose coding and writing | Fast, accurate code completions and explanations | Agent mode, reasoning, vision | [{% data variables.copilot.copilot_gpt_5_mini %} model card](https://cdn.openai.com/gpt-5-system-card.pdf) | diff --git a/content/copilot/reference/ai-models/model-hosting.md b/content/copilot/reference/ai-models/model-hosting.md index 2734107d3029..34174dd09d9f 100644 --- a/content/copilot/reference/ai-models/model-hosting.md +++ b/content/copilot/reference/ai-models/model-hosting.md @@ -28,6 +28,7 @@ Used for: * {% data variables.copilot.copilot_gpt_51_codex %} * {% data variables.copilot.copilot_gpt_51_codex_mini %} * {% data variables.copilot.copilot_gpt_51_codex_max %} +* {% data variables.copilot.copilot_gpt_52 %} These models are hosted by OpenAI and {% data variables.product.github %}'s Azure infrastructure. diff --git a/data/tables/copilot/model-multipliers.yml b/data/tables/copilot/model-multipliers.yml index d84f76aa55d5..65d5e2a47a6b 100644 --- a/data/tables/copilot/model-multipliers.yml +++ b/data/tables/copilot/model-multipliers.yml @@ -73,6 +73,10 @@ multiplier_paid: 1.0 multiplier_free: Not applicable +- name: GPT-5.2 + multiplier_paid: 1.0 + multiplier_free: Not applicable + - name: Grok Code Fast 1 multiplier_paid: 0.25 multiplier_free: Not applicable diff --git a/data/tables/copilot/model-release-status.yml b/data/tables/copilot/model-release-status.yml index ccec7b367bd9..c945e4c38ebc 100644 --- a/data/tables/copilot/model-release-status.yml +++ b/data/tables/copilot/model-release-status.yml @@ -74,6 +74,13 @@ ask_mode: true edit_mode: true +- name: 'GPT-5.2' + provider: 'OpenAI' + release_status: 'Public preview' + agent_mode: true + ask_mode: true + edit_mode: true + # Anthropic models - name: 'Claude Haiku 4.5' provider: 'Anthropic' diff --git a/data/tables/copilot/model-supported-clients.yml b/data/tables/copilot/model-supported-clients.yml index db706336e61d..01c85cf2dfd3 100644 --- a/data/tables/copilot/model-supported-clients.yml +++ b/data/tables/copilot/model-supported-clients.yml @@ -133,6 +133,14 @@ xcode: false jetbrains: false +- name: GPT-5.2 + dotcom: true + vscode: true + vs: false + eclipse: false + xcode: false + jetbrains: false + - name: Grok Code Fast 1 dotcom: true vscode: true diff --git a/data/tables/copilot/model-supported-plans.yml b/data/tables/copilot/model-supported-plans.yml index 2a4fdd5f5f1f..4ca0d4ebe2d4 100644 --- a/data/tables/copilot/model-supported-plans.yml +++ b/data/tables/copilot/model-supported-plans.yml @@ -117,6 +117,13 @@ business: true enterprise: true +- name: GPT-5.2 + free: false + pro: true + pro_plus: true + business: true + enterprise: true + - name: Grok Code Fast 1 free: false pro: true diff --git a/data/variables/copilot.yml b/data/variables/copilot.yml index 8d0846baa8cf..4501e7bcc063 100644 --- a/data/variables/copilot.yml +++ b/data/variables/copilot.yml @@ -159,6 +159,7 @@ copilot_gpt_51: 'GPT-5.1' copilot_gpt_51_codex: 'GPT-5.1-Codex' copilot_gpt_51_codex_mini: 'GPT-5.1-Codex-Mini' copilot_gpt_51_codex_max: 'GPT-5.1-Codex-Max' +copilot_gpt_52: 'GPT-5.2' # OpenAI 'o' series: copilot_o3: 'o3' copilot_o4_mini: 'o4-mini' From 50f54eb7a6acfe0a68e360e64742b7f29e53a6ad Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 11 Dec 2025 11:35:45 -0800 Subject: [PATCH 2/3] Remove TODO and ai_search query param from ai-search-proxy (#58843) --- src/search/lib/ai-search-proxy.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/search/lib/ai-search-proxy.ts b/src/search/lib/ai-search-proxy.ts index a6bd834df737..27bac432aaed 100644 --- a/src/search/lib/ai-search-proxy.ts +++ b/src/search/lib/ai-search-proxy.ts @@ -60,9 +60,8 @@ export const aiSearchProxy = async (req: ExtendedRequest, res: Response) => { let reader: ReadableStreamDefaultReader | null = null try { - // TODO: We temporarily add ?ai_search=1 to use a new pattern in cgs-copilot production const response = await fetchStream( - `${process.env.CSE_COPILOT_ENDPOINT}/answers?ai_search=1`, + `${process.env.CSE_COPILOT_ENDPOINT}/answers`, { method: 'POST', body: JSON.stringify(body), From babee4037533841caf4c814a833626fefa638073 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 11 Dec 2025 12:17:32 -0800 Subject: [PATCH 3/3] feat: add AuditLogsTransformer for Article API (#58754) --- .../templates/audit-logs-page.template.md | 30 ++++ .../tests/audit-logs-transformer.ts | 95 ++++++++++++ .../transformers/audit-logs-transformer.ts | 139 ++++++++++++++++++ src/article-api/transformers/index.ts | 9 +- src/audit-logs/lib/index.ts | 52 ++++++- src/fixtures/fixtures/content/admin/index.md | 14 ++ .../index.md | 14 ++ .../audit-log-events-for-your-enterprise.md | 31 ++++ .../index.md | 13 ++ .../fixtures/content/authentication/index.md | 33 +++++ .../index.md | 17 +++ .../security-log-events.md | 21 +++ src/fixtures/fixtures/content/index.md | 6 +- .../fixtures/content/organizations/index.md | 21 +++ .../keeping-your-organization-secure/index.md | 18 +++ .../audit-log-events-for-your-organization.md | 22 +++ .../index.md | 14 ++ 17 files changed, 538 insertions(+), 11 deletions(-) create mode 100644 src/article-api/templates/audit-logs-page.template.md create mode 100644 src/article-api/tests/audit-logs-transformer.ts create mode 100644 src/article-api/transformers/audit-logs-transformer.ts create mode 100644 src/fixtures/fixtures/content/admin/index.md create mode 100644 src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/index.md create mode 100644 src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md create mode 100644 src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/index.md create mode 100644 src/fixtures/fixtures/content/authentication/index.md create mode 100644 src/fixtures/fixtures/content/authentication/keeping-your-account-and-data-secure/index.md create mode 100644 src/fixtures/fixtures/content/authentication/keeping-your-account-and-data-secure/security-log-events.md create mode 100644 src/fixtures/fixtures/content/organizations/index.md create mode 100644 src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/index.md create mode 100644 src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization.md create mode 100644 src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/index.md diff --git a/src/article-api/templates/audit-logs-page.template.md b/src/article-api/templates/audit-logs-page.template.md new file mode 100644 index 000000000000..c91df5343cda --- /dev/null +++ b/src/article-api/templates/audit-logs-page.template.md @@ -0,0 +1,30 @@ +# {{ page.title }} + +{{ page.intro }} + +{{ manualContent }} + +## Audit log events + +{% for categoryEntry in categorizedEvents %} +{% assign categoryName = categoryEntry[0] %} +{% assign events = categoryEntry[1] %} +### {{ categoryName }} + +{% if categoryNotes[categoryName] %} +{{ categoryNotes[categoryName] }} + +{% endif %} +{% for event in events %} +#### `{{ event.action }}` + +{{ event.description }} + +**Fields:** {% if event.fields %}{% for field in event.fields %}`{{ field }}`{% unless forloop.last %}, {% endunless %}{% endfor %}{% else %}No fields available{% endif %} + +{% if event.docs_reference_links and event.docs_reference_links != 'N/A' %} +**Reference:** {{ event.docs_reference_links }} +{% endif %} + +{% endfor %} +{% endfor %} \ No newline at end of file diff --git a/src/article-api/tests/audit-logs-transformer.ts b/src/article-api/tests/audit-logs-transformer.ts new file mode 100644 index 000000000000..1bf493c5fc46 --- /dev/null +++ b/src/article-api/tests/audit-logs-transformer.ts @@ -0,0 +1,95 @@ +import { beforeAll, describe, expect, test } from 'vitest' + +import { get } from '@/tests/helpers/e2etest' + +const makeURL = (pathname: string): string => { + const params = new URLSearchParams({ pathname }) + return `/api/article/body?${params}` +} + +describe('Audit Logs transformer', () => { + beforeAll(() => { + if (!process.env.ROOT) { + console.warn( + 'WARNING: The Audit Logs transformer tests require the ROOT environment variable to be set to the fixture root', + ) + } + }) + + test('Security log events page renders with markdown structure', async () => { + const res = await get( + makeURL('/en/authentication/keeping-your-account-and-data-secure/security-log-events'), + ) + expect(res.statusCode).toBe(200) + expect(res.headers['content-type']).toContain('text/markdown') + + // Check for the main heading + expect(res.body).toContain('# Security log events') + + // Check for intro + expect(res.body).toContain( + 'Learn about security log events recorded for your personal account.', + ) + + // Check for manual content section heading + expect(res.body).toContain('## About security log events') + + // Check for new main heading + expect(res.body).toContain('## Audit log events') + + // Check for category heading + // The template renders "### Category" + expect(res.body).toMatch(/### \w+/) + }) + + test('Enterprise audit log events page renders with markdown structure', async () => { + const res = await get( + makeURL( + '/en/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise', + ), + ) + expect(res.statusCode).toBe(200) + expect(res.headers['content-type']).toContain('text/markdown') + + expect(res.body).toContain('# Audit log events for your enterprise') + }) + + test('Organization audit log events page renders with markdown structure', async () => { + const res = await get( + makeURL( + '/en/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization', + ), + ) + expect(res.statusCode).toBe(200) + expect(res.headers['content-type']).toContain('text/markdown') + + expect(res.body).toContain('# Audit log events for your organization') + }) + + test('Events are formatted correctly', async () => { + const res = await get( + makeURL('/en/authentication/keeping-your-account-and-data-secure/security-log-events'), + ) + expect(res.statusCode).toBe(200) + + // Check for event action header + // #### `action.name` + expect(res.body).toMatch(/#### `[\w.]+`/) + + // Check for fields section + expect(res.body).toContain('**Fields:**') + + // Check for reference section + expect(res.body).toContain('**Reference:**') + }) + + test('Manual content is preserved', async () => { + const res = await get( + makeURL('/en/authentication/keeping-your-account-and-data-secure/security-log-events'), + ) + expect(res.statusCode).toBe(200) + + // The source file has manual content before the marker + expect(res.body).toContain('## About security log events') + }) +}) diff --git a/src/article-api/transformers/audit-logs-transformer.ts b/src/article-api/transformers/audit-logs-transformer.ts new file mode 100644 index 000000000000..962e47c3d884 --- /dev/null +++ b/src/article-api/transformers/audit-logs-transformer.ts @@ -0,0 +1,139 @@ +import type { Context, Page } from '@/types' +import type { PageTransformer } from './types' +import type { CategorizedEvents } from '@/audit-logs/types' +import { renderContent } from '@/content-render/index' +import matter from '@gr2m/gray-matter' +import { readFileSync } from 'fs' +import { join, dirname } from 'path' +import { fileURLToPath } from 'url' + +const __filename = fileURLToPath(import.meta.url) +const __dirname = dirname(__filename) + +/** + * Transformer for Audit Logs pages + * Converts audit log events and their data into markdown format using a Liquid template + */ +export class AuditLogsTransformer implements PageTransformer { + canTransform(page: Page): boolean { + return page.autogenerated === 'audit-logs' + } + + async transform(page: Page, pathname: string, context: Context): Promise { + // Import audit log lib dynamically to avoid circular dependencies + const { getCategorizedAuditLogEvents, getCategoryNotes, resolveReferenceLinksToMarkdown } = + await import('@/audit-logs/lib/index') + + // Extract version from context + const currentVersion = context.currentVersion! + + let pageType = '' + if (pathname.includes('/security-log-events')) { + pageType = 'user' + } else if (pathname.includes('/audit-log-events-for-your-enterprise')) { + pageType = 'enterprise' + } else if (pathname.includes('/audit-log-events-for-your-organization')) { + pageType = 'organization' + } else { + throw new Error(`Unknown audit log page type for path: ${pathname}`) + } + + // Get the audit log events data + const categorizedEvents = getCategorizedAuditLogEvents(pageType, currentVersion) + const categoryNotes = getCategoryNotes() + + // Prepare manual content + let manualContent = '' + if (page.markdown) { + const markerIndex = page.markdown.indexOf( + '', + ) + if (markerIndex > 0) { + const { content } = matter(page.markdown) + const manualContentMarkerIndex = content.indexOf( + '', + ) + if (manualContentMarkerIndex > 0) { + const rawManualContent = content.substring(0, manualContentMarkerIndex).trim() + if (rawManualContent) { + manualContent = await renderContent(rawManualContent, { + ...context, + markdownRequested: true, + }) + } + } + } + } + + // Prepare data for template + const templateData = await this.prepareTemplateData( + page, + categorizedEvents, + categoryNotes, + context, + manualContent, + resolveReferenceLinksToMarkdown, + ) + + // Load and render template + const templatePath = join(__dirname, '../templates/audit-logs-page.template.md') + const templateContent = readFileSync(templatePath, 'utf8') + + // Render the template with Liquid + const rendered = await renderContent(templateContent, { + ...context, + ...templateData, + markdownRequested: true, + }) + + return rendered + } + + /** + * Prepare data for the Liquid template + */ + private async prepareTemplateData( + page: Page, + categorizedEvents: CategorizedEvents, + categoryNotes: Record, + context: Context, + manualContent: string, + resolveReferenceLinksToMarkdown: (docsReferenceLinks: string, context: any) => Promise, + ): Promise> { + // Prepare page intro + const intro = page.intro ? await page.renderProp('intro', context, { textOnly: true }) : '' + + // Sort categories and events + const sortedCategorizedEvents: CategorizedEvents = {} + const sortedCategories = Object.keys(categorizedEvents).sort((a, b) => a.localeCompare(b)) + + for (const category of sortedCategories) { + // Create a copy of the events array to avoid mutating the cache + const events = [...categorizedEvents[category]].sort((a, b) => + a.action.localeCompare(b.action), + ) + sortedCategorizedEvents[category] = await Promise.all( + events.map(async (event) => { + const newEvent = { ...event } + if (newEvent.docs_reference_links && newEvent.docs_reference_links !== 'N/A') { + newEvent.docs_reference_links = await resolveReferenceLinksToMarkdown( + newEvent.docs_reference_links, + context, + ) + } + return newEvent + }), + ) + } + + return { + page: { + title: page.title, + intro, + }, + manualContent, + categorizedEvents: sortedCategorizedEvents, + categoryNotes, + } + } +} diff --git a/src/article-api/transformers/index.ts b/src/article-api/transformers/index.ts index 1ee146a92089..07231ff4032a 100644 --- a/src/article-api/transformers/index.ts +++ b/src/article-api/transformers/index.ts @@ -1,5 +1,6 @@ import { TransformerRegistry } from './types' import { RestTransformer } from './rest-transformer' +import { AuditLogsTransformer } from './audit-logs-transformer' import { GraphQLTransformer } from './graphql-transformer' /** @@ -8,15 +9,9 @@ import { GraphQLTransformer } from './graphql-transformer' */ export const transformerRegistry = new TransformerRegistry() -// Register REST transformer transformerRegistry.register(new RestTransformer()) - -// Register GraphQL transformer +transformerRegistry.register(new AuditLogsTransformer()) transformerRegistry.register(new GraphQLTransformer()) -// Future transformers can be registered here: -// transformerRegistry.register(new WebhooksTransformer()) -// transformerRegistry.register(new GitHubAppsTransformer()) - export { TransformerRegistry } from './types' export type { PageTransformer } from './types' diff --git a/src/audit-logs/lib/index.ts b/src/audit-logs/lib/index.ts index b81158f63979..8538890f844f 100644 --- a/src/audit-logs/lib/index.ts +++ b/src/audit-logs/lib/index.ts @@ -31,11 +31,61 @@ export function getCategoryNotes(): CategoryNotes { return auditLogConfig.categoryNotes || {} } -type TitleResolutionContext = Context & { +export type TitleResolutionContext = Context & { pages: Record redirects: Record } +// Resolves docs_reference_links URLs to markdown links +export async function resolveReferenceLinksToMarkdown( + docsReferenceLinks: string, + context: TitleResolutionContext, +): Promise { + if (!docsReferenceLinks || docsReferenceLinks === 'N/A') { + return '' + } + + // Handle multiple comma-separated or space-separated links + const links = docsReferenceLinks + .split(/[,\s]+/) + .map((link) => link.trim()) + .filter((link) => link && link !== 'N/A') + + const markdownLinks = [] + for (const link of links) { + try { + const page = findPage(link, context.pages, context.redirects) + if (page) { + // Create a minimal context for rendering the title + const renderContext = { + currentLanguage: 'en', + currentVersion: 'free-pro-team@latest', + pages: context.pages, + redirects: context.redirects, + } as unknown as Context + const title = await page.renderProp('title', renderContext, { textOnly: true }) + markdownLinks.push(`[${title}](${link})`) + } else { + // If we can't resolve the link, use the original URL + markdownLinks.push(link) + } + } catch (error) { + // If resolution fails, use the original URL + console.warn( + `Failed to resolve title for link: ${link}`, + error instanceof Error + ? error instanceof Error + ? error.message + : String(error) + : String(error), + ) + markdownLinks.push(link) + } + } + + return markdownLinks.join(', ') +} + // Resolves docs_reference_links URLs to page titles async function resolveReferenceLinksToTitles( docsReferenceLinks: string, diff --git a/src/fixtures/fixtures/content/admin/index.md b/src/fixtures/fixtures/content/admin/index.md new file mode 100644 index 000000000000..ac0afdc79daa --- /dev/null +++ b/src/fixtures/fixtures/content/admin/index.md @@ -0,0 +1,14 @@ +--- +title: Enterprise administrator documentation +shortTitle: Enterprise administrators +intro: 'Documentation and guides for enterprise administrators.' + +changelog: + label: enterprise +layout: product-landing +versions: + ghec: '*' + ghes: '*' +children: + - /monitoring-activity-in-your-enterprise +--- diff --git a/src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/index.md b/src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/index.md new file mode 100644 index 000000000000..99c47f7b8ca7 --- /dev/null +++ b/src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/index.md @@ -0,0 +1,14 @@ +--- +title: Monitoring activity in your enterprise +intro: 'You can view user and system activity by leveraging audit logs.' +redirect_from: + - /enterprise/admin/installation/monitoring-activity-on-your-github-enterprise-server-instance +versions: + ghec: '*' + ghes: '*' +topics: + - Enterprise +children: + - /reviewing-audit-logs-for-your-enterprise +shortTitle: Monitor user activity +--- diff --git a/src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md b/src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md new file mode 100644 index 000000000000..36c8f6bb82bc --- /dev/null +++ b/src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/audit-log-events-for-your-enterprise.md @@ -0,0 +1,31 @@ +--- +title: Audit log events for your enterprise +intro: Review the events recorded in an enterprise's audit log. +shortTitle: Audit log events +permissions: 'Enterprise owners {% ifversion ghes %}and site administrators {% endif %}' +redirect_from: + - /enterprise/admin/articles/audited-actions + - /enterprise/admin/installation/audited-actions + - /enterprise/admin/user-management/audited-actions + - /admin/user-management/audited-actions + - /admin/user-management/monitoring-activity-in-your-enterprise/audited-actions +versions: + ghec: '*' + ghes: '*' +type: reference +topics: + - Auditing + - Enterprise + - Logging + - Security +autogenerated: audit-logs +--- + +> [!NOTE] This article lists events that may appear in the audit log for an **enterprise**. For the events that can appear in a user account's security log or the audit log for an organization, see [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/security-log-events) and [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization). + +## What types of events are included? + +* **Without Enterprise Managed Users**, the audit log only includes events related to the enterprise account and the organizations within it. +* **With Enterprise Managed Users**, the audit log also includes user events, which are not listed here. For that list, see [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/security-log-events). + + diff --git a/src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/index.md b/src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/index.md new file mode 100644 index 000000000000..5f97a80c8053 --- /dev/null +++ b/src/fixtures/fixtures/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/index.md @@ -0,0 +1,13 @@ +--- +title: Reviewing audit logs for your enterprise +intro: You can view user and system activity in the audit logs for your enterprise. +shortTitle: Review audit logs +versions: + ghec: '*' + ghes: '*' +topics: + - Enterprise +children: + - /audit-log-events-for-your-enterprise +--- + diff --git a/src/fixtures/fixtures/content/authentication/index.md b/src/fixtures/fixtures/content/authentication/index.md new file mode 100644 index 000000000000..d4c8fa05c7ae --- /dev/null +++ b/src/fixtures/fixtures/content/authentication/index.md @@ -0,0 +1,33 @@ +--- +title: Authentication documentation +shortTitle: Authentication +intro: 'Keep your account and data secure with features like two-factor authentication, SSH, and commit signature verification.' +redirect_from: + - /categories/56/articles + - /categories/ssh + - /mac-verify-ssh + - /ssh-issues + - /verify-ssh-redirect + - /win-verify-ssh + - /categories/92/articles + - /categories/gpg + - /categories/security + - /categories/authenticating-to-github + - /github/authenticating-to-github +versions: + fpt: '*' + ghes: '*' + ghec: '*' + +changelog: + label: '2FA,authentication,security keys,SSH,token authentication' +layout: product-landing +topics: + - 2FA + - Identity + - Access management + - Usernames + - Device verification +children: + - /keeping-your-account-and-data-secure +--- diff --git a/src/fixtures/fixtures/content/authentication/keeping-your-account-and-data-secure/index.md b/src/fixtures/fixtures/content/authentication/keeping-your-account-and-data-secure/index.md new file mode 100644 index 000000000000..f4d0c2b8a7da --- /dev/null +++ b/src/fixtures/fixtures/content/authentication/keeping-your-account-and-data-secure/index.md @@ -0,0 +1,17 @@ +--- +title: Keeping your account and data secure +intro: 'To protect your personal information, you should keep both your account on GitHub and any associated data secure.' +redirect_from: + - /articles/keeping-your-account-and-data-secure + - /github/authenticating-to-github/keeping-your-account-and-data-secure +versions: + fpt: '*' + ghes: '*' + ghec: '*' +topics: + - Identity + - Access management +children: + - /security-log-events +shortTitle: Account security +--- diff --git a/src/fixtures/fixtures/content/authentication/keeping-your-account-and-data-secure/security-log-events.md b/src/fixtures/fixtures/content/authentication/keeping-your-account-and-data-secure/security-log-events.md new file mode 100644 index 000000000000..2e487730989d --- /dev/null +++ b/src/fixtures/fixtures/content/authentication/keeping-your-account-and-data-secure/security-log-events.md @@ -0,0 +1,21 @@ +--- +title: Security log events +intro: Learn about security log events recorded for your personal account. +versions: + fpt: '*' + ghes: '*' + ghec: '*' +topics: + - Identity + - Access management +autogenerated: audit-logs +--- + +> [!NOTE] +> This article contains the events that may appear in your user account's security log. + +## About security log events + +Reference grouped by category. + + diff --git a/src/fixtures/fixtures/content/index.md b/src/fixtures/fixtures/content/index.md index 7b817882b23d..ed523bc00b95 100644 --- a/src/fixtures/fixtures/content/index.md +++ b/src/fixtures/fixtures/content/index.md @@ -35,12 +35,12 @@ children: - graphql - video-transcripts # - account-and-profile - # - authentication + - authentication # - repositories - # - admin + - admin # - billing # - site-policy - # - organizations + - organizations # - pull-requests # - issues # - copilot diff --git a/src/fixtures/fixtures/content/organizations/index.md b/src/fixtures/fixtures/content/organizations/index.md new file mode 100644 index 000000000000..da877c1e75f5 --- /dev/null +++ b/src/fixtures/fixtures/content/organizations/index.md @@ -0,0 +1,21 @@ +--- +title: Organizations and teams documentation +shortTitle: Organizations +intro: 'You can use organizations to collaborate with a large number of people across many projects at once, while managing access to your data and customizing settings.' +redirect_from: + - /articles/about-improved-organization-permissions + - /categories/setting-up-and-managing-organizations-and-teams + - /github/setting-up-and-managing-organizations-and-teams + - /organizations/organizing-members-into-teams/disabling-team-discussions-for-your-organization + +layout: product-landing +versions: + fpt: '*' + ghes: '*' + ghec: '*' +topics: + - Organizations + - Teams +children: + - /keeping-your-organization-secure +--- diff --git a/src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/index.md b/src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/index.md new file mode 100644 index 000000000000..f368912f58dd --- /dev/null +++ b/src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/index.md @@ -0,0 +1,18 @@ +--- +title: Keeping your organization secure +intro: 'You can harden security for your organization by managing security settings, requiring two-factor authentication (2FA), and reviewing the activity and integrations within your organization.' +redirect_from: + - /articles/preventing-unauthorized-access-to-organization-information + - /articles/keeping-your-organization-secure + - /github/setting-up-and-managing-organizations-and-teams/keeping-your-organization-secure +versions: + fpt: '*' + ghes: '*' + ghec: '*' +topics: + - Organizations + - Teams +children: + - /managing-security-settings-for-your-organization +shortTitle: Organization security +--- diff --git a/src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization.md b/src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization.md new file mode 100644 index 000000000000..ffdc3fe1e26d --- /dev/null +++ b/src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization.md @@ -0,0 +1,22 @@ +--- +title: Audit log events for your organization +intro: Learn about audit log events recorded for your organization. +versions: + fpt: '*' + ghes: '*' + ghec: '*' +topics: + - Organizations + - Teams +shortTitle: Audit log events +autogenerated: audit-logs +--- + +> [!NOTE] +> This article contains the events that may appear in your organization's audit log. + +## About audit log events for your organization + +Reference grouped by category. + + diff --git a/src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/index.md b/src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/index.md new file mode 100644 index 000000000000..3cb126f6d440 --- /dev/null +++ b/src/fixtures/fixtures/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/index.md @@ -0,0 +1,14 @@ +--- +title: Managing security settings for your organization +shortTitle: Manage security settings +intro: 'You can manage security settings and review the audit log and integrations for your organization.' +versions: + fpt: '*' + ghes: '*' + ghec: '*' +topics: + - Organizations + - Teams +children: + - /audit-log-events-for-your-organization +---