Skip to content

Commit 0958513

Browse files
Merge branch 'main' into upload-pages
2 parents c337aa2 + 73b876a commit 0958513

File tree

36 files changed

+969
-701
lines changed

36 files changed

+969
-701
lines changed

content/admin/configuring-settings/configuring-network-settings/configuring-time-synchronization.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,31 @@ topics:
2121
- Networking
2222
shortTitle: Configure time settings
2323
---
24+
25+
## Default NTP servers
26+
27+
We recommend configuring your own preferred NTP servers. The default NTP server values on GitHub Enterprise Server are the following:
28+
29+
{% ifversion ghes > 3.17 %}
30+
AWS
31+
* Primary Server: 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
32+
* NTP Pool: time.aws.com iburst
33+
34+
Other (non-AWS)
35+
{% endif %}
36+
* Primary Server: 0.github.pool.ntp.org
37+
* Secondary Server: 1.github.pool.ntp.org
38+
39+
You must ensure that the NTP servers (configured or default) are reachable on UDP port 123. For more details on the network ports that need to be open, see [AUTOTITLE](/admin/configuring-settings/configuring-network-settings/network-ports#administrative-ports).
40+
2441
## Changing the default NTP servers
2542

2643
{% data reusables.enterprise_site_admin_settings.access-settings %}
2744
{% data reusables.enterprise_site_admin_settings.management-console %}
2845
1. In the "Settings" sidebar, click **Time**.
29-
1. Under "Primary NTP server," type the hostname of the primary NTP server.
30-
1. Under "Secondary NTP server," type the hostname of the secondary NTP server.
46+
1. Under "Primary NTP server", type the hostname of the primary NTP server.
47+
1. Under "Secondary NTP server (optional)", type the hostname of the secondary NTP server.{% ifversion ghes > 3.17 %}
48+
1. Under "NTP pool (optional)", type the NTP pool.{% endif %}
3149
1. Under the "Settings" sidebar, click **Save settings**.
3250
1. Wait for the configuration run to complete.
3351

content/code-security/dependabot/working-with-dependabot/dependabot-options-reference.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,66 @@ When `target-branch` is defined:
686686
* All pull requests for version updates are opened targeting the specified branch.
687687
* Options defined for this `package-ecosystem` no longer apply to security updates because security updates always use the default branch for the repository.
688688

689+
## `exclude-paths` {% octicon "versions" aria-label="Version updates only" height="24" %}
690+
691+
Use to specify paths of directories and files that {% data variables.product.prodname_dependabot %} should ignore when scanning for manifests and dependencies. This option is useful when you want to prevent updates for dependencies in certain locations, such as test assets, vendored code, or specific files.
692+
693+
{% data variables.product.prodname_dependabot %} default behavior:
694+
695+
* All directories and files in the specified `directory` are included in the update scan unless excluded by this option.
696+
697+
When `exclude-paths` is defined:
698+
699+
* All files and directories matching the specified paths are ignored during update scans for the given `package-ecosystem` entry.
700+
701+
| Parameter | Purpose |
702+
|-----------|---------|
703+
| `exclude-paths` | A list of glob patterns for files or directories to ignore. |
704+
705+
Glob patterns are supported, such as `**` for recursive matching and `*` for single-segment wildcards. Patterns are relative to the `directory` specified for the update configuration. Each ecosystem can have its own `exclude-paths` settings.
706+
707+
## Example
708+
709+
```yaml copy
710+
version: 2
711+
updates:
712+
- package-ecosystem: "npm"
713+
directory: "/"
714+
schedule:
715+
interval: "daily"
716+
exclude-paths:
717+
- "src/test/assets"
718+
- "vendor/**"
719+
- "src/*.js"
720+
- "src/test/helper.js"
721+
722+
# Sample patterns that can be used-
723+
724+
# Pattern: docs/*.json
725+
# Matches: docs/foo.json, docs/bar.json
726+
727+
# Pattern: *.lock
728+
# Matches: Gemfile.lock, package.lock, foo.lock (in any directory)
729+
730+
# Pattern: test/**
731+
# Matches: test/foo.rb, test/bar/baz.rb, test/any/depth/file.txt
732+
733+
# Pattern: config/settings.yml
734+
# Matches: config/settings.yml
735+
736+
# Pattern: **/*.md
737+
# Matches: README.md, docs/guide.md, any/depth/file.md
738+
739+
# Pattern: src/*
740+
# Matches: src/main.rb, src/app.js
741+
# Does NOT match: src/utils/helper.rb
742+
743+
# Pattern: hidden/.*
744+
# Matches: hidden/.env, hidden/.secret
745+
```
746+
747+
In this example, {% data variables.product.prodname_dependabot %} will ignore the `src/test/assets` directory, all files under `vendor/`, all JavaScript files directly under `src/`, and the specific file `src/test/helper.js` when scanning for updates.
748+
689749
## `vendor` {% octicon "versions" aria-label="Version updates" height="24" %} {% octicon "shield-check" aria-label="Security updates" height="24" %}
690750

691751
Supported by: `bundler` and `gomod` only.

content/code-security/secret-scanning/introduction/supported-secret-scanning-patterns.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,21 +76,21 @@ In addition to these generic non-provider patterns, {% data variables.product.pr
7676
> [!NOTE]
7777
> Validity checks are only available to users with {% data variables.product.prodname_team %} or {% data variables.product.prodname_enterprise %} who enable the feature as part of {% data variables.product.prodname_GH_secret_protection %}.
7878
79-
| Provider | Token | Partner | User | Push protection | Validity check |
80-
|----|:----|:----:|:----:|:----:|:----:|
79+
| Provider | Token | Partner | User | Push protection | Validity check | Base 64 |
80+
|----|:----|:----:|:----:|:----:|:----:|:----:|
8181
{%- for entry in secretScanningData %}
82-
| {{ entry.provider }} | {{ entry.secretType }} | {% if entry.isPublic %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.isPrivateWithGhas %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.hasPushProtection %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.hasValidityCheck %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} |
82+
| {{ entry.provider }} | {{ entry.secretType }} | {% if entry.isPublic %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.isPrivateWithGhas %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.hasPushProtection %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.hasValidityCheck %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.base64Supported %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} |
8383
{%- endfor %}
8484

8585
{% endif %}
8686

8787
<!-- GHES 3.9+ table -->
8888
{% ifversion ghes %}
8989

90-
| Provider | Token | {% data variables.product.prodname_secret_scanning_caps %} alert | Push protection | Validity check |
91-
|----|:----|:----:|:----:|:----:|
90+
| Provider | Token | {% data variables.product.prodname_secret_scanning_caps %} alert | Push protection | Validity check | Base64 |
91+
|----|:----|:----:|:----:|:----:|:----:|
9292
{%- for entry in secretScanningData %}
93-
| {{ entry.provider }} | {{ entry.secretType }} | {% if entry.isPrivateWithGhas %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.hasPushProtection %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.hasValidityCheck %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} |
93+
| {{ entry.provider }} | {{ entry.secretType }} | {% if entry.isPrivateWithGhas %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.hasPushProtection %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.hasValidityCheck %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} | {% if entry.base64Supported %}<span role="img" class="octicon-bg-check" aria-label="Supported">✓</span>{% else %}<span role="img" class="octicon-bg-x" aria-label="Unsupported">✗</span>{% endif %} |
9494
{%- endfor %}
9595

9696
{% endif %}

data/ui.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,3 +343,9 @@ cookbook_landing:
343343
search_articles: Search articles
344344
category: Category
345345
complexity: Complexity
346+
347+
not_found:
348+
title: Ooops!
349+
message: It looks like this page doesn't exist.
350+
contact: We track these errors automatically, but if the problem persists please feel free to contact us.
351+
contact_cta: Contact support

src/app/404/page.tsx

Lines changed: 7 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import { getAppRouterContext } from '@/app/lib/app-router-context'
2-
import { AppRouterMainContextProvider } from '@/app/components/AppRouterMainContext'
3-
import { translate } from '@/languages/lib/translation-utils'
4-
import { CommentDiscussionIcon, MarkGithubIcon } from '@primer/octicons-react'
1+
import { Client404Wrapper } from '@/app/components/Client404Wrapper'
2+
import { createServerAppRouterContext } from '@/app/lib/server-context-utils'
3+
import { headers } from 'next/headers'
54
import type { Metadata } from 'next'
65

76
export const dynamic = 'force-dynamic'
@@ -12,94 +11,10 @@ export const metadata: Metadata = {
1211
}
1312

1413
export default async function Page404() {
15-
// Get context with UI data
16-
const appContext = await getAppRouterContext()
14+
const headersList = await headers()
15+
const pathname = headersList.get('x-pathname') || '/404'
1716

18-
const siteTitle = translate(appContext.site.data.ui, 'header.github_docs', 'GitHub Docs')
19-
const oopsTitle = translate(appContext.site.data.ui, 'meta.oops', 'Ooops!')
17+
const appContext = createServerAppRouterContext(pathname)
2018

21-
return (
22-
<AppRouterMainContextProvider context={appContext}>
23-
<div className="min-h-screen d-flex flex-column">
24-
{/* Simple Header */}
25-
<div className="border-bottom color-border-muted no-print">
26-
<header className="container-xl p-responsive py-3 position-relative d-flex width-full">
27-
<div className="d-flex flex-1 flex-items-center">
28-
<a
29-
href={`/${appContext.currentLanguage}`}
30-
className="color-fg-default no-underline d-flex flex-items-center"
31-
>
32-
<MarkGithubIcon size={32} className="mr-2" />
33-
<span className="f4 text-bold">{siteTitle}</span>
34-
</a>
35-
</div>
36-
</header>
37-
</div>
38-
39-
{/* Main Content */}
40-
<div className="container-xl p-responsive py-6 width-full flex-1">
41-
<article className="col-md-10 col-lg-7 mx-auto">
42-
<h1>{oopsTitle}</h1>
43-
<div className="f2 color-fg-muted mb-3" data-container="lead">
44-
It looks like this page doesn't exist.
45-
</div>
46-
<p className="f3">
47-
We track these errors automatically, but if the problem persists please feel free to
48-
contact us.
49-
</p>
50-
<a id="support" href="https://support.github.com" className="btn btn-outline mt-2">
51-
<CommentDiscussionIcon size="small" className="octicon mr-1" />
52-
Contact support
53-
</a>
54-
</article>
55-
</div>
56-
57-
<footer className="py-6">
58-
<div className="container-xl px-3 px-md-6">
59-
<ul className="d-flex flex-wrap list-style-none">
60-
<li className="d-flex mr-xl-3 color-fg-muted">
61-
<span>© 2025 GitHub, Inc.</span>
62-
</li>
63-
<li className="ml-3">
64-
<a
65-
className="text-underline"
66-
href="/site-policy/github-terms/github-terms-of-service"
67-
>
68-
Terms
69-
</a>
70-
</li>
71-
<li className="ml-3">
72-
<a
73-
className="text-underline"
74-
href="/site-policy/privacy-policies/github-privacy-statement"
75-
>
76-
Privacy
77-
</a>
78-
</li>
79-
<li className="ml-3">
80-
<a className="text-underline" href="https://www.githubstatus.com/">
81-
Status
82-
</a>
83-
</li>
84-
<li className="ml-3">
85-
<a className="text-underline" href="https://github.com/pricing">
86-
Pricing
87-
</a>
88-
</li>
89-
<li className="ml-3">
90-
<a className="text-underline" href="https://services.github.com/">
91-
Expert services
92-
</a>
93-
</li>
94-
<li className="ml-3">
95-
<a className="text-underline" href="https://github.blog/">
96-
Blog
97-
</a>
98-
</li>
99-
</ul>
100-
</div>
101-
</footer>
102-
</div>
103-
</AppRouterMainContextProvider>
104-
)
19+
return <Client404Wrapper appContext={appContext} />
10520
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
'use client'
2+
3+
import { useAppRouterMainContext } from '@/app/components/AppRouterMainContext'
4+
import { createTranslationFunctions } from '@/languages/lib/translation-utils'
5+
import { LinkExternalIcon } from '@primer/octicons-react'
6+
7+
export function AppRouterFooter() {
8+
const context = useAppRouterMainContext()
9+
10+
const { t } = createTranslationFunctions(context.site.data.ui, 'footer')
11+
12+
return (
13+
<section className="container-xl px-3 mt-6 pb-8 px-md-6 color-fg-muted">
14+
{context.currentLanguage !== 'en' && <h2 className="f4 mb-2 col-12">{t('legal_heading')}</h2>}
15+
16+
{/* Machine translation notice for non-English languages */}
17+
{context.currentLanguage !== 'en' && <p>{t('machine')}</p>}
18+
19+
<ul className="d-flex flex-wrap list-style-none">
20+
<li className="mr-3">&copy; {new Date().getFullYear()} GitHub, Inc.</li>
21+
22+
{/* German-specific Impressum link (legally required) */}
23+
{context.currentLanguage === 'de' && (
24+
<li className="mr-3">
25+
<a
26+
className="text-underline"
27+
href="https://aka.ms/impressum_de"
28+
target="_blank"
29+
rel="noopener"
30+
>
31+
{t('imprint')}
32+
</a>
33+
<LinkExternalIcon aria-label="(external site)" size={12} />
34+
</li>
35+
)}
36+
37+
<li className="mr-3">
38+
<a
39+
className="text-underline"
40+
href={`/${context.currentLanguage}/site-policy/github-terms/github-terms-of-service`}
41+
>
42+
{t('terms')}
43+
</a>
44+
</li>
45+
46+
<li className="mr-3">
47+
<a
48+
className={`text-underline ${
49+
context.currentLanguage === 'ko' ? 'color-fg-attention text-bold' : ''
50+
}`}
51+
href={`/${context.currentLanguage}/site-policy/privacy-policies/github-privacy-statement`}
52+
>
53+
{t('privacy')}
54+
</a>
55+
</li>
56+
57+
<li className="mr-3">
58+
<a className="text-underline" href="https://www.githubstatus.com/">
59+
{t('status')}
60+
</a>
61+
</li>
62+
63+
<li className="mr-3">
64+
<a className="text-underline" href="https://github.com/pricing">
65+
{t('pricing')}
66+
</a>
67+
</li>
68+
69+
<li className="mr-3">
70+
<a className="text-underline" href="https://services.github.com">
71+
{t('expert_services')}
72+
</a>
73+
</li>
74+
75+
<li className="mr-3">
76+
<a className="text-underline" href="https://github.blog">
77+
{t('blog')}
78+
</a>
79+
</li>
80+
</ul>
81+
</section>
82+
)
83+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
'use client'
2+
3+
import { MarkGithubIcon } from '@primer/octicons-react'
4+
import { useAppRouterMainContext } from '@/app/components/AppRouterMainContext'
5+
import { createTranslationFunctions } from '@/languages/lib/translation-utils'
6+
7+
export function AppRouterHeader() {
8+
const context = useAppRouterMainContext()
9+
10+
const { t } = createTranslationFunctions(context.site.data.ui, 'header')
11+
12+
const siteTitle = t('github_docs')
13+
14+
return (
15+
<div className="border-bottom color-border-muted no-print">
16+
<header className="container-xl p-responsive py-3 position-relative d-flex width-full">
17+
<div className="d-flex flex-1 flex-items-center">
18+
<a
19+
href={`/${context.currentLanguage}`}
20+
className="color-fg-default no-underline d-flex flex-items-center"
21+
>
22+
<MarkGithubIcon size={32} className="mr-2" />
23+
<span className="f4 text-bold">{siteTitle}</span>
24+
</a>
25+
</div>
26+
</header>
27+
</div>
28+
)
29+
}

0 commit comments

Comments
 (0)