Skip to content

Commit 292ee90

Browse files
authored
Merge pull request #37182 from github/repo-sync
Repo sync
2 parents 246496d + a0ee8e2 commit 292ee90

File tree

14 files changed

+89
-40
lines changed

14 files changed

+89
-40
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# ---------------------------------------------------------------
99
# To update the sha:
1010
# https://github.com/github/gh-base-image/pkgs/container/gh-base-image%2Fgh-base-noble
11-
FROM ghcr.io/github/gh-base-image/gh-base-noble:20250319-193531-g83d4e6244 AS base
11+
FROM ghcr.io/github/gh-base-image/gh-base-noble:20250328-000607-gf66d47491 AS base
1212

1313
# Install curl for Node install and determining the early access branch
1414
# Install git for cloning docs-early-access & translations repos

content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Most programming languages have a package that can generate a JWT. In all cases,
4747
> [!NOTE]
4848
> You must run `gem install jwt` to install the `jwt` package in order to use this script.
4949
50-
In the following example, replace `YOUR_PATH_TO_PEM` with the file path where your private key is stored. Replace `YOUR_APP_ID` with the ID of your app. Make sure to enclose the values for `YOUR_PATH_TO_PEM` and `YOUR_APP_ID` in double quotes.
50+
In the following example, replace `YOUR_PATH_TO_PEM` with the file path where your private key is stored. Replace {% ifversion client-id-for-app %}`YOUR_CLIENT_ID`{% else %}`YOUR_APP_ID`{% endif %} with the ID of your app. Make sure to enclose the values for `YOUR_PATH_TO_PEM` and {% ifversion client-id-for-app %}`YOUR_CLIENT_ID`{% else %}`YOUR_APP_ID`{% endif %} in double quotes.
5151

5252
```ruby
5353
require 'openssl'

content/billing/using-the-new-billing-platform/charging-business-units.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ To drive accountability and control costs, the new billing platform lets you cre
1616

1717
If your account is billed to Azure, you will have the option to add an Azure subscription ID. Cost centers allows for multiple Azure subscription IDs so that different business units, within an enterprise, can directly pay for their usage.
1818

19+
To learn more about roles authorized to create and manage cost centers, see [AUTOTITLE](/billing/using-the-new-billing-platform/roles-for-the-new-billing-platform).
20+
1921
## Creating a cost center
2022

2123
Create cost centers to monitor and manage expenses for specific organizations or repositories. Multiple organizations, repositories, and users can be assigned to one cost center.
@@ -167,6 +169,16 @@ The following table illustrates how spending for each user is allocated to a cos
167169

168170
{% endrowheaders %}
169171

172+
## Limitations of the cost center API
173+
174+
There are a few current limitations when working with cost centers and the API:
175+
176+
* You **cannot** create cost centers using the API. Administrators must create them through the UI.
177+
* Once a cost center is created in the UI, administrators can use the API to add **members** only.
178+
* It’s **not currently possible** to add **organizations** or **repositories** to cost centers using the API.
179+
* You **cannot** add members to cost centers through the UI.
180+
* A single **organization**, **repository**, or **member** can only be assigned to one cost center at a time.
181+
170182
## Further reading
171183

172184
* [AUTOTITLE](/rest/enterprise-admin/billing)

content/code-security/dependabot/working-with-dependabot/about-dependabot-on-github-actions-runners.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Using {% data variables.product.prodname_actions %} runners allows you to more e
2929
You can run {% data variables.product.prodname_dependabot %} on {% data variables.product.prodname_actions %} using:
3030
* {% data variables.product.prodname_dotcom %}-hosted runners
3131
* {% data variables.actions.hosted_runners_caps %}. These runners are {% data variables.product.prodname_dotcom %}-hosted, with advanced features, such as more RAM, CPU, and disk space. For more information, see [AUTOTITLE](/actions/using-github-hosted-runners/about-larger-runners).
32-
* Self-hosted runners
32+
* Self-hosted runners. For more information on assigning a `dependabot` label on self-hosted runners, see [AUTOTITLE](/code-security/dependabot/maintain-dependencies/managing-dependabot-on-self-hosted-runners).
3333

3434
{% data reusables.dependabot.vnet-arc-note %}
3535

content/migrations/overview/about-locked-repositories.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,6 @@ If you're sure you want to use the repository, a site administrator can unlock t
5353

5454
The source repository is not locked by default, only if the `--lock` argument is specified when preparing the repository for export with the `ghe-migrator add` command. To unlock the repository, use the `ghe-migrator unlock` command. For more information, see [AUTOTITLE](/migrations/using-ghe-migrator/migrating-data-to-github-enterprise-server#unlocking-repositories-on-the-source).
5555

56-
## Repositories locked by Enterprise Cloud Importer
57-
58-
When you use Enterprise Cloud Importer, the destination repository is locked by default and is not automatically unlocked.
59-
60-
If the import succeeded, you can unlock the repository by clicking the **Unlock** button in Enterprise Cloud Importer.
61-
62-
If the import failed, you cannot unlock the repository yourself. Because a failed migration means that not all of your data has been migrated, we recommend deleting the repository and retrying the migration, to prevent data loss.
63-
64-
If you’re sure you want to unlock the repository, contact {% data variables.contact.contact_support %}.
65-
6656
## Repositories locked by the `startImport` GraphQL mutation
6757

6858
When you use the `startImport` GraphQL mutation, the destination repository is locked by default and is not automatically unlocked.

content/migrations/overview/migration-paths-to-github.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ Some migration paths require tools that are only available with expert-led migra
1818

1919
In our recommendations, we'll assume that you want the highest level of fidelity if possible, which includes source, history, and metadata.
2020

21+
<!-- expires 2025-06-30 -->
22+
23+
> [!NOTE]
24+
> Enterprise Cloud Importer (ECI) and the GraphQL endpoints for importing migration data to {% data variables.product.prodname_ghe_cloud %} from an archive are closing down on March 31, 2025. After this date, these tools can not be used to import repository data into GitHub's cloud-based products. We recommend using {% data variables.product.prodname_importer_proper_name %} (GEI). See [AUTOTITLE](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer).
25+
26+
<!-- end expires 2025-06-30 -->
27+
2128
## Migrations to {% data variables.product.prodname_dotcom_the_website %}
2229

2330
You can review the scope and tooling for your migration to {% data variables.product.prodname_dotcom_the_website %}, which includes migrations to {% data variables.product.prodname_ghe_cloud %}. You can also review any additional information or caveats.
@@ -104,16 +111,16 @@ Migrations from {% data variables.product.prodname_dotcom_the_website %} include
104111
* [AUTOTITLE](/migrations/using-github-enterprise-importer)
105112
* [{% data variables.product.prodname_expert_services %}](https://github.com/services/) website
106113
* **Caveats:**
107-
* For complex repositories larger than around 5 GB, you may need to use `bbs-exporter` and Enterprise Cloud Importer instead. Enterprise Cloud Importer is only available for expert-led migrations.
114+
* {% data reusables.migrations.large-repositories-require-expert-services %}
108115
* {% data reusables.migrations.migration-instructions-for-any-git-repository-to-githubcom %}
109116

110117
### GitLab to {% data variables.product.prodname_dotcom_the_website %}
111118

112119
* **Scope:** Source, history, and metadata
113-
* **Tooling:** `gl-exporter`, then Enterprise Cloud Importer (expert-led migrations only)
120+
* **Tooling:** {% data variables.product.prodname_importer_proper_name %}
114121
* **More information:** [{% data variables.product.prodname_expert_services %}](https://github.com/services/) website
115122
* **Caveats:**
116-
* Enterprise Cloud Importer is only available for expert-led migrations.
123+
* If you want to migrate GitLab repositories to GitHub using {% data variables.product.prodname_importer_proper_name %}, please contact our {% data variables.product.prodname_expert_services %} team.
117124
* {% data reusables.migrations.migration-instructions-for-any-git-repository-to-githubcom %}
118125

119126
### Any Git repository to {% data variables.product.prodname_dotcom_the_website %}
@@ -164,7 +171,7 @@ This path is not currently supported with our official tools. Please contact {%
164171

165172
If you're migrating to {% data variables.enterprise.data_residency %}, your migration destination is {% data variables.enterprise.data_residency_site %}.
166173

167-
Migrations to {% data variables.enterprise.data_residency_site %} use similar tools as migrations to {% data variables.product.prodname_dotcom_the_website %}. However, the {% data variables.product.prodname_importer %} and Enterprise Cloud Importer are not available.
174+
Migrations to {% data variables.enterprise.data_residency_site %} use similar tools as migrations to {% data variables.product.prodname_dotcom_the_website %}. However, the {% data variables.product.prodname_importer %} is not available.
168175

169176
Follow a link below to review the scope and tooling for your migration to {% data variables.enterprise.data_residency_site %}, plus any additional information or caveats.
170177

content/pages/configuring-a-custom-domain-for-your-github-pages-site/verifying-your-custom-domain-for-github-pages.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ You may be verifying a domain you own, which is currently in use by another user
2828

2929
## Verifying a domain for your user site
3030

31+
> [!NOTE]
32+
> If you don’t see the options described below, make sure you’re in your **Profile settings**, not your repository settings. Domain verification happens at the profile level.
33+
3134
{% data reusables.user-settings.access_settings %}
3235
1. In the "Code, planning, and automation" section of the sidebar, click **{% octicon "browser" aria-hidden="true" %} Pages**.
3336
{% data reusables.pages.settings-verify-domain-setup %}
@@ -43,6 +46,9 @@ You may be verifying a domain you own, which is currently in use by another user
4346

4447
Organization owners can verify custom domains for their organization.
4548

49+
> [!NOTE]
50+
> If you don’t see the options described below, check that you’re in your **Organization settings**. Domain verification doesn’t take place in repository settings.
51+
4652
{% data reusables.profile.access_org %}
4753
{% data reusables.profile.org_settings %}
4854
1. In the "Code, planning, and automation" section of the sidebar, click **{% octicon "browser" aria-hidden="true" %} Pages**.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
For complex repositories larger than around 5 GB, you may need to use `ghe-migrator` and Enterprise Cloud Importer instead. Enterprise Cloud Importer is only available for expert-led migrations.
1+
For repositories with git or metadata archives greater than 20GB, consider engaging our {% data variables.product.prodname_expert_services %} to help bring your large repositories within Enterprise Cloud Importer limits.

data/reusables/support/scope-of-support.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
If your support request is outside of the scope of what our team can help you with, we may recommend next steps to resolve your issue outside of {% data variables.contact.github_support %}. Your support request is possibly out of {% data variables.contact.github_support %}'s scope if the request is primarily about:
22

3-
* Third party integrations, such as Jira
4-
* Enterprise Cloud Importer (available only with expert-led migrations){% ifversion ghes %}
3+
* Third party integrations, such as Jira{% ifversion ghes %}
54
* Hardware setup{% endif %}
65
* CI/CD, such as Jenkins
76
* Writing scripts

data/ui.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ search:
4343
view_all_search_results: View more results
4444
no_results_found: No results found
4545
search_docs_with_query: Search docs for "{{query}}"
46+
privacy_disclaimer: For product and service improvement purposes, the GitHub Docs team will retain questions and answers generated in the Docs search function. Please see the <a href="https://docs.github.com/privacy">GitHub Privacy Statement</a> to review how GitHub collects and uses your data.
4647
ai:
4748
disclaimer: Copilot uses AI. Check for mistakes by reviewing the links in the response.
4849
references: References from these articles

src/fixtures/fixtures/data/ui.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ search:
4343
view_all_search_results: View more results
4444
no_results_found: No results found
4545
search_docs_with_query: Search docs for "{{query}}"
46+
privacy_disclaimer: For product and service improvement purposes, the GitHub Docs team will retain questions and answers generated in the Docs search function. Please see the <a href="https://docs.github.com/privacy">GitHub Privacy Statement</a> to review how GitHub collects and uses your data.
4647
ai:
4748
disclaimer: Copilot uses AI. Check for mistakes by reviewing the links in the response.
4849
references: References from these articles

src/search/components/input/SearchOverlay.module.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@
7373
color: var(--fgColor-success, var(--fgColor-open, green)) !important;
7474
background-color: var(--overlay-bgColor);
7575
margin-right: 1em;
76+
height: 22px !important;
77+
font-weight: 700 !important;
78+
border-color: unset !important;
7679
}
7780

7881
.loadingContainer {

src/search/components/input/SearchOverlay.tsx

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
Overlay,
1010
Spinner,
1111
Stack,
12+
Text,
1213
TextInput,
1314
Token,
1415
} from '@primer/react'
@@ -691,28 +692,50 @@ export function SearchOverlay({
691692
}}
692693
/>
693694
<footer key="description" className={styles.footer}>
694-
<Token
695-
as="span"
696-
text="Beta"
697-
className={styles.betaToken}
695+
<Box
698696
sx={{
699-
backgroundColor: 'var(--overlay-bg-color)',
697+
display: 'flex',
698+
alignContent: 'start',
699+
alignItems: 'start',
700700
}}
701-
/>
702-
<Link
703-
onClick={async () => {
704-
if (await getIsStaff()) {
705-
// Hubbers users use an internal discussion for feedback
706-
window.open('https://github.com/github/docs-engineering/discussions/5295', '_blank')
707-
} else {
708-
// TODO: On ship date set this value
709-
// window.open('TODO', '_blank')
710-
}
711-
}}
712-
as="button"
713701
>
714-
{t('search.overlay.give_feedback')}
715-
</Link>
702+
<Token
703+
as="span"
704+
text="Beta"
705+
className={styles.betaToken}
706+
sx={{
707+
backgroundColor: 'var(--overlay-bg-color)',
708+
}}
709+
/>
710+
<Link
711+
onClick={async () => {
712+
if (await getIsStaff()) {
713+
// Hubbers users use an internal discussion for feedback
714+
window.open(
715+
'https://github.com/github/docs-engineering/discussions/5295',
716+
'_blank',
717+
)
718+
} else {
719+
// TODO: On ship date set this value
720+
// window.open('TODO', '_blank')
721+
}
722+
}}
723+
as="button"
724+
>
725+
{t('search.overlay.give_feedback')}
726+
</Link>
727+
</Box>
728+
<Text
729+
as="p"
730+
sx={{
731+
// eslint-disable-next-line primer-react/new-color-css-vars
732+
color: 'var(--color-fg-muted)',
733+
marginTop: 2,
734+
marginBottom: 0,
735+
fontSize: 'small',
736+
}}
737+
dangerouslySetInnerHTML={{ __html: t('search.overlay.privacy_disclaimer') }}
738+
/>
716739
</footer>
717740
</Overlay>
718741
</>

src/search/lib/ai-search-proxy.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,14 @@ export const aiSearchProxy = async (req: Request, res: Response) => {
8080

8181
// Handle the upstream response before piping
8282
stream.on('response', (upstreamResponse) => {
83-
if (upstreamResponse.statusCode !== 200) {
83+
// When cse-copilot returns a 204, it means the backend received the request
84+
// but was unable to answer the question. So we return a 400 to the client to be handled.
85+
if (upstreamResponse.statusCode === 204) {
86+
statsd.increment('ai-search.unable_to_answer_query', 1, diagnosticTags)
87+
return res
88+
.status(400)
89+
.json({ errors: [{ message: 'Sorry I am unable to answer this question.' }] })
90+
} else if (upstreamResponse.statusCode !== 200) {
8491
const errorMessage = `Upstream server responded with status code ${upstreamResponse.statusCode}`
8592
console.error(errorMessage)
8693
statsd.increment('ai-search.stream_response_error', 1, diagnosticTags)

0 commit comments

Comments
 (0)