AbdulElahGwaith commited on
Commit
88df9e4
·
verified ·
1 Parent(s): 46edd66

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .devcontainer/Dockerfile +5 -0
  2. .devcontainer/devcontainer.json +76 -0
  3. .dockerignore +10 -0
  4. .editorconfig +11 -0
  5. .env.example +28 -0
  6. .gitattributes +298 -35
  7. .github/CODEOWNERS +14 -0
  8. .github/CODE_OF_CONDUCT.md +80 -0
  9. .github/CONTRIBUTING.md +122 -0
  10. .github/ISSUE_TEMPLATE/config.yml +5 -0
  11. .github/ISSUE_TEMPLATE/improve-existing-docs.yaml +47 -0
  12. .github/ISSUE_TEMPLATE/improve-the-site.yml +45 -0
  13. .github/ISSUE_TEMPLATE/partner-contributed-documentation.yml +67 -0
  14. .github/PULL_REQUEST_TEMPLATE.md +22 -0
  15. .github/actions/cache-nextjs/action.yml +18 -0
  16. .github/actions/clone-translations/action.yml +67 -0
  17. .github/actions/get-changed-files/action.yml +40 -0
  18. .github/actions/get-changed-files/get-changed-files.sh +204 -0
  19. .github/actions/get-docs-early-access/action.yml +33 -0
  20. .github/actions/install-cocofix/action.yml +21 -0
  21. .github/actions/labeler/action.yml +33 -0
  22. .github/actions/labeler/labeler.ts +163 -0
  23. .github/actions/node-npm-setup/action.yml +28 -0
  24. .github/actions/precompute-pageinfo/action.yml +44 -0
  25. .github/actions/retry-command/action.yml +49 -0
  26. .github/actions/setup-elasticsearch/action.yml +89 -0
  27. .github/actions/slack-alert/action.yml +29 -0
  28. .github/actions/warmup-remotejson-cache/action.yml +41 -0
  29. .github/config.yml +11 -0
  30. .github/dependabot.yml +47 -0
  31. .github/instructions/all.instructions.md +31 -0
  32. .github/instructions/code.instructions.md +64 -0
  33. .github/instructions/content.instructions.md +86 -0
  34. .gitignore +109 -0
  35. .npmrc +4 -0
  36. .nvmrc +0 -0
  37. .prettierignore +1 -0
  38. .vscode/extensions.json +13 -0
  39. .vscode/launch.json +13 -0
  40. .vscode/open-reusable-1.3.0.vsix +3 -0
  41. CHANGELOG.md +555 -0
  42. CONTRIBUTING_AR.md +28 -0
  43. Dockerfile +155 -0
  44. Dockerfile.openapi_decorator +18 -0
  45. LICENSE +386 -0
  46. LICENSE-CODE +21 -0
  47. README.md +39 -0
  48. assets/ghes-collectd-metrics.csv +0 -0
  49. assets/images/README.md +5 -0
  50. assets/images/_fixtures/electrocat.png +0 -0
.devcontainer/Dockerfile ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # To find available Node images, see https://mcr.microsoft.com/en-us/product/devcontainers/javascript-node/tags
2
+
3
+ # [Choice] Node.js version
4
+ ARG VARIANT="dev-24-bullseye"
5
+ FROM mcr.microsoft.com/devcontainers/javascript-node:${VARIANT}
.devcontainer/devcontainer.json ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
2
+ // https://github.com/microsoft/vscode-dev-containers/tree/v0.177.0/containers/javascript-node
3
+ // -
4
+ {
5
+ "name": "docs.github.com",
6
+ "build": {
7
+ "dockerfile": "Dockerfile",
8
+ // Update 'VARIANT' to pick a Node version
9
+ "args": { "VARIANT": "24" }
10
+ },
11
+
12
+ // Install features. Type 'feature' in the VS Code command palette for a full list.
13
+ "features": {
14
+ "sshd": "latest",
15
+ "ghcr.io/devcontainers/features/github-cli:1": {}
16
+ },
17
+
18
+ "customizations": {
19
+ "vscode": {
20
+ // Set *default* container specific settings.json values on container create.
21
+ "settings": {
22
+ "terminal.integrated.shell.linux": "/bin/bash",
23
+ "cSpell.language": ",en",
24
+ "git.autofetch": true
25
+ },
26
+ // Visual Studio Code extensions which help authoring for docs.github.com.
27
+ "extensions": [
28
+ "dbaeumer.vscode-eslint",
29
+ "sissel.shopify-liquid",
30
+ "davidanson.vscode-markdownlint",
31
+ "bierner.markdown-preview-github-styles",
32
+ "streetsidesoftware.code-spell-checker",
33
+ "alistairchristie.open-reusables",
34
+ "AlistairChristie.version-identifier",
35
+ "peterbe.ghdocs-goer",
36
+ "GitHub.copilot",
37
+ "GitHub.copilot-chat"
38
+ ]
39
+ },
40
+ "codespaces": {
41
+ "repositories": {
42
+ // allow Codespaces to pull from separate repo when user has access
43
+ "github/docs-early-access": {
44
+ "permissions": {
45
+ "contents": "write"
46
+ }
47
+ }
48
+ }
49
+ }
50
+ },
51
+
52
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
53
+ "forwardPorts": [4000],
54
+
55
+ "portsAttributes": {
56
+ "4000": {
57
+ "label": "Review"
58
+ }
59
+ },
60
+
61
+ // Lifecycle commands
62
+ // Install dependencies then install Copilot CLI
63
+ "onCreateCommand": "npm ci && npm install -g @github/copilot@prerelease",
64
+ // Start a web server and keep it running
65
+ "postStartCommand": "nohup bash -c 'npm start &'",
66
+ // Set port 4000 to be public
67
+ "postAttachCommand": "gh cs ports visibility 4000:public -c \"$CODESPACE_NAME\"",
68
+
69
+ // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
70
+ "remoteUser": "node",
71
+
72
+ "hostRequirements": {
73
+ "memory": "16gb",
74
+ "cpus": "4"
75
+ }
76
+ }
.dockerignore ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ .devcontainer/
2
+ .git/
3
+ .github/
4
+ .vscode/
5
+ contributing/
6
+ docs/
7
+ docs-early-access/
8
+ node_modules/
9
+ README.md
10
+ tests/
.editorconfig ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 2
6
+ charset = utf-8
7
+ trim_trailing_whitespace = true
8
+ insert_final_newline = true
9
+
10
+ [*.md]
11
+ trim_trailing_whitespace = false
.env.example ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is a template for what your untracked .env file might look like for local development.
2
+ # Please copy this to a new .env file and fill in the values as needed.
3
+
4
+ # Requires a running local Elasticsearch service. Can be started via Docker, see https://github.com/github/docs-engineering/blob/main/docs/elasticsearch/elasticsearch-locally.md
5
+ # When this value is unset searches will be proxied to the production Elasticsearch endpoint
6
+ ELASTICSEARCH_URL=http://localhost:9200
7
+
8
+ # Set for sending events in local development. See https://github.com/github/docs-engineering/blob/main/docs/analytics/hydro-mock.md
9
+ HYDRO_ENDPOINT=
10
+ HYDRO_SECRET=
11
+
12
+ # Localization variables
13
+ # See https://github.com/github/docs-internal/tree/main/src/languages#working-with-translated-content-locally
14
+ ENABLED_LANGUAGES=
15
+ TRANSLATIONS_ROOT=
16
+
17
+ # For running the src/search/scripts/scrape script
18
+ # You may want a lower value depending on your CPU
19
+ BUILD_RECORDS_MAX_CONCURRENT=100
20
+ BUILD_RECORDS_MIN_TIME=
21
+
22
+ # Set to true to enable the /fastly-cache-test route for debugging Fastly headers
23
+ ENABLE_FASTLY_TESTING=
24
+
25
+ # Needed to auth for AI search
26
+ CSE_COPILOT_SECRET=
27
+ CSE_COPILOT_ENDPOINT=https://cse-copilot-staging.service.iad.github.net
28
+
.gitattributes CHANGED
@@ -1,35 +1,298 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Set default behavior, in case users don't have core.autocrlf set.
2
+ * text=auto
3
+ # Explicitly declare text files we want to always be normalized and converted
4
+ # to native line endings on checkout.
5
+ *.md text diff=markdown
6
+ *.json.br filter=lfs diff=lfs merge=lfs -text
7
+ .vscode/open-reusable-1.3.0.vsix filter=lfs diff=lfs merge=lfs -text
8
+ assets/images/_fixtures/screenshot.png filter=lfs diff=lfs merge=lfs -text
9
+ assets/images/azure/azure-federated-credential.png filter=lfs diff=lfs merge=lfs -text
10
+ assets/images/banner-images/hero-1.png filter=lfs diff=lfs merge=lfs -text
11
+ assets/images/banner-images/hero-2.png filter=lfs diff=lfs merge=lfs -text
12
+ assets/images/banner-images/hero-3.png filter=lfs diff=lfs merge=lfs -text
13
+ assets/images/banner-images/hero-4.png filter=lfs diff=lfs merge=lfs -text
14
+ assets/images/banner-images/hero-5.png filter=lfs diff=lfs merge=lfs -text
15
+ assets/images/banner-images/hero-6.png filter=lfs diff=lfs merge=lfs -text
16
+ assets/images/banner-images/hero-home.png filter=lfs diff=lfs merge=lfs -text
17
+ assets/images/contributing/illustration-of-article-contents.png filter=lfs diff=lfs merge=lfs -text
18
+ assets/images/contributing/screenshot-no-require-signoff.png filter=lfs diff=lfs merge=lfs -text
19
+ assets/images/contributing/screenshot-yes-clone-gist.png filter=lfs diff=lfs merge=lfs -text
20
+ assets/images/contributing/screenshot-yes-social-preview.png filter=lfs diff=lfs merge=lfs -text
21
+ assets/images/contributing/search-results.png filter=lfs diff=lfs merge=lfs -text
22
+ assets/images/contributing/tool-switchers.png filter=lfs diff=lfs merge=lfs -text
23
+ assets/images/enterprise/3.4/repository/code-security-and-analysis-enable-ghas-3.4.png filter=lfs diff=lfs merge=lfs -text
24
+ assets/images/enterprise/enterprise-server/installing-github-enterprise-server-on-aws.png filter=lfs diff=lfs merge=lfs -text
25
+ assets/images/enterprise/repository/git-blame.png filter=lfs diff=lfs merge=lfs -text
26
+ assets/images/enterprise/security/enterprise-security-and-analysis-disable-or-enable-all-with-user-namespace.png filter=lfs diff=lfs merge=lfs -text
27
+ assets/images/enterprise/security/enterprise-security-and-analysis-disable-or-enable-all.png filter=lfs diff=lfs merge=lfs -text
28
+ assets/images/enterprise/site-admin-settings/repo/repo-security-top-tab.png filter=lfs diff=lfs merge=lfs -text
29
+ assets/images/github-apps/authorize-app.png filter=lfs diff=lfs merge=lfs -text
30
+ assets/images/github-apps/install-app.png filter=lfs diff=lfs merge=lfs -text
31
+ assets/images/help/2fa/ghes-filter-org-members-by-2fa.png filter=lfs diff=lfs merge=lfs -text
32
+ assets/images/help/actions/actions-vnet-injected-larger-runners-architecture.png filter=lfs diff=lfs merge=lfs -text
33
+ assets/images/help/actions/arc-diagram.png filter=lfs diff=lfs merge=lfs -text
34
+ assets/images/help/actions/environments.png filter=lfs diff=lfs merge=lfs -text
35
+ assets/images/help/actions/hosted-runner.png filter=lfs diff=lfs merge=lfs -text
36
+ assets/images/help/actions/overview-actions-using-cli-ci-example.png filter=lfs diff=lfs merge=lfs -text
37
+ assets/images/help/actions/overview-actions-using-concurrency-expressions-and-a-test-matrix.png filter=lfs diff=lfs merge=lfs -text
38
+ assets/images/help/actions/overview-actions-using-scripts-ci-example.png filter=lfs diff=lfs merge=lfs -text
39
+ assets/images/help/actions/starter-workflow-go.png filter=lfs diff=lfs merge=lfs -text
40
+ assets/images/help/billing/cost-center-example-2.png filter=lfs diff=lfs merge=lfs -text
41
+ assets/images/help/billing/premium-request-analytics-chart.png filter=lfs diff=lfs merge=lfs -text
42
+ assets/images/help/billing/product-usage-chart.png filter=lfs diff=lfs merge=lfs -text
43
+ assets/images/help/classroom/ide-makecode-arcade-version-control-button.png filter=lfs diff=lfs merge=lfs -text
44
+ assets/images/help/classroom/use-drop-down-then-click-archive.png filter=lfs diff=lfs merge=lfs -text
45
+ assets/images/help/code-quality/ai-suggestions-repo-fixes.png filter=lfs diff=lfs merge=lfs -text
46
+ assets/images/help/code-quality/all-findings-overview-repo.png filter=lfs diff=lfs merge=lfs -text
47
+ assets/images/help/code-scanning/alert+autofix.png filter=lfs diff=lfs merge=lfs -text
48
+ assets/images/help/code-scanning/autofix-example.png filter=lfs diff=lfs merge=lfs -text
49
+ assets/images/help/codespaces/browser-console-log-save.png filter=lfs diff=lfs merge=lfs -text
50
+ assets/images/help/codespaces/codespace-annotated-vscode.png filter=lfs diff=lfs merge=lfs -text
51
+ assets/images/help/codespaces/codespace-overview-annotated.png filter=lfs diff=lfs merge=lfs -text
52
+ assets/images/help/codespaces/codespaces-accept-permissions.png filter=lfs diff=lfs merge=lfs -text
53
+ assets/images/help/codespaces/codespaces-audit-log-org.png filter=lfs diff=lfs merge=lfs -text
54
+ assets/images/help/codespaces/codespaces-audit-log.png filter=lfs diff=lfs merge=lfs -text
55
+ assets/images/help/codespaces/codespaces-command-palette.png filter=lfs diff=lfs merge=lfs -text
56
+ assets/images/help/codespaces/configure-dev-container.png filter=lfs diff=lfs merge=lfs -text
57
+ assets/images/help/codespaces/feature-installation-code.png filter=lfs diff=lfs merge=lfs -text
58
+ assets/images/help/codespaces/find-codespace-id.png filter=lfs diff=lfs merge=lfs -text
59
+ assets/images/help/codespaces/jetbrains-checkout-submenu.png filter=lfs diff=lfs merge=lfs -text
60
+ assets/images/help/codespaces/jetbrains-commit-and-push.png filter=lfs diff=lfs merge=lfs -text
61
+ assets/images/help/codespaces/jetbrains-gateway-codespaces.png filter=lfs diff=lfs merge=lfs -text
62
+ assets/images/help/codespaces/jetbrains-gateway-ides.png filter=lfs diff=lfs merge=lfs -text
63
+ assets/images/help/codespaces/jetbrains-gui-with-callouts.png filter=lfs diff=lfs merge=lfs -text
64
+ assets/images/help/codespaces/jetbrains-heap-setting.png filter=lfs diff=lfs merge=lfs -text
65
+ assets/images/help/codespaces/jetbrains-performance.png filter=lfs diff=lfs merge=lfs -text
66
+ assets/images/help/codespaces/jetbrains-preferences-plugins.png filter=lfs diff=lfs merge=lfs -text
67
+ assets/images/help/codespaces/jetbrains-privacy-and-security.png filter=lfs diff=lfs merge=lfs -text
68
+ assets/images/help/codespaces/jetbrains-toolbox.png filter=lfs diff=lfs merge=lfs -text
69
+ assets/images/help/codespaces/jupyter-notebook-step3.png filter=lfs diff=lfs merge=lfs -text
70
+ assets/images/help/codespaces/keep-codespace.png filter=lfs diff=lfs merge=lfs -text
71
+ assets/images/help/codespaces/new-shell-session.png filter=lfs diff=lfs merge=lfs -text
72
+ assets/images/help/codespaces/open-codespace-remote-explorer.png filter=lfs diff=lfs merge=lfs -text
73
+ assets/images/help/codespaces/prebuilds-log-output.png filter=lfs diff=lfs merge=lfs -text
74
+ assets/images/help/codespaces/react-template.png filter=lfs diff=lfs merge=lfs -text
75
+ assets/images/help/codespaces/recommended-secrets.png filter=lfs diff=lfs merge=lfs -text
76
+ assets/images/help/codespaces/review-suggestion.png filter=lfs diff=lfs merge=lfs -text
77
+ assets/images/help/copilot/ask-to-explain.png filter=lfs diff=lfs merge=lfs -text
78
+ assets/images/help/copilot/azure-data-studio-extensions-icon.png filter=lfs diff=lfs merge=lfs -text
79
+ assets/images/help/copilot/code-references-webpage.png filter=lfs diff=lfs merge=lfs -text
80
+ assets/images/help/copilot/code-review/review-comment@2x.png filter=lfs diff=lfs merge=lfs -text
81
+ assets/images/help/copilot/code-review/xcode-review-popup.png filter=lfs diff=lfs merge=lfs -text
82
+ assets/images/help/copilot/coding-agent/mobile-status-dropdown.png filter=lfs diff=lfs merge=lfs -text
83
+ assets/images/help/copilot/configure-code-completions-option-vscode.png filter=lfs diff=lfs merge=lfs -text
84
+ assets/images/help/copilot/copilot-audit-log.png filter=lfs diff=lfs merge=lfs -text
85
+ assets/images/help/copilot/copilot-downgrade-to-business.png filter=lfs diff=lfs merge=lfs -text
86
+ assets/images/help/copilot/copilot-sample-chat-response.png filter=lfs diff=lfs merge=lfs -text
87
+ assets/images/help/copilot/eclipse-advanced-code-completion-menu.png filter=lfs diff=lfs merge=lfs -text
88
+ assets/images/help/copilot/insert-at-cursor-vscode.png filter=lfs diff=lfs merge=lfs -text
89
+ assets/images/help/copilot/install-copilot-extension-visual-studio.png filter=lfs diff=lfs merge=lfs -text
90
+ assets/images/help/copilot/jetbrains-debug-log.png filter=lfs diff=lfs merge=lfs -text
91
+ assets/images/help/copilot/jetbrains-share-feedback.png filter=lfs diff=lfs merge=lfs -text
92
+ assets/images/help/copilot/jetbrains-tools-menu.png filter=lfs diff=lfs merge=lfs -text
93
+ assets/images/help/copilot/migration-no-css-website.png filter=lfs diff=lfs merge=lfs -text
94
+ assets/images/help/copilot/migration-original-website.png filter=lfs diff=lfs merge=lfs -text
95
+ assets/images/help/copilot/paths-to-ignore.png filter=lfs diff=lfs merge=lfs -text
96
+ assets/images/help/copilot/sdlc-guide/model-compare.png filter=lfs diff=lfs merge=lfs -text
97
+ assets/images/help/copilot/track-spending-prs.png filter=lfs diff=lfs merge=lfs -text
98
+ assets/images/help/copilot/track-spending.png filter=lfs diff=lfs merge=lfs -text
99
+ assets/images/help/copilot/vs-custom-instructions-option.png filter=lfs diff=lfs merge=lfs -text
100
+ assets/images/help/copilot/vsc-keyboard-shortcuts-mac.png filter=lfs diff=lfs merge=lfs -text
101
+ assets/images/help/copilot/xcode-advanced-code-completion-menu.png filter=lfs diff=lfs merge=lfs -text
102
+ assets/images/help/dependabot/audit-log-ui-dependabot-alert.png filter=lfs diff=lfs merge=lfs -text
103
+ assets/images/help/dependabot/dependabot-self-hosted-runner-log.png filter=lfs diff=lfs merge=lfs -text
104
+ assets/images/help/dependabot/dependabot-vnet-active-jobs.png filter=lfs diff=lfs merge=lfs -text
105
+ assets/images/help/dependabot/dependabot-vnet-logs.png filter=lfs diff=lfs merge=lfs -text
106
+ assets/images/help/dependabot/learners-enable-dependabot.png filter=lfs diff=lfs merge=lfs -text
107
+ assets/images/help/desktop/add-local-repository-mac.png filter=lfs diff=lfs merge=lfs -text
108
+ assets/images/help/desktop/amend-commit-context-menu.png filter=lfs diff=lfs merge=lfs -text
109
+ assets/images/help/desktop/available-actions.png filter=lfs diff=lfs merge=lfs -text
110
+ assets/images/help/desktop/branch-history-commit.png filter=lfs diff=lfs merge=lfs -text
111
+ assets/images/help/desktop/branch-history-file.png filter=lfs diff=lfs merge=lfs -text
112
+ assets/images/help/desktop/branch-item.png filter=lfs diff=lfs merge=lfs -text
113
+ assets/images/help/desktop/checkout-commit.png filter=lfs diff=lfs merge=lfs -text
114
+ assets/images/help/desktop/cherry-picking.png filter=lfs diff=lfs merge=lfs -text
115
+ assets/images/help/desktop/click-two-commits.png filter=lfs diff=lfs merge=lfs -text
116
+ assets/images/help/desktop/clone-file-menu-mac.png filter=lfs diff=lfs merge=lfs -text
117
+ assets/images/help/desktop/commit-revert-mac.png filter=lfs diff=lfs merge=lfs -text
118
+ assets/images/help/desktop/create-branch-from-commit-context-menu.png filter=lfs diff=lfs merge=lfs -text
119
+ assets/images/help/desktop/create-issue-mac.png filter=lfs diff=lfs merge=lfs -text
120
+ assets/images/help/desktop/delete-branch-mac.png filter=lfs diff=lfs merge=lfs -text
121
+ assets/images/help/desktop/delete-tag-multiple.png filter=lfs diff=lfs merge=lfs -text
122
+ assets/images/help/desktop/desktop-menu-about-desktop-mac.png filter=lfs diff=lfs merge=lfs -text
123
+ assets/images/help/desktop/discard-changes-mac.png filter=lfs diff=lfs merge=lfs -text
124
+ assets/images/help/desktop/history-tab-in-commit-sidebar.png filter=lfs diff=lfs merge=lfs -text
125
+ assets/images/help/desktop/lets-get-started.png filter=lfs diff=lfs merge=lfs -text
126
+ assets/images/help/desktop/mac-adjust-permissions.png filter=lfs diff=lfs merge=lfs -text
127
+ assets/images/help/desktop/mac-choose-preferences.png filter=lfs diff=lfs merge=lfs -text
128
+ assets/images/help/desktop/mac-choose-settings.png filter=lfs diff=lfs merge=lfs -text
129
+ assets/images/help/desktop/mac-file-menu.png filter=lfs diff=lfs merge=lfs -text
130
+ assets/images/help/desktop/mac-fork-behavior-menu-contribute.png filter=lfs diff=lfs merge=lfs -text
131
+ assets/images/help/desktop/mac-install-command-line-tool.png filter=lfs diff=lfs merge=lfs -text
132
+ assets/images/help/desktop/mac-rebase-current-branch.png filter=lfs diff=lfs merge=lfs -text
133
+ assets/images/help/desktop/mac-show-logs.png filter=lfs diff=lfs merge=lfs -text
134
+ assets/images/help/desktop/merge-branch-button-list.png filter=lfs diff=lfs merge=lfs -text
135
+ assets/images/help/desktop/open-in-editor.png filter=lfs diff=lfs merge=lfs -text
136
+ assets/images/help/desktop/open-pr-in-desktop-button.png filter=lfs diff=lfs merge=lfs -text
137
+ assets/images/help/desktop/repository-settings-mac.png filter=lfs diff=lfs merge=lfs -text
138
+ assets/images/help/desktop/select-create-tag.png filter=lfs diff=lfs merge=lfs -text
139
+ assets/images/help/desktop/select-delete-tag.png filter=lfs diff=lfs merge=lfs -text
140
+ assets/images/help/desktop/squash-and-merge-menu.png filter=lfs diff=lfs merge=lfs -text
141
+ assets/images/help/desktop/squash-drag-and-drop.png filter=lfs diff=lfs merge=lfs -text
142
+ assets/images/help/desktop/use-local-git-config.png filter=lfs diff=lfs merge=lfs -text
143
+ assets/images/help/desktop/view-pr-on-github.png filter=lfs diff=lfs merge=lfs -text
144
+ assets/images/help/desktop/windows-preview-pull-request.png filter=lfs diff=lfs merge=lfs -text
145
+ assets/images/help/discussions/discussions-dashboard.png filter=lfs diff=lfs merge=lfs -text
146
+ assets/images/help/discussions/github-discussions-example.png filter=lfs diff=lfs merge=lfs -text
147
+ assets/images/help/discussions/hero.png filter=lfs diff=lfs merge=lfs -text
148
+ assets/images/help/discussions/most-helpful.png filter=lfs diff=lfs merge=lfs -text
149
+ assets/images/help/discussions/overview-pinned-discussions.png filter=lfs diff=lfs merge=lfs -text
150
+ assets/images/help/enterprises/continue-verifying-domain-enterprise.png filter=lfs diff=lfs merge=lfs -text
151
+ assets/images/help/enterprises/edit-agent-profile-ruleset.png filter=lfs diff=lfs merge=lfs -text
152
+ assets/images/help/enterprises/remove-organization.png filter=lfs diff=lfs merge=lfs -text
153
+ assets/images/help/enterprises/select-advanced-security-individual-organization-policy-ghes-316.png filter=lfs diff=lfs merge=lfs -text
154
+ assets/images/help/enterprises/select-advanced-security-individual-organization-policy.png filter=lfs diff=lfs merge=lfs -text
155
+ assets/images/help/gist/gist-clone-btn.png filter=lfs diff=lfs merge=lfs -text
156
+ assets/images/help/gist/gist-history.png filter=lfs diff=lfs merge=lfs -text
157
+ assets/images/help/gist/gist-visibility-drop-down.png filter=lfs diff=lfs merge=lfs -text
158
+ assets/images/help/github-enterprise-importer/migration-log-issue.png filter=lfs diff=lfs merge=lfs -text
159
+ assets/images/help/graphs/activity-view-icon.png filter=lfs diff=lfs merge=lfs -text
160
+ assets/images/help/issues/issue-assignees.png filter=lfs diff=lfs merge=lfs -text
161
+ assets/images/help/issues/issue-example.png filter=lfs diff=lfs merge=lfs -text
162
+ assets/images/help/issues/issue-milestone.png filter=lfs diff=lfs merge=lfs -text
163
+ assets/images/help/issues/issue-project.png filter=lfs diff=lfs merge=lfs -text
164
+ assets/images/help/issues/issue-type.png filter=lfs diff=lfs merge=lfs -text
165
+ assets/images/help/issues/issue-with-label.png filter=lfs diff=lfs merge=lfs -text
166
+ assets/images/help/issues/quickstart-add-task-list-to-issue.png filter=lfs diff=lfs merge=lfs -text
167
+ assets/images/help/issues/quickstart-collaborating-on-issue.png filter=lfs diff=lfs merge=lfs -text
168
+ assets/images/help/issues/quickstart-create-large-initiative-issue.png filter=lfs diff=lfs merge=lfs -text
169
+ assets/images/help/issues/quickstart-creating-issue-template.png filter=lfs diff=lfs merge=lfs -text
170
+ assets/images/help/issues/quickstart-creating-readme.png filter=lfs diff=lfs merge=lfs -text
171
+ assets/images/help/issues/quickstart-project-board.png filter=lfs diff=lfs merge=lfs -text
172
+ assets/images/help/models/github-models-datasets.png filter=lfs diff=lfs merge=lfs -text
173
+ assets/images/help/package-registry/packages-from-repo.png filter=lfs diff=lfs merge=lfs -text
174
+ assets/images/help/pages/verify-dns.png filter=lfs diff=lfs merge=lfs -text
175
+ assets/images/help/profile/achievements-detail-view.png filter=lfs diff=lfs merge=lfs -text
176
+ assets/images/help/profile/achievements-on-profile.png filter=lfs diff=lfs merge=lfs -text
177
+ assets/images/help/profile/org-profile.png filter=lfs diff=lfs merge=lfs -text
178
+ assets/images/help/profile/profile-block-or-report-button.png filter=lfs diff=lfs merge=lfs -text
179
+ assets/images/help/profile/profile-unblock-or-report-user.png filter=lfs diff=lfs merge=lfs -text
180
+ assets/images/help/projects/priority-example.png filter=lfs diff=lfs merge=lfs -text
181
+ assets/images/help/projects/team-discussions-example.png filter=lfs diff=lfs merge=lfs -text
182
+ assets/images/help/projects-v2/example-board.png filter=lfs diff=lfs merge=lfs -text
183
+ assets/images/help/projects-v2/example-roadmap.png filter=lfs diff=lfs merge=lfs -text
184
+ assets/images/help/projects-v2/example-table.png filter=lfs diff=lfs merge=lfs -text
185
+ assets/images/help/projects-v2/project-settings-navigation.png filter=lfs diff=lfs merge=lfs -text
186
+ assets/images/help/projects-v2/projects-select-template-title.png filter=lfs diff=lfs merge=lfs -text
187
+ assets/images/help/projects-v2/tasklist-diagram.png filter=lfs diff=lfs merge=lfs -text
188
+ assets/images/help/projects-v2/tasklist-hero.png filter=lfs diff=lfs merge=lfs -text
189
+ assets/images/help/pull_requests/checks-summary-for-various-commits.png filter=lfs diff=lfs merge=lfs -text
190
+ assets/images/help/pull_requests/dependency-review-vulnerability.png filter=lfs diff=lfs merge=lfs -text
191
+ assets/images/help/pull_requests/diff-settings-menu.png filter=lfs diff=lfs merge=lfs -text
192
+ assets/images/help/pull_requests/enable-auto-merge-drop-down.png filter=lfs diff=lfs merge=lfs -text
193
+ assets/images/help/pull_requests/mark-as-resolved-button.png filter=lfs diff=lfs merge=lfs -text
194
+ assets/images/help/pull_requests/merge-conflict-commit-changes.png filter=lfs diff=lfs merge=lfs -text
195
+ assets/images/help/pull_requests/merge-pull-request-options.png filter=lfs diff=lfs merge=lfs -text
196
+ assets/images/help/pull_requests/merge_box/pr-reviews-in-merge-box.png filter=lfs diff=lfs merge=lfs -text
197
+ assets/images/help/pull_requests/merge_box/pull-request-open-menu.png filter=lfs diff=lfs merge=lfs -text
198
+ assets/images/help/repository/actions-disable-workflow-2022.png filter=lfs diff=lfs merge=lfs -text
199
+ assets/images/help/repository/add-required-workflow-dialog.png filter=lfs diff=lfs merge=lfs -text
200
+ assets/images/help/repository/citation-link.png filter=lfs diff=lfs merge=lfs -text
201
+ assets/images/help/repository/code-scanning-alert-details.png filter=lfs diff=lfs merge=lfs -text
202
+ assets/images/help/repository/code-scanning-alert-dropdown-reason.png filter=lfs diff=lfs merge=lfs -text
203
+ assets/images/help/repository/code-scanning-alert-without-development.png filter=lfs diff=lfs merge=lfs -text
204
+ assets/images/help/repository/code-scanning-alert.png filter=lfs diff=lfs merge=lfs -text
205
+ assets/images/help/repository/code-scanning-analysis-origins.png filter=lfs diff=lfs merge=lfs -text
206
+ assets/images/help/repository/code-scanning-branch-filter.png filter=lfs diff=lfs merge=lfs -text
207
+ assets/images/help/repository/code-scanning-pr-alert.png filter=lfs diff=lfs merge=lfs -text
208
+ assets/images/help/repository/code-scanning-pr-conversation-tab.png filter=lfs diff=lfs merge=lfs -text
209
+ assets/images/help/repository/code-scanning-tool-status-page-detailed.png filter=lfs diff=lfs merge=lfs -text
210
+ assets/images/help/repository/file-tree.png filter=lfs diff=lfs merge=lfs -text
211
+ assets/images/help/repository/images-2up-view.png filter=lfs diff=lfs merge=lfs -text
212
+ assets/images/help/repository/images-swipe-view.png filter=lfs diff=lfs merge=lfs -text
213
+ assets/images/help/repository/legacy-dependabot-alerts-view.png filter=lfs diff=lfs merge=lfs -text
214
+ assets/images/help/repository/manage-access-overview.png filter=lfs diff=lfs merge=lfs -text
215
+ assets/images/help/repository/os-repo-with-topics.png filter=lfs diff=lfs merge=lfs -text
216
+ assets/images/help/repository/profile-with-readme.png filter=lfs diff=lfs merge=lfs -text
217
+ assets/images/help/repository/remotes-url.png filter=lfs diff=lfs merge=lfs -text
218
+ assets/images/help/repository/repo-license-indicator.png filter=lfs diff=lfs merge=lfs -text
219
+ assets/images/help/repository/repos-create-properties.png filter=lfs diff=lfs merge=lfs -text
220
+ assets/images/help/repository/review-calls-to-vulnerable-functions.png filter=lfs diff=lfs merge=lfs -text
221
+ assets/images/help/repository/rule-insights.png filter=lfs diff=lfs merge=lfs -text
222
+ assets/images/help/repository/secret-scanning-dismiss-alert-web-ui-link-partner-documentation.png filter=lfs diff=lfs merge=lfs -text
223
+ assets/images/help/repository/social-preview.png filter=lfs diff=lfs merge=lfs -text
224
+ assets/images/help/repository/view-rule-runs.png filter=lfs diff=lfs merge=lfs -text
225
+ assets/images/help/saml/entra-id-saml-scim-mapping-error.png filter=lfs diff=lfs merge=lfs -text
226
+ assets/images/help/saml/okta-saml-scim-mapping-error.png filter=lfs diff=lfs merge=lfs -text
227
+ assets/images/help/search/topic-left-side-navigation-dotcom.png filter=lfs diff=lfs merge=lfs -text
228
+ assets/images/help/security/builder-sec-campaign.png filter=lfs diff=lfs merge=lfs -text
229
+ assets/images/help/security/codeql-for-vs-code-extension-settings.png filter=lfs diff=lfs merge=lfs -text
230
+ assets/images/help/security/codeql-for-vs-code-extensions-view.png filter=lfs diff=lfs merge=lfs -text
231
+ assets/images/help/security/codeql-for-vs-code-test-output.png filter=lfs diff=lfs merge=lfs -text
232
+ assets/images/help/security/driver-sec-campaign-view.png filter=lfs diff=lfs merge=lfs -text
233
+ assets/images/help/security/private-vulnerability-reporting-enable-or-disable-org-new-repos.png filter=lfs diff=lfs merge=lfs -text
234
+ assets/images/help/security/private-vulnerability-reporting-enable-or-disable-org.png filter=lfs diff=lfs merge=lfs -text
235
+ assets/images/help/security/security-campaigns-tracking-overview-2tabs.png filter=lfs diff=lfs merge=lfs -text
236
+ assets/images/help/security/security-campaigns-tracking-overview-code-only.png filter=lfs diff=lfs merge=lfs -text
237
+ assets/images/help/security/security-campaigns-tracking-overview.png filter=lfs diff=lfs merge=lfs -text
238
+ assets/images/help/security-overview/security-coverage-view-highlights.png filter=lfs diff=lfs merge=lfs -text
239
+ assets/images/help/security-overview/security-coverage-view-multi-repo-side-panel.png filter=lfs diff=lfs merge=lfs -text
240
+ assets/images/help/security-overview/security-coverage-view-multi-repo.png filter=lfs diff=lfs merge=lfs -text
241
+ assets/images/help/security-overview/security-coverage-view-summary-pre-config.png filter=lfs diff=lfs merge=lfs -text
242
+ assets/images/help/security-overview/security-coverage-view-summary.png filter=lfs diff=lfs merge=lfs -text
243
+ assets/images/help/security-overview/security-overview-dashboard-filters-3-tab.png filter=lfs diff=lfs merge=lfs -text
244
+ assets/images/help/security-overview/security-overview-dashboard-filters.png filter=lfs diff=lfs merge=lfs -text
245
+ assets/images/help/security-overview/security-overview-enablement-trends.png filter=lfs diff=lfs merge=lfs -text
246
+ assets/images/help/security-overview/security-overview-secret-scanning-metrics-additional-tools.png filter=lfs diff=lfs merge=lfs -text
247
+ assets/images/help/security-overview/security-overview-secret-scanning-metrics.png filter=lfs diff=lfs merge=lfs -text
248
+ assets/images/help/security-overview/security-risk-view-highlights-enterprise.png filter=lfs diff=lfs merge=lfs -text
249
+ assets/images/help/settings/cookie-settings-accept-or-reject.png filter=lfs diff=lfs merge=lfs -text
250
+ assets/images/help/settings/email-primary.png filter=lfs diff=lfs merge=lfs -text
251
+ assets/images/help/site-policy/github-privacy-statement(07.22.20)(fr).pdf filter=lfs diff=lfs merge=lfs -text
252
+ assets/images/help/site-policy/github-statement-against-modern-slavery-and-child-labor.pdf filter=lfs diff=lfs merge=lfs -text
253
+ assets/images/help/stars/lists-overview-on-stars-page.png filter=lfs diff=lfs merge=lfs -text
254
+ assets/images/help/wiki/wiki-edit-mode-dropdown.png filter=lfs diff=lfs merge=lfs -text
255
+ assets/images/help/writing/fenced-geojson-rendered-map.png filter=lfs diff=lfs merge=lfs -text
256
+ assets/images/help/writing/fenced-stl-rendered-object.png filter=lfs diff=lfs merge=lfs -text
257
+ assets/images/help/writing/fenced-topojson-rendered-map.png filter=lfs diff=lfs merge=lfs -text
258
+ assets/images/help/writing/saved-replies-settings-adding.png filter=lfs diff=lfs merge=lfs -text
259
+ assets/images/help/writing/task-list-rendered.png filter=lfs diff=lfs merge=lfs -text
260
+ assets/images/help/writing/task-list-tracked.png filter=lfs diff=lfs merge=lfs -text
261
+ assets/images/marketplace/marketplace-feature-card.png filter=lfs diff=lfs merge=lfs -text
262
+ assets/images/marketplace/marketplace-insights.png filter=lfs diff=lfs merge=lfs -text
263
+ assets/images/marketplace/marketplace-screenshots.png filter=lfs diff=lfs merge=lfs -text
264
+ assets/images/site/evergreens/boxwood.png filter=lfs diff=lfs merge=lfs -text
265
+ assets/images/site/evergreens/cedar.png filter=lfs diff=lfs merge=lfs -text
266
+ assets/images/site/evergreens/cypress.png filter=lfs diff=lfs merge=lfs -text
267
+ assets/images/site/evergreens/fir.png filter=lfs diff=lfs merge=lfs -text
268
+ assets/images/site/evergreens/hemlock.png filter=lfs diff=lfs merge=lfs -text
269
+ assets/images/site/evergreens/hinoki.png filter=lfs diff=lfs merge=lfs -text
270
+ assets/images/site/evergreens/holly.png filter=lfs diff=lfs merge=lfs -text
271
+ assets/images/site/evergreens/juniper.png filter=lfs diff=lfs merge=lfs -text
272
+ assets/images/site/evergreens/laurel.png filter=lfs diff=lfs merge=lfs -text
273
+ assets/images/site/evergreens/pine.png filter=lfs diff=lfs merge=lfs -text
274
+ assets/images/site/evergreens/redwood.png filter=lfs diff=lfs merge=lfs -text
275
+ assets/images/site/evergreens/sequoia.png filter=lfs diff=lfs merge=lfs -text
276
+ assets/images/site/evergreens/spruce.png filter=lfs diff=lfs merge=lfs -text
277
+ assets/images/site/evergreens/yew.png filter=lfs diff=lfs merge=lfs -text
278
+ assets/images/social-cards/actions.png filter=lfs diff=lfs merge=lfs -text
279
+ assets/images/social-cards/code-security.png filter=lfs diff=lfs merge=lfs -text
280
+ assets/images/social-cards/copilot.png filter=lfs diff=lfs merge=lfs -text
281
+ assets/images/social-cards/default.png filter=lfs diff=lfs merge=lfs -text
282
+ assets/images/social-cards/issues.png filter=lfs diff=lfs merge=lfs -text
283
+ contributing/images/illustration-of-article-contents.png filter=lfs diff=lfs merge=lfs -text
284
+ contributing/images/screenshot-no-require-signoff.png filter=lfs diff=lfs merge=lfs -text
285
+ contributing/images/screenshot-yes-clone-gist.png filter=lfs diff=lfs merge=lfs -text
286
+ contributing/images/screenshot-yes-social-preview.png filter=lfs diff=lfs merge=lfs -text
287
+ src/dev-toc/toc-screenshot.png filter=lfs diff=lfs merge=lfs -text
288
+ src/ghes-releases/lib/variable-example.png filter=lfs diff=lfs merge=lfs -text
289
+ src/rest/data/fpt-2022-11-28/schema.json filter=lfs diff=lfs merge=lfs -text
290
+ src/rest/data/ghec-2022-11-28/schema.json filter=lfs diff=lfs merge=lfs -text
291
+ src/rest/data/ghes-3.14-2022-11-28/schema.json filter=lfs diff=lfs merge=lfs -text
292
+ src/rest/data/ghes-3.15-2022-11-28/schema.json filter=lfs diff=lfs merge=lfs -text
293
+ src/rest/data/ghes-3.16-2022-11-28/schema.json filter=lfs diff=lfs merge=lfs -text
294
+ src/rest/data/ghes-3.17-2022-11-28/schema.json filter=lfs diff=lfs merge=lfs -text
295
+ src/rest/data/ghes-3.18-2022-11-28/schema.json filter=lfs diff=lfs merge=lfs -text
296
+ src/rest/data/ghes-3.19-2022-11-28/schema.json filter=lfs diff=lfs merge=lfs -text
297
+ src/rest/rest-pipeline-flowchart.png filter=lfs diff=lfs merge=lfs -text
298
+ src/webhooks/webhooks-pipeline-flowchart.png filter=lfs diff=lfs merge=lfs -text
.github/CODEOWNERS ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Order is important. The LAST matching pattern has the MOST precedence.
2
+ # gitignore style patterns are used, not globs.
3
+ # https://docs.github.com/articles/about-codeowners
4
+ # https://git-scm.com/docs/gitignore
5
+
6
+ # Site Policy
7
+ content/site-policy/ @github/site-policy-admins
8
+
9
+ # Enterprise
10
+ data/release-notes/**/*.yml @github/docs-content-enterprise
11
+ src/ghes-releases/lib/enterprise-dates.json @github/docs-content-enterprise
12
+
13
+ # Requires review of #actions-oidc-integration, docs-engineering/issues/1506
14
+ # content/actions/deployment/security-hardening-your-deployments/** @github/oidc
.github/CODE_OF_CONDUCT.md ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
8
+
9
+ ## Our Standards
10
+
11
+ Examples of behavior that contributes to a positive environment for our community include:
12
+
13
+ * Demonstrating empathy and kindness toward other people
14
+ * Being respectful of differing opinions, viewpoints, and experiences
15
+ * Giving and gracefully accepting constructive feedback
16
+ * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
17
+ * Focusing on what is best not just for us as individuals, but for the overall community
18
+
19
+ Examples of unacceptable behavior include:
20
+
21
+ * The use of sexualized language or imagery, and sexual attention or advances of any kind
22
+ * Trolling, insulting or derogatory comments, and personal or political attacks
23
+ * Public or private harassment
24
+ * Publishing others' private information, such as a physical or email address, without their explicit permission
25
+ * Contacting individual members, contributors, or leaders privately, outside designated community mechanisms, without their explicit permission
26
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
27
+
28
+ ## Enforcement Responsibilities
29
+
30
+ Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
31
+
32
+ Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
33
+
34
+ ## Scope
35
+
36
+ This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
37
+
38
+ ## Enforcement
39
+
40
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at opensource@github.com. All complaints will be reviewed and investigated promptly and fairly.
41
+
42
+ All community leaders are obligated to respect the privacy and security of the reporter of any incident.
43
+
44
+ ## Enforcement Guidelines
45
+
46
+ Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
47
+
48
+ ### 1. Correction
49
+
50
+ **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
51
+
52
+ **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
53
+
54
+ ### 2. Warning
55
+
56
+ **Community Impact**: A violation through a single incident or series of actions.
57
+
58
+ **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
59
+
60
+ ### 3. Temporary Ban
61
+
62
+ **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
63
+
64
+ **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
65
+
66
+ ### 4. Permanent Ban
67
+
68
+ **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
69
+
70
+ **Consequence**: A permanent ban from any sort of public interaction within the community.
71
+
72
+ ## Attribution
73
+
74
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at <https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
75
+
76
+ Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
77
+
78
+ [homepage]: https://www.contributor-covenant.org
79
+
80
+ For answers to common questions about this code of conduct, see the FAQ at <https://www.contributor-covenant.org/faq>. Translations are available at <https://www.contributor-covenant.org/translations>.
.github/CONTRIBUTING.md ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Welcome to GitHub docs contributing guide <!-- omit in toc -->
2
+
3
+ Thank you for investing your time in contributing to our project! Any contribution you make will be reflected on [docs.github.com](https://docs.github.com/en) :sparkles:.
4
+
5
+ **📖 For comprehensive contribution guidance, please visit our official documentation at [docs.github.com/en/contributing](https://docs.github.com/en/contributing). This is our canonical source for all contribution processes and policies.**
6
+
7
+ Read our [Code of Conduct](./CODE_OF_CONDUCT.md) to keep our community approachable and respectable.
8
+
9
+ This guide provides repository-specific information to supplement the official contribution documentation. For detailed processes, policies, and best practices, always refer to [docs.github.com/en/contributing](https://docs.github.com/en/contributing).
10
+
11
+ Use the table of contents icon <img alt="Table of contents icon" src="/contributing/images/table-of-contents.png" width="25" height="25" /> in the top corner of this document to get to a specific section of this guide quickly.
12
+
13
+ ## New contributor guide
14
+
15
+ **Start here:** Visit [docs.github.com/en/contributing](https://docs.github.com/en/contributing) for complete contributor onboarding and guidelines.
16
+
17
+ For repository-specific setup, read the [README](../README.md) file. The official docs site also provides these helpful resources:
18
+
19
+ - [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)
20
+ - [Set up Git](https://docs.github.com/en/get-started/git-basics/set-up-git)
21
+ - [GitHub flow](https://docs.github.com/en/get-started/using-github/github-flow)
22
+ - [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests)
23
+
24
+ ## Contribution types and what we're looking for
25
+
26
+ Content we accept:
27
+ * Technical and grammatical corrections
28
+ * Typo fixes
29
+ * Expanded explanations of existing products or features, when the expansion has a compelling reason
30
+ * New content filling important gaps in our documentation. For example, [this pull request](https://github.com/github/docs/pull/38048) added a useful section on security hardening for GitHub Actions.
31
+
32
+ Content we do not currently accept:
33
+ * Edits purely for tone, readability, or efficiency
34
+ * Topics that are too niche or a matter of personal preference
35
+ * Changes to the underlying site and workflows
36
+
37
+ These are general guidelines, but if you’re not sure what category your proposed change would fall under, feel free to open an issue to discuss it with us!
38
+
39
+ ## Getting started
40
+
41
+ 📚 **Primary resource:** [docs.github.com/en/contributing](https://docs.github.com/en/contributing) contains our complete contribution workflow and policies.
42
+
43
+ For repository-specific information:
44
+ - See [the introduction to working in the docs repository](/contributing/README.md) :confetti_ball:
45
+ - Check our [types of contributions](/contributing/types-of-contributions.md) we accept
46
+ - Review our markdown style guidelines in the `/contributing` directory
47
+
48
+ ### Writing style guidelines
49
+
50
+ When contributing content, please follow these key principles from our [style guide](https://docs.github.com/en/contributing/style-guide-and-content-model/style-guide):
51
+
52
+ - **Clarity and simplicity**: The goal of our writing style is clarity and simplicity.
53
+ - **Meaning over grammar**: Grammatical correctness is important, but not as important as clarity and meaning.
54
+ - **Second person**: The docs use second-person ("you") to communicate directly with readers.
55
+ - **Inclusive language**: Use inclusive language by not assuming gender or ability level, and by avoiding slang and idioms.
56
+ - **Accessible technical language**: Jargon is sometimes necessary, but don't assume every reader has your technical expertise.
57
+ - **Active voice**: Use active voice wherever possible. Active voice means avoiding "be" verbs like "is" or "are" when you can, but also choosing more dynamic verbs to get your point across. "Press (a key)" is less dynamic than "tap (a key)," for example.
58
+ - **Clear terminology**: Avoid technical abbreviations like "repo" and "PR," and Latin abbreviations like "i.e." and "e.g."
59
+
60
+ For complete style guidance, see our [style guide](https://docs.github.com/en/contributing/style-guide-and-content-model/style-guide).
61
+
62
+ ### Issues
63
+
64
+ **For detailed issue guidelines, see [docs.github.com/en/contributing](https://docs.github.com/en/contributing).**
65
+
66
+ #### Repository-specific notes:
67
+ - Search [existing issues](https://github.com/github/docs/issues) before creating new ones
68
+ - Use our [label reference](https://docs.github.com/en/contributing/collaborating-on-github-docs/label-reference) to categorize appropriately
69
+ - Follow the issue templates provided in this repository
70
+
71
+ ### Make Changes
72
+
73
+ **Complete change guidelines are available at [docs.github.com/en/contributing](https://docs.github.com/en/contributing).**
74
+
75
+ #### Repository-specific options:
76
+
77
+ **Make changes in the UI:** Click **Make a contribution** at the bottom of any docs page for small changes like typos or broken links.
78
+
79
+ <img src="/contributing/images/contribution_cta.png" />
80
+
81
+ **Make changes in a codespace:** See "[Working in a codespace](https://github.com/github/docs/blob/main/contributing/codespace.md)" for documentation-specific setup.
82
+
83
+ **Make changes locally:**
84
+ 1. Fork the repository (see [official forking guide](https://docs.github.com/en/contributing))
85
+ 2. Install Node.js at the version specified in `.node-version` (see [development guide](../contributing/development.md))
86
+ 3. Create a working branch and start with your changes
87
+
88
+ ### Commit your update
89
+
90
+ Follow the guidelines at [docs.github.com/en/contributing](https://docs.github.com/en/contributing) for commit best practices.
91
+
92
+ Use our "[Self review checklist](https://docs.github.com/en/contributing/collaborating-on-github-docs/self-review-checklist)" before committing.
93
+
94
+ ### Pull Request
95
+
96
+ **Complete pull request (PR) guidelines:** [docs.github.com/en/contributing](https://docs.github.com/en/contributing)
97
+
98
+ **Repository-specific notes:**
99
+ - Fill the "Ready for review" template
100
+ - [Link PR to issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) if applicable
101
+ - Enable [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)
102
+
103
+ A Docs team member will review following our [standard review process](https://docs.github.com/en/contributing).
104
+
105
+ ### Your PR is merged!
106
+
107
+ Congratulations :tada::tada: The GitHub team thanks you :sparkles:.
108
+
109
+ Once merged, your contributions will be visible on [GitHub docs](https://docs.github.com/en).
110
+
111
+ Continue contributing using our [types of contributions guide](/contributing/types-of-contributions.md) or explore more opportunities at [docs.github.com/en/contributing](https://docs.github.com/en/contributing).
112
+
113
+ ## Windows
114
+
115
+ This site can be developed on Windows, however a few potential gotchas need to be kept in mind:
116
+
117
+ 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.
118
+ 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.
119
+ 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.
120
+ 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:
121
+ - Update Git configuration: `git config --system core.longpaths true`
122
+ - Consider using a different Git client on Windows
.github/ISSUE_TEMPLATE/config.yml ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: GitHub Support
4
+ url: https://support.github.com/contact
5
+ about: Contact Support if you're having trouble with your GitHub account.
.github/ISSUE_TEMPLATE/improve-existing-docs.yaml ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Improve existing content
2
+ description: Make a suggestion to improve the content in an existing article.
3
+ labels:
4
+ - content
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ **HUBBERS!!** This is the github/docs open source repo. You may want to open an issue in the internal-only github/docs-content repo instead.
10
+
11
+ * Before you file an issue read the [Contributing guide](https://docs.github.com/en/contributing).
12
+ * Check to make sure someone hasn't already opened a similar [issue](https://github.com/github/docs/issues).
13
+
14
+ - type: checkboxes
15
+ id: terms
16
+ attributes:
17
+ label: Code of Conduct
18
+ description: This project has a Code of Conduct that all participants are expected to understand and follow.
19
+ options:
20
+ - label: I have read and agree to the GitHub Docs project's [Code of Conduct](https://github.com/github/docs/blob/main/.github/CODE_OF_CONDUCT.md)
21
+ required: true
22
+
23
+ - type: textarea
24
+ attributes:
25
+ label: What article on docs.github.com is affected?
26
+ description: Please link to the article you'd like to see updated.
27
+ validations:
28
+ required: true
29
+
30
+ - type: textarea
31
+ attributes:
32
+ label: What part(s) of the article would you like to see updated?
33
+ description: |
34
+ - Give as much detail as you can to help us understand the change you want to see.
35
+ - Why should the docs be changed? What use cases does it support?
36
+ - What is the expected outcome or behavior?
37
+ validations:
38
+ required: true
39
+
40
+ - type: textarea
41
+ attributes:
42
+ label: Additional information
43
+ description: |
44
+ - Are you able to reliably reproduce the problem? How often does it occur? How many users are affected?
45
+ - Add any other context or screenshots about the feature here.
46
+ validations:
47
+ required: false
.github/ISSUE_TEMPLATE/improve-the-site.yml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Improve the docs.github.com site
2
+ description: Make a suggestion or report a problem about the technical implementation of docs.github.com.
3
+ labels:
4
+ - content
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ **HUBBERS!!** This is the github/docs open source repo. You may want to open an issue in the internal-only github/docs-content repo instead.
10
+
11
+ * Before you file an issue read the [Contributing guide](https://docs.github.com/en/contributing).
12
+ * Check to make sure someone hasn't already opened a similar [issue](https://github.com/github/docs/issues).
13
+
14
+ - type: checkboxes
15
+ id: terms
16
+ attributes:
17
+ label: Code of Conduct
18
+ description: This project has a Code of Conduct that all participants are expected to understand and follow.
19
+ options:
20
+ - label: I have read and agree to the GitHub Docs project's [Code of Conduct](https://github.com/github/docs/blob/main/.github/CODE_OF_CONDUCT.md)
21
+ required: true
22
+
23
+ - type: textarea
24
+ attributes:
25
+ label: What article on docs.github.com is affected?
26
+ description: Include links to articles where you're seeing a problem, screenshots, what browser you're using, etc.
27
+ validations:
28
+ required: true
29
+
30
+ - type: textarea
31
+ attributes:
32
+ label: What changes are you suggesting?
33
+ description: |
34
+ - Give as much detail as you can to help us understand the change you want to see.
35
+ - Why should the docs be changed? What use cases does it support?
36
+ - What is the expected outcome?
37
+ validations:
38
+ required: true
39
+
40
+ - type: textarea
41
+ attributes:
42
+ label: Additional information
43
+ description: Any additional information, configuration, or data that might be necessary to reproduce the issue.
44
+ validations:
45
+ required: false
.github/ISSUE_TEMPLATE/partner-contributed-documentation.yml ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Partner-owned product documentation
2
+ description: Initiate a set of tasks to be completed by a GitHub partner wishing to document how their product works with GitHub.
3
+ labels:
4
+ - partner
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thank you for your interest in contributing to the GitHub documentation.
10
+
11
+ This issue template is only for use by GitHub's Technology Partners who wish to contribute documentation explaining how the partner's product works with GitHub, making it straightforward for our shared customers to adopt the product into their workflow.
12
+
13
+ As a general guide, we estimate we have bandwidth for prioritizing and reviewing up to 3 partner contributions per quarter.
14
+
15
+ Please be sure to complete all items in the checklists that follow, and feel free to comment with any questions. A member of the team will be glad to support you.
16
+
17
+ - type: checkboxes
18
+ id: terms
19
+ attributes:
20
+ label: Code of Conduct
21
+ description: This project has a Code of Conduct that all participants are expected to understand and follow.
22
+ options:
23
+ - label: I have read and agree to the GitHub Docs project's [Code of Conduct](https://github.com/github/docs/blob/main/.github/CODE_OF_CONDUCT.md)
24
+ required: true
25
+ - type: checkboxes
26
+ attributes:
27
+ label: Pre-requisites
28
+ description: Prior to submitting documentation, please apply to join the GitHub Technology Partner Program [partner.github.com/apply](https://partner.github.com/apply?partnershipType=Technology+Partner). Please feel free to proceed once your application is approved.
29
+ options:
30
+ - label: My application to the GitHub Technology Partner Program is approved.
31
+ required: true
32
+
33
+ - type: checkboxes
34
+ attributes:
35
+ label: Tasks
36
+ description: Please be sure to complete each of the following.
37
+ options:
38
+ - label: MUST follow our [general contributing guidelines](https://docs.github.com/en/contributing) for voice and markup format.
39
+ required: true
40
+ - label: MUST emphasize how the third-party product works with GitHub.
41
+ required: true
42
+ - label: MUST be written in Markdown format, using [one of the templates provided](https://docs.github.com/en/contributing/writing-for-github-docs/templates).
43
+ required: true
44
+ - label: MUST include the name and URL of the GitHub technology partner responsible for maintenance of the documentation being contributed. This should be added via the `contributor.name` and `contributor.URL` properties in the template's YAML frontmatter.
45
+ required: true
46
+ - label: MUST be proposed via a pull request to this repo following [the GitHub Flow](https://guides.github.com/introduction/flow/).
47
+ required: true
48
+ - label: MUST be located in the root of [the `content` folder](content). Your filename MUST match the GitHub technology partner name, and use the `.md` file extension.
49
+ required: true
50
+
51
+ - type: checkboxes
52
+ attributes:
53
+ label: Pull Request
54
+ description: Please be sure to complete each of the following.
55
+ options:
56
+ - label: MUST reference this issue, e.g. via `closes [this issue number]`.
57
+ required: true
58
+ - label: MUST pass the automated CI checks.
59
+ required: true
60
+ - label: MUST include links to supporting material demonstrating the functionality being documented (this can be a link to a public GitHub repo, _or_ a video / screencast walkthrough).
61
+ required: true
62
+
63
+ - type: markdown
64
+ attributes:
65
+ value: |
66
+ Once all tasks are completed, please mention `@github/docs-content` for next steps.
67
+ /cc @github/technology-partnerships-and-engineering for :eyes:.
.github/PULL_REQUEST_TEMPLATE.md ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!--
2
+ Thank you for contributing to this project! You must fill out the information below before we can review this pull request. By explaining why you're making a change (or linking to an issue) and what changes you've made, we can triage your pull request to the best possible team for review.
3
+ -->
4
+
5
+ ### Why:
6
+
7
+ <!-- Paste the issue link or number here -->
8
+ Closes:
9
+
10
+ <!-- If there's an existing issue for your change, please link to it above.
11
+ If there's _not_ an existing issue, please open one first to make it more likely that this update will be accepted: https://github.com/github/docs/issues/new/choose. -->
12
+
13
+ ### What's being changed (if available, include any code snippets, screenshots, or gifs):
14
+
15
+ <!-- Let us know what you are changing. Share anything that could provide the most context.
16
+ If you made changes to the `content` directory, a table will populate in a comment below with links to the review and current production articles. -->
17
+
18
+ ### Check off the following:
19
+
20
+ - [ ] A subject matter expert (SME) has reviewed the technical accuracy of the content in this PR. In most cases, the author can be the SME. Open source contributions may require an SME review from GitHub staff.
21
+ - [ ] The changes in this PR meet [the docs fundamentals that are required for all content](http://docs.github.com/en/contributing/writing-for-github-docs/about-githubs-documentation-fundamentals).
22
+ - [ ] All CI checks are passing and the changes look good in the review environment.
.github/actions/cache-nextjs/action.yml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Based on https://nextjs.org/docs/pages/building-your-application/deploying/ci-build-caching#github-actions
2
+
3
+ name: Cache Nextjs build cache
4
+
5
+ description: Cache the .next/cache according to best practices
6
+
7
+ runs:
8
+ using: 'composite'
9
+ steps:
10
+ - name: Cache .next/cache
11
+ uses: actions/cache@v4
12
+ with:
13
+ path: ${{ github.workspace }}/.next/cache
14
+ # Generate a new cache whenever packages or source files change.
15
+ key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.ts', '**/*.tsx') }}
16
+ # If source files changed but packages didn't, rebuild from a prior cache.
17
+ restore-keys: |
18
+ ${{ runner.os }}-nextjs-v13-${{ hashFiles('**/package-lock.json') }}-
.github/actions/clone-translations/action.yml ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Clone translations
2
+
3
+ description: Clone all remote translations so they're available
4
+
5
+ inputs:
6
+ token:
7
+ description: PAT
8
+ required: true
9
+
10
+ runs:
11
+ using: 'composite'
12
+ steps:
13
+ - name: Clone Spanish
14
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
15
+ with:
16
+ repository: github/docs-internal.es-es
17
+ token: ${{ inputs.token }}
18
+ path: translations/es-es
19
+
20
+ - name: Clone Japanese
21
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
22
+ with:
23
+ repository: github/docs-internal.ja-jp
24
+ token: ${{ inputs.token }}
25
+ path: translations/ja-jp
26
+
27
+ - name: Clone Portuguese
28
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
29
+ with:
30
+ repository: github/docs-internal.pt-br
31
+ token: ${{ inputs.token }}
32
+ path: translations/pt-br
33
+
34
+ - name: Clone Simplified Chinese
35
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
36
+ with:
37
+ repository: github/docs-internal.zh-cn
38
+ token: ${{ inputs.token }}
39
+ path: translations/zh-cn
40
+
41
+ - name: Clone Russian
42
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
43
+ with:
44
+ repository: github/docs-internal.ru-ru
45
+ token: ${{ inputs.token }}
46
+ path: translations/ru-ru
47
+
48
+ - name: Clone French
49
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
50
+ with:
51
+ repository: github/docs-internal.fr-fr
52
+ token: ${{ inputs.token }}
53
+ path: translations/fr-fr
54
+
55
+ - name: Clone Korean
56
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
57
+ with:
58
+ repository: github/docs-internal.ko-kr
59
+ token: ${{ inputs.token }}
60
+ path: translations/ko-kr
61
+
62
+ - name: Clone German
63
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
64
+ with:
65
+ repository: github/docs-internal.de-de
66
+ token: ${{ inputs.token }}
67
+ path: translations/de-de
.github/actions/get-changed-files/action.yml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Get changed files
2
+ description: Get a list of changed files
3
+
4
+ inputs:
5
+ files:
6
+ description: 'Files or directories to check for changes, supports names, directories, trailing slashes, and single trailing wildcard'
7
+ required: false
8
+ default: '.'
9
+ head:
10
+ description: 'Head ref to check for changes against'
11
+ required: false
12
+ output_file:
13
+ description: 'Optional file path to write the changes to'
14
+ required: false
15
+
16
+ outputs:
17
+ all_changed_files:
18
+ description: 'List of all changed files (unfiltered), includes removals'
19
+ value: ${{ steps.get_changes.outputs.all_changed_files }}
20
+ filtered_changed_files:
21
+ description: 'List of changed files matching the `files` filter, does not include removals'
22
+ value: ${{ steps.get_changes.outputs.filtered_changed_files }}
23
+ filtered_deleted_files:
24
+ description: 'List of deleted files matching the `files` filter'
25
+ value: ${{ steps.get_changes.outputs.filtered_deleted_files }}
26
+ filtered_renamed_files:
27
+ description: 'List of renamed files matching the `files` filter'
28
+ value: ${{ steps.get_changes.outputs.filtered_renamed_files }}
29
+
30
+ runs:
31
+ using: 'composite'
32
+ steps:
33
+ - name: Gather changed files
34
+ id: get_changes
35
+ env:
36
+ INPUT_FILES: ${{ inputs.files }}
37
+ INPUT_HEAD: ${{ inputs.head || github.event.pull_request.head.ref || github.event.merge_group.head_ref || github.ref_name }}
38
+ INPUT_OUTPUT_FILE: ${{ inputs.output_file }}
39
+ shell: bash
40
+ run: ${{ github.action_path }}/get-changed-files.sh
.github/actions/get-changed-files/get-changed-files.sh ADDED
@@ -0,0 +1,204 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # Required environment variables:
4
+ # $INPUT_FILES: Pattern(s) to filter files by (e.g., "content/** data/**")
5
+ # $INPUT_HEAD: Current branch or SHA for git diff
6
+ # $INPUT_OUTPUT_FILE: Optional file to redirect output to.
7
+
8
+ # Default value for files parameter if not provided
9
+ FILTER=${INPUT_FILES:-.}
10
+
11
+ # Print the filter
12
+ echo "__ using filter: __"
13
+ echo "$FILTER"
14
+
15
+ # Ensure we have the latest from the remote
16
+ echo "__ fetching latest changes __"
17
+ git fetch --depth=1 origin main
18
+ git fetch --depth=1 origin ${INPUT_HEAD:-HEAD}
19
+
20
+ # Get diff with status information
21
+ echo "__ running git diff with status __"
22
+ DIFF_OUTPUT=$(git diff --name-status origin/main origin/${INPUT_HEAD:-HEAD})
23
+
24
+ # Function to extract files by pattern from diff output
25
+ extract_files() {
26
+ local pattern=$1
27
+ local field=$2
28
+ echo "$DIFF_OUTPUT" | grep -E "$pattern" | cut -f$field
29
+ }
30
+
31
+ # Extract files by status
32
+ echo "__ extracting files by status __"
33
+ MODIFIED_FILES=$(extract_files "^[AM]" 2)
34
+ DELETED_FILES=$(extract_files "^D" 2)
35
+ RENAMED_OLD_FILES=$(extract_files "^R[0-9]+" 2)
36
+ RENAMED_NEW_FILES=$(extract_files "^R[0-9]+" 3)
37
+
38
+ # Create paired renames in format "oldname=>newname"
39
+ create_rename_pairs() {
40
+ local old_files=$1
41
+ local new_files=$2
42
+ local pairs=()
43
+
44
+ IFS=$'\n'
45
+ for i in $(seq 1 $(echo "$old_files" | wc -l)); do
46
+ OLD=$(echo "$old_files" | sed -n "${i}p")
47
+ NEW=$(echo "$new_files" | sed -n "${i}p")
48
+ pairs+=("$OLD=>$NEW")
49
+ done
50
+ unset IFS
51
+
52
+ printf "%s\n" "${pairs[@]}"
53
+ }
54
+
55
+ RENAMED_FILES_WITH_HISTORY=$(create_rename_pairs "$RENAMED_OLD_FILES" "$RENAMED_NEW_FILES")
56
+
57
+ # Combine files for different outputs
58
+ DIFF=$(echo -e "$MODIFIED_FILES\n$RENAMED_NEW_FILES" | sort | uniq)
59
+ ALL_DIFF=$(echo -e "$MODIFIED_FILES\n$DELETED_FILES\n$RENAMED_NEW_FILES" | sort | uniq)
60
+
61
+ # Debug output
62
+ echo "__ MODIFIED files found __"
63
+ echo "$MODIFIED_FILES"
64
+ echo "__ DELETED files found __"
65
+ echo "$DELETED_FILES"
66
+ echo "__ RENAMED files found (with history) __"
67
+ echo "$RENAMED_FILES_WITH_HISTORY"
68
+ echo "__ ALL changed files __"
69
+ echo "$ALL_DIFF"
70
+
71
+ # Function to filter files by pattern
72
+ filter_files() {
73
+ local files=$1
74
+ local result=""
75
+
76
+ IFS=$'\n'
77
+ for file in $files; do
78
+ while IFS= read -r pattern || [ -n "$pattern" ]; do
79
+ clean_pattern=${pattern%/}
80
+ if [[ $file == $clean_pattern || $file == $clean_pattern/* ]]; then
81
+ result="$result $file"
82
+ break
83
+ fi
84
+ done <<< "$FILTER"
85
+ done
86
+ unset IFS
87
+
88
+ echo "$result"
89
+ }
90
+
91
+ # Function to filter rename pairs
92
+ filter_renames() {
93
+ local new_files=$1
94
+ local old_files=$2
95
+ local result=""
96
+
97
+ IFS=$'\n'
98
+ for i in $(seq 1 $(echo "$new_files" | wc -l)); do
99
+ NEW=$(echo "$new_files" | sed -n "${i}p")
100
+ OLD=$(echo "$old_files" | sed -n "${i}p")
101
+
102
+ while IFS= read -r pattern || [ -n "$pattern" ]; do
103
+ clean_pattern=${pattern%/}
104
+ if [[ $NEW == $clean_pattern || $NEW == $clean_pattern/* ]]; then
105
+ result="$result $OLD=>$NEW"
106
+ break
107
+ fi
108
+ done <<< "$FILTER"
109
+ done
110
+ unset IFS
111
+
112
+ echo "$result"
113
+ }
114
+
115
+ # Filter the files to just the directories specified in the input files
116
+ if [ "$FILTER" != "." ]; then
117
+ echo "__ filtering files to only include $FILTER __"
118
+
119
+ FILTERED_MODIFIED=$(filter_files "$MODIFIED_FILES")
120
+ FILTERED_DELETED=$(filter_files "$DELETED_FILES")
121
+ FILTERED_RENAMED=$(filter_renames "$RENAMED_NEW_FILES" "$RENAMED_OLD_FILES")
122
+
123
+ # For filtered_changed_files (non-deleted files)
124
+ FILTERED_DIFF="$FILTERED_MODIFIED"
125
+ for new_file in $(echo "$FILTERED_RENAMED" | grep -o "=>[^[:space:]]*" | sed 's/=>//g'); do
126
+ FILTERED_DIFF="$FILTERED_DIFF $new_file"
127
+ done
128
+
129
+ MODIFIED_FILES=$FILTERED_MODIFIED
130
+ DELETED_FILES=$FILTERED_DELETED
131
+ RENAMED_FILES_WITH_HISTORY=$FILTERED_RENAMED
132
+ DIFF=$FILTERED_DIFF
133
+
134
+ echo "__ filtered MODIFIED files __"
135
+ echo "$MODIFIED_FILES"
136
+ echo "__ filtered DELETED files __"
137
+ echo "$DELETED_FILES"
138
+ echo "__ filtered RENAMED files (with history) __"
139
+ echo "$RENAMED_FILES_WITH_HISTORY"
140
+ echo "__ filtered changed files (non-deleted) __"
141
+ echo "$FILTERED_DIFF"
142
+ fi
143
+
144
+ # Function to format output (standardize whitespace)
145
+ format_output() {
146
+ local input=$1
147
+ echo "$input" | tr '\n' ' ' | tr -s ' ' | sed 's/^ *//' | sed 's/ *$//'
148
+ }
149
+
150
+ echo "__ formatting output __"
151
+ FORMATTED_MODIFIED=$(format_output "$MODIFIED_FILES")
152
+ FORMATTED_DELETED=$(format_output "$DELETED_FILES")
153
+ FORMATTED_DIFF=$(format_output "$DIFF")
154
+ FORMATTED_RENAMED=$(format_output "$RENAMED_FILES_WITH_HISTORY")
155
+ ALL_FORMATTED=$(format_output "$ALL_DIFF")
156
+
157
+ echo "Formatted modified: '$FORMATTED_MODIFIED'"
158
+ echo "Formatted deleted: '$FORMATTED_DELETED'"
159
+ echo "Formatted renamed: '$FORMATTED_RENAMED'"
160
+ echo "Formatted non-deleted changes: '$FORMATTED_DIFF'"
161
+
162
+ # Set the output for GitHub Actions
163
+ HAS_CHANGES=true
164
+ if [[ -z "$FORMATTED_DIFF" && -z "$FORMATTED_DELETED" ]]; then
165
+ echo "No changed files detected"
166
+ HAS_CHANGES=false
167
+ fi
168
+
169
+ # Function to set outputs either to a file or GITHUB_OUTPUT
170
+ set_outputs() {
171
+ local target=$1
172
+
173
+ if [[ "$HAS_CHANGES" == "false" ]]; then
174
+ echo "Setting empty outputs to $target"
175
+ echo "all_changed_files=" >> "$target"
176
+ echo "filtered_changed_files=" >> "$target"
177
+ echo "filtered_deleted_files=" >> "$target"
178
+ echo "filtered_renamed_files=" >> "$target"
179
+ else
180
+ echo "Setting non-empty outputs to $target"
181
+ echo "all_changed_files<<EOF" >> "$target"
182
+ echo "$ALL_FORMATTED" >> "$target"
183
+ echo "EOF" >> "$target"
184
+
185
+ echo "filtered_changed_files<<EOF" >> "$target"
186
+ echo "$FORMATTED_DIFF" >> "$target"
187
+ echo "EOF" >> "$target"
188
+
189
+ echo "filtered_deleted_files<<EOF" >> "$target"
190
+ echo "$FORMATTED_DELETED" >> "$target"
191
+ echo "EOF" >> "$target"
192
+
193
+ echo "filtered_renamed_files<<EOF" >> "$target"
194
+ echo "$FORMATTED_RENAMED" >> "$target"
195
+ echo "EOF" >> "$target"
196
+ fi
197
+ }
198
+
199
+ # Set outputs to the appropriate target
200
+ if [[ -n "$INPUT_OUTPUT_FILE" ]]; then
201
+ set_outputs "$INPUT_OUTPUT_FILE"
202
+ else
203
+ set_outputs "$GITHUB_OUTPUT"
204
+ fi
.github/actions/get-docs-early-access/action.yml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Clone and add docs-early-access
2
+
3
+ description: Clone docs-early-access and copy its content into the repo
4
+
5
+ inputs:
6
+ token:
7
+ description: PAT
8
+ required: true
9
+
10
+ runs:
11
+ using: 'composite'
12
+ steps:
13
+ - name: Figure out which branch to checkout
14
+ id: check-early-access
15
+ env:
16
+ BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
17
+ GITHUB_TOKEN: ${{ inputs.token }}
18
+ shell: bash
19
+ run: npm run what-docs-early-access-branch
20
+
21
+ - name: Clone
22
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
23
+ with:
24
+ repository: github/docs-early-access
25
+ token: ${{ inputs.token }}
26
+ path: docs-early-access
27
+ ref: ${{ steps.check-early-access.outputs.branch }}
28
+
29
+ - name: Merge docs-early-access repo's folders
30
+ shell: bash
31
+ run: |
32
+ src/early-access/scripts/merge-early-access.sh
33
+ rm -fr docs-early-access
.github/actions/install-cocofix/action.yml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Install CocoFix
2
+
3
+ description: Installs the private package `@github/cocofix` from the GitHub Package Registry.
4
+
5
+ inputs:
6
+ token:
7
+ description: PAT
8
+ required: true
9
+
10
+ runs:
11
+ using: 'composite'
12
+ steps:
13
+ - name: Install CoCoFix
14
+ shell: bash
15
+ env:
16
+ TOKEN: ${{ inputs.token }}
17
+ run: |
18
+ npm install --no-save \
19
+ '--@github:registry=https://npm.pkg.github.com' \
20
+ '--//npm.pkg.github.com/:_authToken=${TOKEN}' \
21
+ @github/cocofix codeql-ts
.github/actions/labeler/action.yml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Labeler
2
+
3
+ description: Adds labels to an Issue or PR
4
+ inputs:
5
+ token:
6
+ description: defaults to GITHUB_TOKEN, otherwise can use a PAT
7
+ required: false
8
+ default: ${{ github.token }}
9
+ addLabels:
10
+ description: array of labels to apply
11
+ required: false
12
+ removeLabels:
13
+ description: array of labels to remove
14
+ required: false
15
+ ignoreIfAssigned:
16
+ description: don't apply labels if there are assignees
17
+ required: false
18
+ ignoreIfLabeled:
19
+ description: don't apply labels if there are already labels added
20
+ required: false
21
+
22
+ runs:
23
+ using: 'composite'
24
+ steps:
25
+ - name: Add label to an issue or pr
26
+ run: npm run labeler
27
+ shell: bash
28
+ env:
29
+ GITHUB_TOKEN: ${{ inputs.token }}
30
+ ADD_LABELS: ${{ inputs.addLabels }}
31
+ REMOVE_LABELS: ${{ inputs.removeLabels }}
32
+ IGNORE_IF_ASSIGNED: ${{ inputs.ignoreIfAssigned }}
33
+ IGNORE_IF_LABELED: ${{ inputs.ignoreIfLabeled }}
.github/actions/labeler/labeler.ts ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* See function main in this file for documentation */
2
+
3
+ import coreLib from '@actions/core'
4
+ import { type Octokit } from '@octokit/rest'
5
+ import { CoreInject } from '@/links/scripts/action-injections'
6
+
7
+ import github from '@/workflows/github'
8
+ import { getActionContext } from '@/workflows/action-context'
9
+ import { boolEnvVar } from '@/workflows/get-env-inputs'
10
+
11
+ type Options = {
12
+ addLabels?: string[]
13
+ removeLabels?: string[]
14
+ ignoreIfAssigned?: boolean
15
+ ignoreIfLabeled?: boolean
16
+ issue_number?: number
17
+ owner?: string
18
+ repo?: string
19
+ }
20
+
21
+ // When this file is invoked directly from action as opposed to being imported
22
+ if (import.meta.url.endsWith(process.argv[1])) {
23
+ if (!process.env.GITHUB_TOKEN) {
24
+ throw new Error('You must set the GITHUB_TOKEN environment variable.')
25
+ }
26
+
27
+ const { ADD_LABELS, REMOVE_LABELS } = process.env
28
+
29
+ const octokit = github()
30
+
31
+ const opts: Options = {
32
+ ignoreIfAssigned: boolEnvVar('IGNORE_IF_ASSIGNED'),
33
+ ignoreIfLabeled: boolEnvVar('IGNORE_IF_LABELED'),
34
+ }
35
+
36
+ // labels come in comma separated from actions
37
+ if (typeof ADD_LABELS === 'string') {
38
+ opts.addLabels = [...ADD_LABELS.split(',')].map((l) => l.trim())
39
+ } else {
40
+ opts.addLabels = []
41
+ }
42
+ if (typeof REMOVE_LABELS === 'string') {
43
+ opts.removeLabels = [...REMOVE_LABELS.split(',')].map((l) => l.trim())
44
+ } else {
45
+ opts.removeLabels = []
46
+ }
47
+
48
+ const actionContext = getActionContext()
49
+ const { owner, repo } = actionContext
50
+ let issueOrPrNumber = actionContext?.pull_request?.number
51
+
52
+ if (!issueOrPrNumber) {
53
+ issueOrPrNumber = actionContext?.issue?.number
54
+ }
55
+
56
+ opts.issue_number = issueOrPrNumber
57
+ opts.owner = owner
58
+ opts.repo = repo
59
+
60
+ main(coreLib, octokit, opts)
61
+ }
62
+
63
+ /*
64
+ * Applies labels to an issue or pull request.
65
+ *
66
+ * opts:
67
+ * issue_number {number} id of the issue or pull request to label
68
+ * owner {string} owner of the repository
69
+ * repo {string} repository name
70
+ * addLabels {Array<string>} array of labels to apply
71
+ * removeLabels {Array<string>} array of labels to remove
72
+ * ignoreIfAssigned {boolean} don't apply labels if there are assignees
73
+ * ignoreIfLabeled {boolean} don't apply labels if there are already labels added
74
+ */
75
+ export default async function main(
76
+ core: typeof coreLib | CoreInject,
77
+ octokit: Octokit,
78
+ opts: Options = {},
79
+ ) {
80
+ if (opts.addLabels?.length === 0 && opts.removeLabels?.length === 0) {
81
+ core.info('No labels to add or remove specified, nothing to do.')
82
+ return
83
+ }
84
+
85
+ if (!opts.issue_number || !opts.owner || !opts.repo) {
86
+ throw new Error(`Missing required parameters ${JSON.stringify(opts)}`)
87
+ }
88
+ const issueOpts = {
89
+ issue_number: opts.issue_number,
90
+ owner: opts.owner,
91
+ repo: opts.repo,
92
+ }
93
+
94
+ if (opts.ignoreIfAssigned || opts.ignoreIfLabeled) {
95
+ try {
96
+ const { data } = await octokit.issues.get(issueOpts)
97
+
98
+ if (opts.ignoreIfAssigned) {
99
+ if (data.assignees?.length) {
100
+ core.info(
101
+ `ignore-if-assigned is true: not applying labels since there's ${data.assignees.length} assignees`,
102
+ )
103
+ return 0
104
+ }
105
+ }
106
+
107
+ if (opts.ignoreIfLabeled) {
108
+ if (data.labels.length > 0) {
109
+ core.info(
110
+ `ignore-if-labeled is true: not applying labels since there's ${data.labels.length} labels applied`,
111
+ )
112
+ return 0
113
+ }
114
+ }
115
+ } catch (err) {
116
+ throw new Error(`Error getting issue: ${err}`)
117
+ }
118
+ }
119
+
120
+ if (opts.removeLabels?.length) {
121
+ // removing a label fails if the label isn't already applied
122
+ let appliedLabels = []
123
+
124
+ try {
125
+ const { data } = await octokit.issues.get(issueOpts)
126
+ appliedLabels = data.labels.map((l) => (typeof l === 'string' ? l : l.name))
127
+ } catch (err) {
128
+ throw new Error(`Error getting issue: ${err}`)
129
+ }
130
+
131
+ opts.removeLabels = opts.removeLabels?.filter((l) => appliedLabels.includes(l))
132
+
133
+ await Promise.all(
134
+ opts.removeLabels.map(async (label) => {
135
+ try {
136
+ await octokit.issues.removeLabel({
137
+ ...issueOpts,
138
+ name: label,
139
+ })
140
+ } catch (err) {
141
+ throw new Error(`Error removing label: ${err}`)
142
+ }
143
+ }),
144
+ )
145
+
146
+ if (opts.removeLabels?.length) {
147
+ core.info(`Removed labels: ${opts.removeLabels.join(', ')}`)
148
+ }
149
+ }
150
+
151
+ if (opts.addLabels?.length) {
152
+ try {
153
+ await octokit.issues.addLabels({
154
+ ...issueOpts,
155
+ labels: opts.addLabels,
156
+ })
157
+
158
+ core.info(`Added labels: ${opts.addLabels.join(', ')}`)
159
+ } catch (err) {
160
+ throw new Error(`Error adding label: ${err}`)
161
+ }
162
+ }
163
+ }
.github/actions/node-npm-setup/action.yml ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Node set up composite
2
+
3
+ description: Will set up Node and install all packages by caching node_modules
4
+
5
+ runs:
6
+ using: 'composite'
7
+ steps:
8
+ - name: Cache node_modules
9
+ uses: actions/cache@v4
10
+ id: cache-node_modules
11
+ env:
12
+ # Default is 10 min, per segment, but we can make it much smaller
13
+ # because it's not the end of the world if the cache restore fails.
14
+ SEGMENT_DOWNLOAD_TIMEOUT_MINS: '1'
15
+ with:
16
+ path: node_modules
17
+ key: ${{ runner.os }}-node_modules-${{ hashFiles('package*.json') }}-${{ hashFiles('.github/actions/node-npm-setup/action.yml') }}
18
+
19
+ - name: Setup Node.js
20
+ uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
21
+ with:
22
+ node-version-file: 'package.json'
23
+ cache: npm
24
+
25
+ - name: Install dependencies
26
+ if: ${{ steps.cache-node_modules.outputs.cache-hit != 'true' }}
27
+ shell: bash
28
+ run: npm ci
.github/actions/precompute-pageinfo/action.yml ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Warmup pageinfo cache
2
+
3
+ description: Run this to create a .pageinfo-cache.json.br file
4
+
5
+ inputs:
6
+ restore-only:
7
+ description: Only attempt to restore, don't warm up
8
+ required: false
9
+
10
+ runs:
11
+ using: 'composite'
12
+ steps:
13
+ # The caching technique here is to "unboundedly" add to the cache.
14
+ # By unboundedly, it means the cached item will grow and grow.
15
+ # The general idea is that we A) restore from cache, B) replace the
16
+ # file by running the script, and C) save the file back to cache.
17
+ # Optionally, you can have it just do A (and not B and C).
18
+
19
+ - name: Cache .pageinfo-cache.json.br (restore)
20
+ uses: actions/cache/restore@v4
21
+ with:
22
+ path: .pageinfo-cache.json.br
23
+ key: pageinfo-cache-
24
+ restore-keys: pageinfo-cache-
25
+
26
+ # When we use this composite action from deployment workflows
27
+ # we don't have any Node installed or any of its packages. I.e. we never
28
+ # run `npm ci` in those actions. For security sake.
29
+ # So we can't do things that require Node code.
30
+ # Tests and others will omit the `restore-only` input, but
31
+ # prepping for Docker build and push, will set it to a non-empty
32
+ # string which basically means "If you can restore it, great.
33
+ # If not, that's fine, don't bother".
34
+ - name: Run script
35
+ if: ${{ inputs.restore-only == '' }}
36
+ shell: bash
37
+ run: npm run precompute-pageinfo -- --max-versions 2
38
+
39
+ - name: Cache .remotejson-cache (save)
40
+ if: ${{ inputs.restore-only == '' }}
41
+ uses: actions/cache/save@v4
42
+ with:
43
+ path: .pageinfo-cache.json.br
44
+ key: pageinfo-cache-${{ github.sha }}
.github/actions/retry-command/action.yml ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: 'Retry command'
2
+ description: 'Retries any command with configurable attempts and delay'
3
+ inputs:
4
+ command:
5
+ description: 'The command to retry'
6
+ required: true
7
+ max_attempts:
8
+ description: 'Maximum number of retry attempts'
9
+ required: false
10
+ default: '12'
11
+ delay:
12
+ description: 'Delay between attempts in seconds'
13
+ required: false
14
+ default: '30'
15
+
16
+ runs:
17
+ using: 'composite'
18
+ steps:
19
+ - name: Retry command
20
+ shell: bash
21
+ run: |
22
+ # Generic retry function: configurable attempts and delay
23
+ retry_command() {
24
+ local max_attempts=${{ inputs.max_attempts }}
25
+ local delay=${{ inputs.delay }}
26
+ local attempt=1
27
+ local command="${{ inputs.command }}"
28
+
29
+ while [ $attempt -le $max_attempts ]; do
30
+ echo "Attempt $attempt/$max_attempts: Running command..."
31
+ echo "Command: $command"
32
+ if eval "$command"; then
33
+ echo "Command succeeded on attempt $attempt"
34
+ return 0
35
+ else
36
+ echo "Attempt $attempt failed"
37
+ if [ $attempt -lt $max_attempts ]; then
38
+ echo "Waiting $delay seconds before retry..."
39
+ sleep $delay
40
+ fi
41
+ fi
42
+ attempt=$((attempt + 1))
43
+ done
44
+
45
+ echo "Command failed after $max_attempts attempts"
46
+ return 1
47
+ }
48
+
49
+ retry_command
.github/actions/setup-elasticsearch/action.yml ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # For the sake of saving time, only run this step if the test-group is one that will run tests against an Elasticsearch on localhost.
2
+ name: Set up local Elasticsearch
3
+
4
+ description: Install a local Elasticsearch with version that matches prod
5
+
6
+ inputs:
7
+ token:
8
+ description: PAT
9
+ required: true
10
+ elasticsearch_version:
11
+ description: Version of Elasticsearch to install
12
+ required: true
13
+ # Make sure the version matches production and is available on Docker Hub
14
+ default: '8.12.0'
15
+
16
+ runs:
17
+ using: 'composite'
18
+ steps:
19
+ # Cache the elasticsearch image to prevent Docker Hub rate limiting
20
+ - name: Cache Docker layers
21
+ id: cache-docker-layers
22
+ uses: actions/cache@v4
23
+ with:
24
+ path: /tmp/docker-cache
25
+ key: ${{ runner.os }}-elasticsearch-${{ inputs.elasticsearch_version }}
26
+ restore-keys: |
27
+ ${{ runner.os }}-elasticsearch-
28
+
29
+ - name: Load cached Docker image
30
+ shell: bash
31
+ if: steps.cache-docker-layers.outputs.cache-hit == 'true'
32
+ run: docker load -i /tmp/docker-cache/elasticsearch.tar || echo "No cache found for elasticsearch, pulling image"
33
+
34
+ - name: Pull Docker image
35
+ shell: bash
36
+ if: steps.cache-docker-layers.outputs.cache-hit != 'true'
37
+ run: docker pull elasticsearch:${{ inputs.elasticsearch_version }}
38
+
39
+ - name: Save Docker image to cache
40
+ shell: bash
41
+ if: steps.cache-docker-layers.outputs.cache-hit != 'true'
42
+ run: |
43
+ mkdir -p /tmp/docker-cache
44
+ docker save -o /tmp/docker-cache/elasticsearch.tar elasticsearch:${{ inputs.elasticsearch_version }}
45
+
46
+ # Setups the Elasticsearch container
47
+ # Derived from https://github.com/getong/elasticsearch-action
48
+ - name: Run Docker container
49
+ shell: bash
50
+ env:
51
+ INPUT_ELASTICSEARCH_VERSION: ${{ inputs.elasticsearch_version }}
52
+ INPUT_HOST_PORT: 9200
53
+ INPUT_CONTAINER_PORT: 9200
54
+ INPUT_HOST_NODE_PORT: 9300
55
+ INPUT_NODE_PORT: 9300
56
+ INPUT_DISCOVERY_TYPE: 'single-node'
57
+ run: |
58
+ docker network create elastic
59
+
60
+ docker run --network elastic \
61
+ -e 'node.name=es1' \
62
+ -e 'cluster.name=docker-elasticsearch' \
63
+ -e 'cluster.initial_master_nodes=es1' \
64
+ -e 'discovery.seed_hosts=es1' \
65
+ -e 'cluster.routing.allocation.disk.threshold_enabled=false' \
66
+ -e 'bootstrap.memory_lock=true' \
67
+ -e 'ES_JAVA_OPTS=-Xms1g -Xmx1g' \
68
+ -e 'xpack.security.enabled=false' \
69
+ -e 'xpack.license.self_generated.type=basic' \
70
+ --ulimit nofile=65536:65536 \
71
+ --ulimit memlock=-1:-1 \
72
+ --name='es1' \
73
+ -d \
74
+ -p $INPUT_HOST_PORT:$INPUT_CONTAINER_PORT \
75
+ -p $INPUT_HOST_NODE_PORT:$INPUT_NODE_PORT \
76
+ -e discovery_type=$INPUT_DISCOVERY_TYPE \
77
+ elasticsearch:$INPUT_ELASTICSEARCH_VERSION
78
+
79
+ # Check if Elasticsearch is up and running
80
+ for i in {1..120}; do
81
+ if curl --silent --fail http://localhost:9200; then
82
+ echo "Elasticsearch is up and running"
83
+ exit 0
84
+ fi
85
+ echo "Waiting for Elasticsearch to be ready..."
86
+ sleep 1
87
+ done
88
+ echo "Elasticsearch did not become ready in time"
89
+ exit 1
.github/actions/slack-alert/action.yml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Send Slack notification if workflow fails
2
+ description: Send Slack notification if workflow fails
3
+
4
+ inputs:
5
+ slack_channel_id:
6
+ description: Slack channel ID
7
+ required: true
8
+ slack_token:
9
+ description: Slack token
10
+ required: true
11
+ message:
12
+ description: The message to send to Slack
13
+ default: The last '${{ github.workflow }}' run failed. See ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
14
+ required: false
15
+ color:
16
+ description: The color of the Slack message
17
+ default: failure
18
+ required: false
19
+
20
+ runs:
21
+ using: composite
22
+ steps:
23
+ - name: Send Slack notification if workflow fails
24
+ uses: someimportantcompany/github-actions-slack-message@a975b440de2bcef178d451cc70d4c1161b5a30cd
25
+ with:
26
+ channel: ${{ inputs.slack_channel_id }}
27
+ bot-token: ${{ inputs.slack_token }}
28
+ color: ${{ inputs.color }}
29
+ text: ${{ inputs.message }}
.github/actions/warmup-remotejson-cache/action.yml ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Warmup getRemoteJSON's cache
2
+
3
+ description: Run the script that prepares the disk-cache for getRemoteJSON
4
+
5
+ inputs:
6
+ restore-only:
7
+ description: Only attempt to restore, don't warm up
8
+ required: false
9
+
10
+ runs:
11
+ using: 'composite'
12
+ steps:
13
+ # The caching technique here is to unboundedly add and add to the cache.
14
+ # You "wrap" the step that appends to disk and it will possibly retrieve
15
+ # some from the cache, then save it when it's got more in it.
16
+ - name: Cache .remotejson-cache (restore)
17
+ uses: actions/cache/restore@v4
18
+ with:
19
+ path: .remotejson-cache
20
+ key: remotejson-cache-
21
+ restore-keys: remotejson-cache-
22
+
23
+ # When we use this composite action from deployment workflows
24
+ # we don't have any Node installed or any of its packages. I.e. we never
25
+ # run `npm ci` in those actions. For security sake.
26
+ # So we can't do things that require Node code.
27
+ # Tests and others will omit the `restore-only` input, but
28
+ # prepping for Docker build and push, will set it to a non-empty
29
+ # string which basically means "If you can restore it, great.
30
+ # If not, that's fine, don't bother".
31
+ - name: Run script
32
+ if: ${{ inputs.restore-only == '' }}
33
+ shell: bash
34
+ run: npm run warmup-remotejson
35
+
36
+ - name: Cache .remotejson-cache (save)
37
+ if: ${{ inputs.restore-only == '' }}
38
+ uses: actions/cache/save@v4
39
+ with:
40
+ path: .remotejson-cache
41
+ key: remotejson-cache-${{ github.sha }}
.github/config.yml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Configuration for welcome - https://github.com/behaviorbot/welcome
2
+
3
+ # Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome
4
+ # Comment to be posted to on first time issues
5
+ newIssueWelcomeComment: >
6
+ Thanks for opening this issue. A GitHub docs team member should be by to give feedback soon. In the meantime, please check out the [contributing guidelines](https://docs.github.com/en/contributing).
7
+
8
+ # Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
9
+ # Comment to be posted to on PRs from first time contributors in your repository
10
+ newPRWelcomeComment: >
11
+ Thanks for opening this pull request! A GitHub docs team member should be by to give feedback soon. In the meantime, please check out the [contributing guidelines](https://docs.github.com/en/contributing).
.github/dependabot.yml ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: 2
2
+
3
+ registries:
4
+ ghcr: # Define access for a private registry
5
+ type: docker-registry
6
+ url: ghcr.io
7
+ username: PAT
8
+ password: ${{secrets.BASE_CONTAINER_IMAGE_READER_DEPENDABOT}}
9
+
10
+ updates:
11
+ - package-ecosystem: npm
12
+ directory: '/'
13
+ schedule:
14
+ interval: weekly
15
+ day: tuesday
16
+ ignore:
17
+ # Because this is so dependent on the remote server we use
18
+ - dependency-name: '@elastic/elasticsearch'
19
+ # Because whatever we have needs to match what @primer/react also uses
20
+ - dependency-name: 'styled-components'
21
+ - dependency-name: '*'
22
+ update-types:
23
+ ['version-update:semver-patch', 'version-update:semver-minor']
24
+
25
+ - package-ecosystem: 'github-actions'
26
+ directory: '/'
27
+ schedule:
28
+ interval: weekly
29
+ day: tuesday
30
+ ignore:
31
+ - dependency-name: '*'
32
+ update-types:
33
+ ['version-update:semver-patch', 'version-update:semver-minor']
34
+ - dependency-name: 'github/internal-actions'
35
+
36
+ - package-ecosystem: 'docker'
37
+ registries:
38
+ - ghcr
39
+ directory: '/'
40
+ schedule:
41
+ interval: daily
42
+ groups:
43
+ baseImages:
44
+ patterns:
45
+ - '*'
46
+ ignore:
47
+ - dependency-name: 'node' # Ignore Dockerfile.openapi_decorator
.github/instructions/all.instructions.md ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ applyTo: "**"
3
+ ---
4
+
5
+ # Copilot instructions for docs.github.com
6
+
7
+ This repository contains code to run the GitHub Docs site on docs.github.com, as well as the content that the site displays. We write the code in JavaScript and TypeScript, and we write the content primarily in Markdown.
8
+
9
+ ## Creating a pull request
10
+
11
+ When you create a pull request:
12
+
13
+ 1. **Always** make the first line of the PR description the following (in italics):
14
+
15
+ `_Copilot Chat generated this pull request._`
16
+
17
+ 2. Optionally, you may include a collapsed section summarizing the prompt or discussion with Copilot Chat:
18
+
19
+ ```markdown
20
+ <details><summary>Prompt summary - submitted by @GITHUB-USER-ID</summary>
21
+
22
+ > [Prompt summary text here]
23
+
24
+ </details>
25
+ ```
26
+
27
+ This helps reviewers understand the context and intent behind the automated changes.
28
+
29
+ 3. Label with "llm-generated".
30
+ 4. If an issue exists, include "fixes owner/repo#issue" or "towards owner/repo#issue" as appropriate.
31
+ 5. Always _escape backticks_ when you use gh cli.
.github/instructions/code.instructions.md ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ applyTo: "src/**,.github/**,config/**,.devcontainer/**,**Dockerfile,package*.json"
3
+ ---
4
+
5
+ # Copilot code instructions for docs.github.com
6
+
7
+ For code reviews, follow guidelines, tests, and validate instructions. For creating or updating pull requests or branches, follow the steps instructions.
8
+
9
+ ## Guidelines
10
+
11
+ - If available, use ripgrep (`rg`) instead of `grep`.
12
+ - Make sure to always _escape backticks_ when using gh cli.
13
+ - All scripts should be listed in `package.json` and use `tsx`.
14
+ - Whenever you create or comment on an issue or pull request, indicate you are an LLM.
15
+ - Be careful fetching full HTML pages off the internet. Prefer to use gh cli whenever possible for github.com. Limit the number of tokens when grabbing HTML.
16
+ - Avoid pull requests with over 300 lines of code changed. When significantly larger, offer to split up into smaller pull requests if possible.
17
+ - All new code should be written in TypeScript and not JavaScript.
18
+ - We use absolute imports, relative to the `src` directory, using the `@` symbol. For example, `getRedirect` which lives in `src/redirects/lib/get-redirect.ts` can be imported with `import getRedirect from '@/redirects/lib/get-redirect'`. The same rule applies for TypeScript (`.ts`) imports, e.g. `import type { GeneralSearchHit } from '@/search/types'`
19
+ - For updates to the content linter, read important information in `src/content-linter/README.md`.
20
+
21
+ ## Tests
22
+
23
+ We use `vitest` to write unit tests. Tests live in their own files in the `tests` subdirectory of a source (src) directory, e.g. `src/search/tests/api-ai-search.ts`. For integration tests, we can use the mock server in `src/tests/mocks/start-mock-server.ts` to mock external requests. For UI rendering tests, we use `playwright` and write tests in `src/fixtures/tests/playwright-rendering.spec.ts`
24
+
25
+ - `npm run test`: For all unit tests
26
+ - You can pass specific paths, e.g. `npm run test -- src/search/tests/ai-search-proxy`
27
+ - You can add `--silent=false` to include `console.log` debugging.
28
+ - `npm run build && npm run playwright-test -- playwright-rendering`: You need to build for changes outside of the test to be picked up. We use playwright for all rendering and end-to-end tests
29
+ - You can add `--ui` to keep open `localhost:4000` which can be viewed in a simple browser for debugging UI state.
30
+ - `npm run dev` to start the development server on `localhost:4000`.
31
+ - `ROOT=src/fixtures/fixtures TRANSLATIONS_FIXTURE_ROOT=src/fixtures/fixtures/translations vitest src/fixtures/tests` for tests that involve fixtures.
32
+
33
+ ## Validate
34
+
35
+ Run the following commands to validate your changes:
36
+
37
+ - `npm run tsc`
38
+ - `npm run build`
39
+ - `npm run prettier`
40
+ - `npm run lint`: you can include `-- --fix`
41
+
42
+ ## Steps
43
+
44
+ 0. Ask the human if they would like you to follow these steps.
45
+ 1. If this is new work, make sure you have the latest changes by running `git checkout main && git pull`. If this is existing work, update the branch you are working on with the head branch -- usually `main`.
46
+ 2. If the human provides a GitHub issue, use gh cli to read the issue and all comments.
47
+ 3. Begin by evaluating impact, effort, and estimate non-test lines of code that will change. Ask for more context and examples if needed.
48
+ 4. If you are running in agentic mode, _stop_ at this point and request approval from the human.
49
+ 5. If you need to add or change tests, work on tests before implementing.
50
+ 6. Implement the changes needed. If you are running in agentic mode, _stop_ and ask questions at decision points. Please list the options, pros and cons for each decision needed.
51
+ 7. Validate your changes before making any commits. See "Validate".
52
+ 8. Validate that any new or changed tests pass. See "Tests".
53
+ 9. Validate that these changes meet our guidelines. See "Guidelines".
54
+ 10. If you are running in agentic mode, _stop_ at this point and request review before continuing. Suggest how the human should review the changes.
55
+ 11. If a branch and pull request already exist, commit and push, then _concisely_ comment on the pull request that you are an LLM and what changes you made and why.
56
+ 12. If this is new work and no pull request exists yet, make a pull request:
57
+ - label "llm-generated"
58
+ - draft mode
59
+ - include "fixes owner/repo#issue" or "towards owner/repo#issue" as appropriate
60
+ 13. If you are in agentic mode, offer to wait for CI to run and check that it passes. If the human agrees, verify in CI: `sleep 240 && gh pr checks $number`. Address all failures, don't assume they're flakes.
61
+ 14. If you are in agentic mode, offer to do any or all of:
62
+ - mark the pull request as ready,
63
+ - assign the issue to the human if it is not already assigned,
64
+ - _concisely_ comment on the issue explaining the change, indicating you are an LLM.
.github/instructions/content.instructions.md ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ applyTo: "content/**,data/**,**/*.md"
3
+ ---
4
+
5
+ # Copilot content instructions for docs.github.com
6
+
7
+ **When to use**: Content editing, documentation writing, Markdown files
8
+ **Key indicators**: Changes to .md files, creating articles, updating documentation
9
+
10
+ ## Testing Content changes
11
+
12
+ Before committing content changes, always:
13
+
14
+ 1. **Use the content linter** to validate content: `npm run lint-content -- --paths <file-paths>`
15
+ 2. **Check for proper variable usage** in your content
16
+ 3. **Verify [AUTOTITLE] links** point to existing articles
17
+ 4. **Run tests** on changed content: `npm run test -- src/content-render/tests/render-changed-and-deleted-files.ts`
18
+
19
+ ## Bullet lists
20
+
21
+ The bulleted points in a bullet list should always be denoted in Markdown using an asterisk, not a hyphen.
22
+
23
+ ## Using variables
24
+
25
+ Within Markdown files, with the exception of the `title` field in the metadata at the start of a file, **always use the Liquid syntax variables rather than text** if a variable has been defined for that text. This ensures consistency and makes it easier to update product names globally.
26
+
27
+ **Important**: You must use variables in all content, including reusable content, data files, and regular articles. The only exceptions are the `title` field in frontmatter metadata and any file in the `content/site-policy` directory.
28
+
29
+ For example:
30
+
31
+ | Use this variable | Don't use this text | File where variable is defined |
32
+ | -------------------------------------------------------- | ------------------------ | -------------------------------- |
33
+ | `{% data variables.product.github %}` | GitHub | data/variables/product.yml |
34
+ | `{% data variables.product.prodname_ghe_server %}` | GitHub Enterprise Server | data/variables/product.yml |
35
+ | `{% data variables.product.prodname_copilot_short %}` | Copilot | data/variables/product.yml |
36
+ | `{% data variables.product.prodname_copilot %}` | GitHub Copilot | data/variables/product.yml |
37
+ | `{% data variables.copilot.copilot_code-review_short %}` | Copilot code review | data/variables/copilot.yml |
38
+ | `{% data variables.enterprise.prodname_managed_user %}` | managed user account | data/variables/enterprise.yml |
39
+ | `{% data variables.code-scanning.codeql_workflow %}` | CodeQL analysis workflow | data/variables/code-scanning.yml |
40
+
41
+ There are many more variables. We store these in various YAML files within the `data/variables` directory.
42
+
43
+ **How to find variables**: Check the `data/variables` directory for existing variables before writing hardcoded text. Common variable files include:
44
+
45
+ * `data/variables/product.yml` - Product names and variations
46
+ * `data/variables/copilot.yml` - Copilot-specific terms
47
+ * `data/variables/enterprise.yml` - Enterprise-specific terms
48
+ * `data/variables/code-scanning.yml` - Code scanning terms
49
+
50
+ ## Reusable text
51
+
52
+ Reusables are long strings of reusable text, such as paragraphs or procedural lists, that are referenced in multiple content files. This makes it easier for us to maintain content and ensure that it is accurate across all files where the content is needed.
53
+
54
+ Each reusable lives in its own Markdown file. The path and filename of each reusable determines what its path will be in the data object. For example, a file named `/data/reusables/foo/bar.md` will be accessible as `{% data reusables.foo.bar %}` in articles.
55
+
56
+ Examples where you should create a reusable:
57
+
58
+ * You are documenting a new feature for a public preview. You need to create a note to display in all new articles about the new feature. Create a new reusable for the note and use it in all articles where it is needed.
59
+ * You are documenting billing for a new feature and need to briefly mention how the feature is billed and link to content about billing in several articles. Create a new reusable with the brief mention and a link to the content on billing. Aim to use the reusable in all places where you want to mention billing for the feature.
60
+
61
+ ## Links to other articles
62
+
63
+ `[AUTOTITLE]` is the **only correct way** to specify the title of a linked article when that article is another page on the docs.github.com site.
64
+
65
+ You can replace the placeholder link text `[AUTOTITLE]` only when linking to an anchor in the same article or when linking to an anchor in another article and the actual article title would be confusing.
66
+
67
+ Never use the `{% link %}` Liquid tag for internal documentation links. The `[AUTOTITLE]` placeholder automatically pulls the correct title and ensures that links remain valid when titles change.
68
+
69
+ Examples:
70
+
71
+ * ✅ Correct: `For more information, see [AUTOTITLE](/copilot/using-github-copilot).`
72
+ * ❌ Incorrect: `For more information, see [Using GitHub Copilot](/copilot/using-github-copilot).`
73
+ * ❌ Incorrect: `For more information, see {% link /copilot/using-github-copilot %}.`
74
+
75
+ ## Parenthetical dashes
76
+
77
+ Where a sentence of normal body text contains a parenthetical dash, the dash should always be an em dash without spaces at either side. This rule does not apply to text within code blocks.
78
+
79
+ Examples:
80
+
81
+ * ✅ Correct: "The cat—which sat on a branch—smiled with a broad grin." (em dash without spaces)
82
+ * ❌ Incorrect: "The cat — which sat on a branch — smiled with a broad grin." (em dash with spaces)
83
+ * ❌ Incorrect: "The cat–which sat on a branch–smiled with a broad grin." (en dash without spaces)
84
+ * ❌ Incorrect: "The cat – which sat on a branch – smiled with a broad grin." (en dash with spaces)
85
+ * ❌ Incorrect: "The cat-which sat on a branch-smiled with a broad grin." (hyphen without spaces)
86
+ * ❌ Incorrect: "The cat - which sat on a branch - smiled with a broad grin." (hyphen with spaces)
.gitignore ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Test coverage reports
2
+ .coverage/
3
+
4
+ # macOS system files
5
+ .DS_Store
6
+
7
+ # Environment variables (contains secrets)
8
+ .env
9
+
10
+ # ESLint cache for faster linting
11
+ .eslintcache
12
+
13
+ # JetBrains IDE files
14
+ .idea/
15
+
16
+ # Tracks package-lock.json installation state
17
+ .installed.package-lock.json
18
+
19
+ # Linkinator full site link check results
20
+ .linkinator/
21
+
22
+ # Next.js build output
23
+ .next/
24
+
25
+ # Node.js version specification
26
+ .node-version
27
+
28
+ # Precomputed page info cache (brotli compressed)
29
+ .pageinfo-cache.json.br
30
+
31
+ # getRemoteJSON() disk cache for archived content
32
+ .remotejson-cache/
33
+
34
+ # VS Code workspace settings
35
+ .vscode/settings.json
36
+
37
+ # TypeScript incremental build info
38
+ *.tsbuildinfo
39
+
40
+ # Accidentally committed file that should be ignored
41
+ assets/images/help/writing/unordered-list-rendered (1).png
42
+
43
+ # Old broken link checker output
44
+ blc_output.log
45
+
46
+ # Old internal broken link checker output
47
+ blc_output_internal.log
48
+
49
+ # Old broken links report
50
+ broken_links.md
51
+
52
+ # Directories from the docs-early-access repo. Used for symlinks in local docs-internal checkouts. Don't add trailing slashes.
53
+ content/early-access
54
+ data/early-access
55
+ assets/images/early-access
56
+
57
+ # Test coverage reports
58
+ coverage/
59
+
60
+ # Cloned for Elasticsearch indexing data
61
+ docs-internal-data/
62
+
63
+ # External link checker cache database
64
+ external-link-checker-db.json
65
+
66
+ # Historical redirects cache (legacy)
67
+ lib/redirects/.redirects-cache*.json
68
+
69
+ # Script execution logs
70
+ logs/
71
+
72
+ # GitHub Models API descriptions
73
+ models-gateway/
74
+
75
+ # Next.js TypeScript environment definitions
76
+ next-env.d.ts
77
+
78
+ # Node.js dependencies
79
+ node_modules/
80
+
81
+ # Background process output
82
+ nohup.out
83
+
84
+ # NPM debug logs
85
+ npm-debug.log
86
+
87
+ # Playwright test reports
88
+ playwright-report/
89
+
90
+ # Playwright browser cache
91
+ playwright/.cache/
92
+
93
+ # REST API OpenAPI descriptions
94
+ rest-api-description/
95
+
96
+ # CodeQL CLI documentation source
97
+ semmle-code/
98
+
99
+ # Development table of contents static HTML files
100
+ src/dev-toc/static/
101
+
102
+ # Playwright test result artifacts
103
+ test-results/
104
+
105
+ # Temporary data files
106
+ tmp/
107
+
108
+ # Localized content from translation repositories
109
+ translations/
.npmrc ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ # For 15-25% faster npm install
2
+ # https://www.peterbe.com/plog/benchmarking-npm-install-with-or-without-audit
3
+ # Also we have Dependabot alerts configured in the GitHub repo.
4
+ audit=false
.nvmrc ADDED
File without changes
.prettierignore ADDED
@@ -0,0 +1 @@
 
 
1
+ data/release-notes/
.vscode/extensions.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
3
+ // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
4
+
5
+ // List of extensions which should be recommended for users of this workspace.
6
+ "recommendations": [
7
+
8
+ ],
9
+ // List of extensions recommended by VS Code that should not be recommended for users of this workspace.
10
+ "unwantedRecommendations": [
11
+ "ms-vscode-remote.remote-containers"
12
+ ]
13
+ }
.vscode/launch.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "type": "node",
6
+ "request": "attach",
7
+ "name": "Node: Nodemon",
8
+ "processId": "${command:PickProcess}",
9
+ "restart": true,
10
+ "protocol": "inspector",
11
+ },
12
+ ]
13
+ }
.vscode/open-reusable-1.3.0.vsix ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:12d7230533b07f81fd985e4e88d3b7e5967f020d37f9f056db554648724909fc
3
+ size 241331
CHANGELOG.md ADDED
@@ -0,0 +1,555 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Docs changelog
2
+
3
+ **5 December 2025**
4
+
5
+ We added documentation for the new Code generation tab, which is part of Copilot usage metrics. The docs now describe how to view code generation insights across your enterprise, compare user-initiated and agent-initiated behavior, and understand differences across models, languages, and modes. We also updated related conceptual and reference content for consistency and scannability. See [Viewing the code generation dashboard](https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-enterprise/view-code-generation).
6
+
7
+ <hr>
8
+
9
+ **2 December 2025**
10
+
11
+ You can now share Copilot Spaces publicly. See [Collaborating with others using GitHub Copilot Spaces](https://docs.github.com/en/copilot/how-tos/provide-context/use-copilot-spaces/collaborate-with-others#sharing-spaces).
12
+
13
+ You can also now add files to a Copilot Space directly from the code view on GitHub, so you don't need to break your flow when building context for your space. See [Creating GitHub Copilot Spaces](https://docs.github.com/en/copilot/how-tos/provide-context/use-copilot-spaces/create-copilot-spaces#adding-context-as-youre-working).
14
+
15
+ <hr>
16
+
17
+ **25 November 2025**
18
+
19
+ We've added details of files that are excluded from Copilot code reviews.
20
+
21
+ See [About GitHub Copilot code review](https://docs.github.com/copilot/concepts/agents/code-review#excluded-files).
22
+
23
+ <hr>
24
+
25
+ **24 November 2025**
26
+
27
+ We've added a new tutorial on burning down technical debt in a project:
28
+
29
+ [Using GitHub Copilot to reduce technical debt](https://docs.github.com/en/copilot/tutorials/reduce-technical-debt)
30
+
31
+ The addition of this tutorial was prompted by a presentation by Brittany Ellich at this year's GitHub Universe conference: [Tackling your tech debt with Copilot coding agent](https://www.youtube.com/watch?v=LafpndhNC_E), and is based on a GitHub community post by Akash Sharma: [Stop Letting Technical Debt Slow You Down](https://github.com/orgs/community/discussions/178975).
32
+
33
+ <hr>
34
+
35
+ **13 November 2025**
36
+
37
+ We've published a new tutorial on [using custom instructions for Copilot code review](https://docs.github.com/copilot/tutorials/use-custom-instructions). In this tutorial you'll learn how to write effective custom instructions that help Copilot provide more relevant and actionable code reviews.
38
+
39
+ <hr>
40
+
41
+ **31 October 2025**
42
+
43
+ A large amount of new information was added to the GitHub documentation website to coincide with the GitHub Universe 2025 conference. Here are links to some of the new and updated articles.
44
+
45
+ **_New articles_**
46
+
47
+ GitHub Copilot documentation:
48
+ * [Setting up a dedicated enterprise for GitHub Copilot Business](https://docs.github.com/copilot/how-tos/set-up/set-up-a-dedicated-enterprise-for-copilot-business)
49
+ * [About Copilot integrations](https://docs.github.com/copilot/concepts/tools/about-copilot-integrations)
50
+ * [Integrating Copilot coding agent with Linear](https://docs.github.com/copilot/how-tos/use-copilot-agents/coding-agent/integrate-coding-agent-with-linear)
51
+ * [Integrating Copilot coding agent with Slack](https://docs.github.com/copilot/how-tos/use-copilot-agents/coding-agent/integrate-coding-agent-with-slack)
52
+ * [Changing your MCP registry in your IDE](https://docs.github.com/copilot/how-tos/provide-context/use-mcp/change-mcp-registry)
53
+ * [GitHub Copilot usage metrics](https://docs.github.com/copilot/concepts/copilot-metrics)
54
+ * [Viewing the Copilot usage metrics dashboard](https://docs.github.com/copilot/how-tos/administer-copilot/manage-for-enterprise/view-usage-and-adoption)
55
+ * [Data available in Copilot usage metrics](https://docs.github.com/copilot/reference/copilot-usage-metrics/copilot-usage-metrics)
56
+ * [Interpreting usage and adoption metrics for GitHub Copilot](https://docs.github.com/copilot/reference/copilot-usage-metrics/interpret-copilot-metrics)
57
+ * [Reconciling Copilot usage metrics across dashboards, APIs, and reports](https://docs.github.com/copilot/reference/copilot-usage-metrics/reconciling-usage-metrics)
58
+ * [Tracking license activation and initial usage with Copilot usage metrics](https://docs.github.com/copilot/tutorials/roll-out-at-scale/assign-licenses/track-usage-and-adoption)
59
+ * [Lines of Code metrics](https://docs.github.com/copilot/reference/copilot-usage-metrics/lines-of-code-metrics)
60
+ * [Measuring the success of a GitHub Copilot trial](https://docs.github.com/copilot/tutorials/roll-out-at-scale/measure-success)
61
+ * [About custom agents](https://docs.github.com/copilot/concepts/agents/coding-agent/about-custom-agents)
62
+ * [Creating custom agents](https://docs.github.com/copilot/how-tos/use-copilot-agents/coding-agent/create-custom-agents)
63
+ * [Custom agents configuration](https://docs.github.com/copilot/reference/custom-agents-configuration)
64
+ * [Custom agents: Bug fix teammate](https://docs.github.com/copilot/tutorials/customization-library/custom-agents/bug-fix-teammate)
65
+ * [Custom agents: Cleanup specialist](https://docs.github.com/copilot/tutorials/customization-library/custom-agents/cleanup-specialist)
66
+ * [Custom agents: Implementation planner](https://docs.github.com/copilot/tutorials/customization-library/custom-agents/implementation-planner)
67
+ * [Your first custom agent](https://docs.github.com/copilot/tutorials/customization-library/custom-agents/your-first-custom-agent)
68
+ * [Agent management for enterprises](https://docs.github.com/copilot/concepts/agents/enterprise-management)
69
+ * [Monitoring agentic activity in your enterprise](https://docs.github.com/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/monitor-agentic-activity)
70
+ * [Preparing to use custom agents in your enterprise](https://docs.github.com/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/prepare-for-custom-agents)
71
+ * [Preparing to use custom agents in your organization](https://docs.github.com/copilot/how-tos/administer-copilot/manage-for-organization/prepare-for-custom-agents)
72
+ * [Audit log events for agents](https://docs.github.com/copilot/reference/agentic-audit-log-events)
73
+ * [About agent management](https://docs.github.com/copilot/concepts/agents/coding-agent/agent-management)
74
+ * [Managing Copilot coding agents](https://docs.github.com/copilot/how-tos/use-copilot-agents/manage-agents)
75
+ * [OpenAI Codex](https://docs.github.com/copilot/concepts/agents/openai-codex)
76
+
77
+ Security and code quality documentation:
78
+ * [Enabling extended metadata checks for your repository](https://docs.github.com/code-security/secret-scanning/enabling-secret-scanning-features/enabling-extended-metadata-checks-for-your-repository)
79
+ * [About GitHub Code Quality](https://docs.github.com/code-security/code-quality/concepts/about-code-quality)
80
+ * [Quickstart for GitHub Code Quality](https://docs.github.com/code-security/code-quality/get-started/quickstart)
81
+ * [Allowing use of GitHub Code Quality in your enterprise](https://docs.github.com/code-security/code-quality/how-tos/allow-in-enterprise)
82
+ * [Enabling GitHub Code Quality](https://docs.github.com/code-security/code-quality/how-tos/enable-code-quality)
83
+ * [Interpreting the code quality results for your repository](https://docs.github.com/code-security/code-quality/how-tos/interpret-results)
84
+ * [Setting code quality thresholds for pull requests](https://docs.github.com/code-security/code-quality/how-tos/set-pr-thresholds)
85
+ * [Resolving a block on your pull request](https://docs.github.com/code-security/code-quality/how-tos/unblock-your-pr)
86
+ * [CodeQL detection of code quality problems](https://docs.github.com/code-security/code-quality/reference/codeql-detection)
87
+ * [Metrics and ratings reference](https://docs.github.com/code-security/code-quality/reference/metrics-and-ratings)
88
+ * [Responsible use of GitHub Code Quality](https://docs.github.com/code-security/code-quality/responsible-use/code-quality)
89
+ * [Fixing code quality findings before merging your pull request](https://docs.github.com/code-security/code-quality/tutorials/fix-findings-in-prs)
90
+ * [Improving the quality of recently merged code with AI](https://docs.github.com/code-security/code-quality/tutorials/improve-recent-merges)
91
+ * [Improving the quality of your repository's code](https://docs.github.com/code-security/code-quality/tutorials/improve-your-codebase)
92
+
93
+ GitHub integrations:
94
+ * [Customizing notifications for GitHub in Slack](https://docs.github.com/integrations/how-tos/slack/customize-notifications)
95
+ * [Integrating GitHub with Slack](https://docs.github.com/integrations/how-tos/slack/integrate-github-with-slack)
96
+ * [Using GitHub in Slack](https://docs.github.com/integrations/how-tos/slack/use-github-in-slack)
97
+ * [Permissions for GitHub in Slack](https://docs.github.com/integrations/reference/slack-permissions)
98
+ * [Creating issues with the GitHub integration in Slack](https://docs.github.com/integrations/tutorials/slack/create-issues)
99
+ * [Managing issues with the GitHub integration in Slack](https://docs.github.com/integrations/tutorials/slack/manage-issues)
100
+
101
+ GitHub Actions:
102
+ * [Using custom images](https://docs.github.com/actions/how-tos/manage-runners/larger-runners/use-custom-images)
103
+ * [Using proxy servers with a runner](https://docs.github.com/actions/how-tos/manage-runners/use-proxy-servers)
104
+
105
+ Enterprise administrator documentation:
106
+ * [Custom properties](https://docs.github.com/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/custom-properties)
107
+ * [Managing custom properties for organizations](https://docs.github.com/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/managing-custom-properties-for-organizations)
108
+ * [Controlling user offboarding with the unaffiliated users policy](https://docs.github.com/admin/enforcing-policies/enforcing-policies-for-your-enterprise/control-offboarding)
109
+
110
+ Enterprise onboarding:
111
+ * [Adding users to your enterprise](https://docs.github.com/enterprise-onboarding/getting-started-with-your-enterprise/adding-users-to-your-enterprise)
112
+ * [Creating enterprise apps](https://docs.github.com/enterprise-onboarding/github-apps/create-enterprise-apps)
113
+ * [Installing enterprise apps](https://docs.github.com/enterprise-onboarding/github-apps/install-enterprise-apps)
114
+ * [About enterprise policies](https://docs.github.com/enterprise-onboarding/govern-people-and-repositories/about-enterprise-policies)
115
+ * [Creating custom properties for repositories in your enterprise](https://docs.github.com/enterprise-onboarding/govern-people-and-repositories/create-custom-properties)
116
+ * [Defining policies for repositories in your enterprise](https://docs.github.com/enterprise-onboarding/govern-people-and-repositories/create-repository-policies)
117
+ * [Protecting branches in your enterprise with rulesets](https://docs.github.com/enterprise-onboarding/govern-people-and-repositories/protect-branches)
118
+ * [Using the audit log for your enterprise](https://docs.github.com/enterprise-onboarding/govern-people-and-repositories/using-the-audit-log-for-your-enterprise)
119
+ * [About roles in an enterprise](https://docs.github.com/enterprise-onboarding/setting-up-organizations-and-teams/about-roles-in-an-enterprise)
120
+ * [About teams in an enterprise](https://docs.github.com/enterprise-onboarding/setting-up-organizations-and-teams/about-teams-in-an-enterprise)
121
+ * [Assigning roles to teams and users](https://docs.github.com/enterprise-onboarding/setting-up-organizations-and-teams/assigning-roles-to-teams-and-users)
122
+ * [Best practices for organizing work in your enterprise](https://docs.github.com/enterprise-onboarding/setting-up-organizations-and-teams/best-practices)
123
+ * [Creating custom roles](https://docs.github.com/enterprise-onboarding/setting-up-organizations-and-teams/creating-custom-roles)
124
+ * [Identifying the roles required by your enterprise](https://docs.github.com/enterprise-onboarding/setting-up-organizations-and-teams/identify-role-requirements)
125
+
126
+ Billing documentation:
127
+ * [GitHub Code Quality billing](https://docs.github.com/billing/concepts/product-billing/github-code-quality)
128
+
129
+ **_Updated articles_**
130
+
131
+ This is just a very small selection of the articles that were updated for Universe 2025.
132
+
133
+ * [About GitHub Copilot code review](https://docs.github.com/copilot/concepts/agents/code-review) - new conceptual information.
134
+ * [Fixing alerts in a security campaign](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign) - new information on assigning alerts to Copilot coding agent.
135
+ * [Resolving code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts) - new information on assigning alerts to Copilot coding agent.
136
+ * [Available rules for rulesets](https://docs.github.com/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets) - new information on blocking force pushes.
137
+ * [GitHub-hosted runners reference](https://docs.github.com/actions/reference/runners/github-hosted-runners) - new information about single-CPU Actions runners.
138
+ * [Events that trigger workflows](https://docs.github.com/actions/reference/workflows-and-actions/events-that-trigger-workflows) - details of `image_version_ready` event added.
139
+ * [Enforcing policies for GitHub Actions in your enterprise](https://docs.github.com/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise) - details about custom images added.
140
+ * [Model Context Protocol (MCP) and GitHub Copilot coding agent](https://docs.github.com/copilot/concepts/agents/coding-agent/mcp-and-coding-agent) - new information about MCP servers for custom agents.
141
+ * [Best practices for using GitHub Copilot to work on tasks](https://docs.github.com/copilot/tutorials/coding-agent/get-the-best-results) - new information about creating custom agents.
142
+ * [Quickstart for your personal dashboard](https://docs.github.com/account-and-profile/get-started/personal-dashboard-quickstart) - added a section on working with Copilot from your personal dashboard.
143
+ * [Personal dashboard](https://docs.github.com/account-and-profile/reference/personal-dashboard) - added a section on the home dashboard view.
144
+ * [Using GitHub Copilot CLI](https://docs.github.com/copilot/how-tos/use-copilot-agents/use-copilot-cli) - new information on delegating tasks to Copilot coding agent.
145
+
146
+ <hr>
147
+
148
+ **24 October 2025**
149
+
150
+ To support the enterprise roles and teams public preview, we:
151
+
152
+ * Created a new concepts category in the [enterprise admin](https://docs.github.com/en/enterprise-cloud@latest/admin) docs aimed at onboarding administrators, including new articles on roles and teams in an enterprise.
153
+ * Built a user journey for setting up roles, teams, and apps to simplify administration, starting with [Identifying the roles required by your enterprise](https://docs.github.com/en/enterprise-cloud@latest/admin/managing-accounts-and-repositories/managing-roles-in-your-enterprise/identify-role-requirements).
154
+ * Published how-to content on [creating custom roles](https://docs.github.com/en/enterprise-cloud@latest/admin/managing-accounts-and-repositories/managing-roles-in-your-enterprise/create-custom-roles), [creating enterprise teams](https://docs.github.com/en/enterprise-cloud@latest/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/create-enterprise-teams), and [assigning roles](https://docs.github.com/en/enterprise-cloud@latest/admin/managing-accounts-and-repositories/managing-roles-in-your-enterprise/assign-roles).
155
+ * Communicated new conceptual frameworks and best practices for enterprise accounts, including [Best practices for organizing work in your enterprise](https://docs.github.com/en/enterprise-cloud@latest/admin/concepts/best-practices) and [Enterprise accounts](https://docs.github.com/en/enterprise-cloud@latest/admin/concepts/enterprise-fundamentals/enterprise-accounts).
156
+
157
+ <hr>
158
+
159
+ **17 October 2025**
160
+
161
+ We have updated the [Account and profile](https://docs.github.com/en/account-and-profile) and [Subscriptions and notifications](https://docs.github.com/en/subscriptions-and-notifications) docs for improved usability, scannability, and information architecture.
162
+
163
+ To support accomplishing tasks without context switching or sifting through unrelated content, articles are now organized by content type and focused on jobs-to-be-done. Additionally, related information is now linked from content type to content type.
164
+
165
+ <hr>
166
+
167
+ **14 October 2025**
168
+
169
+ We've added a new tutorial about how to [Review AI-generated code](https://docs.github.com/en/copilot/tutorials/review-ai-generated-code). The article gives techniques to verify and validate AI-generated code, and also suggests how Copilot can help with reviews.
170
+
171
+ <hr>
172
+
173
+ **13 October 2025**
174
+
175
+ To help large enterprises keep their automations secure and consistent across many organizations, we published [Automating app installations in your enterprise's organizations](https://docs.github.com/en/enterprise-cloud@latest/admin/managing-github-apps-for-your-enterprise/automate-installations). This is one of the most requested features from customer feedback.
176
+
177
+ The tutorial shows how to manage installations and run automations using enterprise-owned apps and the new apps installation API. Security-conscious enterprises will see that Apps maximize security by providing short-lived, minimally scoped tokens at every stage.
178
+
179
+
180
+
181
+ <hr>
182
+
183
+ **1 October 2025**
184
+
185
+ We’ve updated the Spark documentation to support the launch for Copilot Enterprise users, making it easier to understand and enable Spark:
186
+
187
+ * Conceptual article: [About GitHub Spark](https://docs.github.com/en/copilot/concepts/spark#enterprise-considerations) now includes enterprise considerations (governance, billing, infrastructure, and benefits).
188
+ * How-to: [Managing GitHub Spark in your enterprise](https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-spark) is streamlined to prerequisites and enablement steps, with links to related policies.
189
+
190
+ <hr>
191
+
192
+ **29 September 2025**
193
+
194
+ Claude Sonnet 4.5 has been released as a Public Preview. At the time of launch, it will be available on the following platforms:
195
+
196
+ - **Copilot Chat**
197
+ - Released for GitHub.com, VS Code, GitHub Mobile
198
+ - With: Copilot Pro, Pro+, Business, and Enterprise
199
+ - **Copilot Coding Agent**
200
+ - With: Copilot Pro, and Copilot Pro+
201
+ - **Copilot CLI**
202
+ - With: Copilot Pro, Pro+, Business, and Enterprise
203
+
204
+ The following articles have been updated:
205
+
206
+ - [About GitHub Copilot coding agent](https://docs.github.com/en/copilot/concepts/agents/coding-agent/about-coding-agent)
207
+ - [Supported AI models in GitHub Copilot](https://docs.github.com/en/copilot/reference/ai-models/supported-models)
208
+ - [Hosting of models for GitHub Copilot Chat](https://docs.github.com/en/copilot/reference/ai-models/model-hosting)
209
+ - [AI model comparison](https://docs.github.com/en/copilot/reference/ai-models/model-comparison)
210
+ - [About GitHub Copilot CLI](https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli)
211
+
212
+ <hr>
213
+
214
+ **26 September 2025**
215
+
216
+ To coincide with additional functionality for Copilot coding agent being added to the GitHub Mobile app, we've updated the following articles:
217
+
218
+ * [Using GitHub Copilot to work on an issue](https://docs.github.com/copilot/how-tos/use-copilot-agents/coding-agent/assign-copilot-to-an-issue#assigning-an-issue-to-copilot-on-github-mobile)
219
+ * [Tracking GitHub Copilot's sessions](https://docs.github.com/copilot/how-tos/use-copilot-agents/coding-agent/track-copilot-sessions#tracking-sessions-from-github-mobile)
220
+ * [Asking GitHub Copilot to create a pull request](https://docs.github.com/copilot/how-tos/use-copilot-agents/coding-agent/create-a-pr#asking-copilot-to-create-a-pull-request-from-github-mobile)
221
+
222
+ <hr>
223
+
224
+ **25 September 2025**
225
+
226
+ GitHub Copilot CLI has been released as a public preview. It allows you to use Copilot directly from your terminal. You can use it to answer questions, write and debug code, and interact with GitHub.com. For example, you can ask Copilot to make some changes to a project and create a pull request.
227
+
228
+ GitHub Copilot CLI gives you quick access to a powerful AI agent, without having to leave your terminal. It can help you complete tasks more quickly by working on your behalf, and you can work iteratively with GitHub Copilot CLI to build the code you need.
229
+
230
+ See:
231
+
232
+ * [About GitHub Copilot CLI](https://docs.github.com/copilot/concepts/agents/about-copilot-cli)
233
+ * [Using GitHub Copilot CLI](https://docs.github.com/copilot/how-tos/use-copilot-agents/use-copilot-cli)
234
+
235
+ <hr>
236
+
237
+ **25 September 2025**
238
+
239
+ We've updated the documentation for the GA release of [Copilot Spaces](https://github.com/copilot/spaces). Spaces allow you to organize and centralize content and resources in order to ground Copilot Chat's responses in that context and share knowledge across teams. You can now also access Copilot Spaces in your IDE via the GitHub MCP server.
240
+
241
+ See the updated docs:
242
+ * [About organizing and sharing context with GitHub Copilot Spaces](https://docs.github.com/copilot/concepts/context/spaces)
243
+ * [Creating GitHub Copilot Spaces](https://docs.github.com/copilot/how-tos/provide-context/use-copilot-spaces/create-copilot-spaces)
244
+ * [Using GitHub Copilot Spaces](https://docs.github.com/copilot/how-tos/provide-context/use-copilot-spaces/use-copilot-spaces)
245
+
246
+ <hr>
247
+
248
+ **24 September 2025**
249
+
250
+ Until now, assigning Copilot coding agent to an issue was limited to the same repository as the issue.
251
+
252
+ You can now:
253
+
254
+ * Assign Copilot coding agent to work in a different repository, supporting workflows where issues and code files are managed separately.
255
+ * Provide additional instructions to tailor the agent's output to your requirements.
256
+ * Choose the base branch for the agent to use.
257
+
258
+ These changes provide a more flexible, transparent, and user-friendly experience for managing automated coding tasks with Copilot coding agent.
259
+
260
+ See the updated docs: [Using GitHub Copilot to work on an issue](https://docs.github.com/copilot/how-tos/use-copilot-agents/coding-agent/assign-copilot-to-an-issue#assigning-an-issue-to-copilot).
261
+
262
+ <hr>
263
+
264
+ **23 September 2025**
265
+
266
+ We've added new documentation for Spark that answers some common customer questions, helps customers troubleshoot known issues, and guides users on the best ways to prompt and provide context to Spark.
267
+
268
+ See:
269
+ - [About GitHub Spark](https://docs.github.com/copilot/concepts/spark)
270
+ - [Troubleshooting common issues with GitHub Spark](https://docs.github.com/copilot/how-tos/troubleshoot-copilot/troubleshoot-spark)
271
+ - [Write effective prompts and provide useful context for Spark](https://docs.github.com/copilot/tutorials/spark/prompt-tips)
272
+
273
+ <hr>
274
+
275
+ **17 September 2025**
276
+
277
+ We've added information about the GitHub MCP Registry, and guidance on how to use it in VS Code.
278
+
279
+ See [About the GitHub MCP Registry](https://docs.github.com/copilot/concepts/context/mcp#about-the-github-mcp-registry) and [Using the GitHub MCP Registry](https://docs.github.com/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp#using-the-github-mcp-registry).
280
+
281
+ <hr>
282
+
283
+ **17 September 2025**
284
+
285
+ We've added documentation for expanded features for reusing workflow configurations in GitHub Actions.
286
+
287
+ You can now use YAML anchors and aliases to reuse pieces of content in a workflow. See [YAML anchors and aliases](https://docs.github.com/actions/concepts/workflows-and-actions/reusing-workflow-configurations#yaml-anchors-and-aliases).
288
+
289
+ To keep the content focused on users' job-to-be-done, we simplified the procedures for [creating workflow templates for your organization](https://docs.github.com/actions/how-tos/reuse-automations/create-workflow-templates). In addition, we updated reference documentation for workflow templates with details on permissions, repository visibility rules, rules for the metadata file, and examples. See [Workflow templates](https://docs.github.com/actions/reference/workflows-and-actions/reusing-workflow-configurations#workflow-templates).
290
+
291
+ <hr>
292
+
293
+ **17 September 2025**
294
+
295
+ You can now publish your Spark app as "read-only."
296
+
297
+ By default, data stored in Spark is shared across all users of the app. You can choose to publish your app as "read-only" if you want to showcase your app to others, but you don't want others to be able to edit or delete any stored data.
298
+
299
+ We've updated the [Spark documentation](https://docs.github.com/copilot/tutorials/build-apps-with-spark) accordingly.
300
+
301
+ <hr>
302
+
303
+ **15 September 2025**
304
+
305
+ We've updated the documentation for Copilot code review to clarify model usage for code review.
306
+
307
+ See [Responsible use of GitHub Copilot code review](https://docs.github.com/copilot/responsible-use/code-review#model-usage).
308
+
309
+ <hr>
310
+
311
+ **11 September 2025**
312
+
313
+ Copilot Chat in VS Code includes a "Manage models" option which allows you to add models from a variety of LLM providers, such as Azure, Anthropic, Google, and xAI. By installing the AI Toolkit for VS Code, you can install even more models from the "Manage models" option. We've updated the documentation to include details of how to use this new feature.
314
+
315
+ See [Changing the AI model for GitHub Copilot Chat](https://docs.github.com/copilot/how-tos/use-ai-models/change-the-chat-model?tool=vscode).
316
+
317
+ <hr>
318
+
319
+ **11 September 2025**
320
+
321
+ You can now enable automatic Copilot code review with its own standalone repository rule. We've updated the documentation accordingly.
322
+
323
+ See [Configuring automatic code review by GitHub Copilot](https://docs.github.com/copilot/how-tos/use-copilot-agents/request-a-code-review/configure-automatic-review).
324
+
325
+ <hr>
326
+
327
+ **8 September 2025**
328
+
329
+ We've added a tutorial on planning a project with GitHub Copilot, including creating issues and sub-issues: [Planning a project with GitHub Copilot](https://docs.github.com/copilot/tutorials/plan-a-project). This tutorial provides step-by-step instructions on leveraging Copilot to plan a project from scratch.
330
+
331
+ Additionally, we've updated [Using GitHub Copilot to create issues](https://docs.github.com/copilot/how-tos/use-copilot-for-common-tasks/use-copilot-to-create-issues) with instructions to create sub-issues and to work with existing issues.
332
+
333
+ <hr>
334
+
335
+ **4 September 2025**
336
+
337
+ We've updated the documentation to remove references to Copilot coding guidelines.
338
+
339
+ Coding guidelines, which were previously deprecated, have now been removed as a way of customizing Copilot responses. You should now use Copilot custom instructions.
340
+
341
+ See: [Configure custom instructions for GitHub Copilot](https://docs.github.com/copilot/how-tos/configure-custom-instructions)
342
+
343
+ <hr>
344
+
345
+ **4 September 2025**
346
+
347
+ In addition to repository-wide custom instructions, specified in the `.github/copilot-instructions.md` file, Copilot Code Review now supports:
348
+
349
+ * Path-specific custom instructions, specified in `.github/instructions/**/NAME.instructions.md` files.
350
+ * Custom instructions specified in the organization settings for Copilot.
351
+
352
+ We have updated several articles in the GitHub documentation accordingly. We have also made changes to clarify the difference between the various types of custom instructions for Copilot Code Review, Copilot Chat, and Copilot Coding Agent.
353
+
354
+ For example, see: [Adding repository custom instructions for GitHub Copilot](https://docs.github.com/copilot/how-tos/configure-custom-instructions/add-repository-instructions?tool=webui).
355
+
356
+ <hr>
357
+
358
+ **3 September 2025**
359
+
360
+ We’ve updated [Choosing your enterprise’s plan for GitHub Copilot](https://docs.github.com/copilot/get-started/choose-enterprise-plan) to better highlight the long-term benefits of the Copilot Enterprise (CE) plan. The updated content focuses on the key advantages of CE, such as increased access to premium requests and earlier availability of new models.
361
+
362
+ <hr>
363
+
364
+ **2 September 2025**
365
+
366
+ We've added documentation for support of Copilot code review in Xcode.
367
+
368
+ See: [Using GitHub Copilot code review](https://docs.github.com/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review?tool=xcode)
369
+
370
+ <hr>
371
+
372
+ **2 September 2025**
373
+
374
+ We've published a new customization library for GitHub Copilot: a curated collection of examples you can copy, adjust, and use to enhance your experience with Copilot. This library is designed to inspire and educate people on the options available to customize Copilot responses.
375
+
376
+ We've included examples of custom instructions (widely supported) and prompt files (supported in VS Code only). The examples cover scenarios such as debugging, onboarding, and accessibility. We look forward to adding more examples over time.
377
+
378
+ See: [Customization library](https://docs.github.com/copilot/tutorials/customization-library).
379
+
380
+ <hr>
381
+
382
+ **28 August 2025**
383
+
384
+ We've published an article about the new AI-powered issue intake tool, which automates incoming issue analysis and triage for OS maintainers.
385
+
386
+ See: [Triaging an issue with AI](https://docs.github.com/issues/tracking-your-work-with-issues/administering-issues/triaging-an-issue-with-ai).
387
+
388
+ <hr>
389
+
390
+ **26 August 2025**
391
+
392
+ xAI Grok Code Fast 1 is now available in public preview for GitHub Copilot. Grok Code Fast 1 is slowly rolling out to all paid Copilot plans and you will be able to access the model in Visual Studio Code (Agent, Ask, and Edit modes).
393
+
394
+ See: [Supported AI models in GitHub Copilot](https://docs.github.com/copilot/reference/ai-models/supported-models).
395
+
396
+ <hr>
397
+
398
+ **15 August 2025**
399
+
400
+ When interacting with the GitHub MCP server for a public repository, push protection blocks secrets from appearing in AI-generated responses and also prevents secrets from being included in any actions you perform, such as creating an issue.
401
+
402
+ See [Working with push protection and the GitHub MCP server](https://docs.github.com/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-and-the-github-mcp-server).
403
+
404
+ <hr>
405
+
406
+ **12 August 2025**
407
+
408
+ OpenAI GPT-5 is now available in public preview for GitHub Copilot. GPT-5 is slowly rolling out to all paid Copilot plans and you will be able to access the model in GitHub Copilot Chat on github.com and Visual Studio Code (Agent, Ask, and Edit modes).
409
+
410
+ See [Supported AI models in Copilot](https://docs.github.com/copilot/reference/ai-models/supported-models).
411
+
412
+ <hr>
413
+
414
+ **12 August 2025**
415
+
416
+ We’ve updated the documentation for Copilot repository custom instructions to go with the release that now brings this feature to the Eclipse IDE.
417
+
418
+ See: [Adding repository custom instructions for GitHub Copilot](https://docs.github.com/copilot/how-tos/configure-custom-instructions/add-repository-instructions?tool=eclipse) and [About customizing GitHub Copilot Chat responses](https://docs.github.com/copilot/concepts/response-customization?tool=eclipse).
419
+
420
+ <hr>
421
+
422
+ **12 August 2025**
423
+
424
+ We have added a tutorial for using Copilot to create Mermaid diagrams at [Creating Diagrams](https://docs.github.com/copilot/tutorials/copilot-chat-cookbook/communicate-effectively/creating-diagrams).
425
+
426
+ <hr>
427
+
428
+ **4 August 2025**
429
+
430
+ To address common pain points that developers face when remediating a leaked secret, we created a new article, "[Remediating a leaked secret](https://docs.github.com/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/remediating-a-leaked-secret)".
431
+
432
+ The new guide incorporates cross-platform GitHub tools, as well as opinionated guidance from GitHub's secret scanning team, to walk the developer through a thorough remediation process.
433
+
434
+ It also clearly communicates the risks of leaked secrets, the challenges of remediation, and the value of enabling [GitHub Secret Protection](https://docs.github.com/get-started/learning-about-github/about-github-advanced-security#github-secret-protection).
435
+
436
+ <hr>
437
+
438
+ **28 July 2025**
439
+
440
+ We have restructured the general "[Billing and payments](https://docs.github.com/billing)" articles to align with the Copilot and Actions docs. In addition, we've combined a few old "About" articles to directly answer common questions that new users have: [How GitHub billing works](https://docs.github.com/billing/get-started/how-billing-works) and [Introduction to billing and licensing](https://docs.github.com/billing/get-started/introduction-to-billing).
441
+
442
+ <hr>
443
+
444
+ **16 July 2025**
445
+
446
+ We've added documentation describing how to use the GraphQL API to create a new issue and, in the same request, assign the issue to Copilot coding agent.
447
+
448
+ See: [Using Copilot to work on an issue](https://docs.github.com/copilot/how-tos/agents/copilot-coding-agent/using-copilot-to-work-on-an-issue#assigning-an-issue-to-copilot-via-the-github-api).
449
+
450
+ <hr>
451
+
452
+ **16 July 2025**
453
+
454
+ We've updated the Copilot documentation to coincide with the release of an improved user interface for configuring the firewall for Copilot coding agent.
455
+
456
+ See: [Customizing or disabling the firewall for Copilot coding agent](https://docs.github.com/copilot/how-tos/agents/copilot-coding-agent/customizing-or-disabling-the-firewall-for-copilot-coding-agent).
457
+
458
+ <hr>
459
+
460
+ **16 July 2025**
461
+
462
+ We've updated the Copilot docs to coincide with the release of issue form support for Copilot Chat. When you use Copilot Chat to create an issue, an issue form will be used if there's an appropriate one in the repo. Previously only issue templates were supported.
463
+
464
+ See [Using GitHub Copilot to create issues](https://docs.github.com/copilot/how-tos/github-flow/using-github-copilot-to-create-issues).
465
+
466
+ <hr>
467
+
468
+ **30 June 2025**
469
+
470
+ Many enterprise customers want to measure the downstream impact of Copilot on their company, looking beyond leading metrics like adoption and usage.
471
+
472
+ Inspired by [GitHub's latest guidance](https://resources.github.com/engineering-system-success-playbook/), we've published three guides that provide usecases, training resources, and metrics to help you plan and measure your rollout to achieve real-world goals, such as increasing test coverage.
473
+
474
+ Get started at [Achieving your company's engineering goals with GitHub Copilot](https://docs.github.com/copilot/get-started/achieve-engineering-goals).
475
+
476
+ <hr>
477
+
478
+ **27 June 2025**
479
+
480
+ We've published a new guide about how to combine use of GitHub Copilot's agent mode with Model Context Protocol (MCP) servers to complete complex tasks through agentic "loops" - illustrated through an accessibility compliance example. The guide also discusses best practices and benefits around using these two features together. See [Enhancing Copilot agent mode with MCP](https://docs.github.com/copilot/tutorials/enhancing-copilot-agent-mode-with-mcp).
481
+
482
+ <hr>
483
+
484
+ **27 June 2025**
485
+
486
+ We’ve published a new set of new documentation articles designed to help users make the most of the **Dependabot metrics page** in the organization’s security overview.
487
+
488
+ These clear, actionable guides help users:
489
+
490
+ - **[View metrics for Dependabot alerts](https://docs.github.com/enterprise-cloud@latest/code-security/security-overview/viewing-metrics-for-dependabot-alerts)**
491
+ This article is aimed at security and engineering leads who want to learn how to access and interpret key metrics, so they can quickly assess their organization’s exposure and remediation progress.
492
+
493
+ - **[Understand your organization’s exposure to vulnerable dependencies](https://docs.github.com/enterprise-cloud@latest/code-security/securing-your-organization/understanding-your-organizations-exposure-to-vulnerabilites/about-your-exposure-to-vulnerable-dependencies)**
494
+ In this article, security analysts and compliance teams get a deep dive into how vulnerable dependencies are tracked and what these numbers mean for their risk landscape.
495
+
496
+ - **[Prioritize Dependabot alerts using metrics](https://docs.github.com/enterprise-cloud@latest/code-security/securing-your-organization/understanding-your-organizations-exposure-to-vulnerabilites/prioritizing-dependabot-alerts-using-metrics)**
497
+ This guide provides engineering managers and remediation teams with strategies for using metrics to focus the team’s efforts where they matter most, making remediation more efficient.
498
+
499
+ <hr>
500
+
501
+ **27 June 2025**
502
+
503
+ We've published a new scenario-based guide for Copilot: [Learning a new programming language with GitHub Copilot](https://docs.github.com/copilot/tutorials/learning-a-new-programming-language-with-github-copilot).
504
+
505
+ This guide is for developers who are proficient with at least one programming language and want to learn an additional language. It provides information about how you can use Copilot as your personalized learning assistant. It also provides many ready-made prompts that you can use when you are learning a new programming language.
506
+
507
+ <hr>
508
+
509
+ **25 June 2025**
510
+
511
+ GitHub Models launched [Pay-As-You-Go billing and Bring Your Own Key support](https://github.blog/changelog/2025-06-24-github-models-now-supports-moving-beyond-free-limits/). This provides real production usage for the first time and lays the foundation for Models to scale beyond a free sandbox.
512
+
513
+ See [About Billing for GitHub Models](https://docs.github.com/billing/managing-billing-for-your-products/about-billing-for-github-models) and [Using your own API keys in GitHub Models](https://docs.github.com/github-models/github-models-at-scale/set-up-custom-model-integration-models-byok).
514
+
515
+ <hr>
516
+
517
+ **23 June 2025**
518
+
519
+ We’ve restructured our documentation around Copilot’s AI models to make it easier for users to understand, choose, and configure models across clients and plans. See [Supported AI models in Copilot](https://docs.github.com/copilot/using-github-copilot/ai-models/supported-ai-models-in-copilot) and [Choosing the right AI model for your task](https://docs.github.com/copilot/reference/ai-models/model-comparison).
520
+
521
+ <hr>
522
+
523
+ **18 June 2025**
524
+
525
+ We've published a new responsible AI article for Copilot: [Responsible use of GitHub Copilot code completion](https://docs.github.com/copilot/responsible-use-of-github-copilot-features/responsible-use-of-github-copilot-code-completion). This provides RAI transparency information for this feature of GitHub Copilot.
526
+
527
+ <hr>
528
+
529
+ **13 June 2025**
530
+
531
+ We've published a new article for people learning to code: [Developing your project locally](https://docs.github.com/get-started/learning-to-code/developing-your-project-locally).
532
+
533
+ This tutorial helps learners gain core skills needed to set up any project locally by working through an example client-side application using HTML, CSS, and JavaScript. The goal is to help new coders use GitHub tools to recognize patterns across different technologies and build confidence in their ability to set up any project locally.
534
+
535
+ <hr>
536
+
537
+ **13 June 2025**
538
+
539
+ To manage System for Cross-domain Identity Management (SCIM) integration with confidence, customers need to understand the different types of deprovisioning, the actions that trigger them, and their options for reinstating deprovisioned users.
540
+
541
+ We've published a new article to answer questions around suspending and reinstating Enterprise Managed Users, or users where SCIM is enabled on GitHub Enterprise Server: [Deprovisioning and reinstating users with SCIM](https://docs.github.com/enterprise-cloud@latest/admin/managing-iam/provisioning-user-accounts-with-scim/deprovisioning-and-reinstating-users).
542
+
543
+ <hr>
544
+
545
+ **11 June 2025**
546
+
547
+ We've added a new scenario-based guide for the Builder persona: [Using Copilot to explore a codebase](https://docs.github.com/copilot/tutorials/using-copilot-to-explore-a-codebase).
548
+
549
+ <hr>
550
+
551
+ **24 April 2025**
552
+
553
+ To help learners feel confident they are building real coding skills while using Copilot, we published [Setting up Copilot for learning to code](https://docs.github.com/get-started/learning-to-code/setting-up-copilot-for-learning-to-code).
554
+
555
+ This article helps learners take their first steps in coding with Copilot acting as a tutor, rather than a code completion tool. Configuring Copilot for learning emphasizes skill development and gives learners a way to use Copilot as a daily tool to foster learning and coding independence.
CONTRIBUTING_AR.md ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # دليل المساهمة في توثيق GitHub
2
+
3
+ أهلاً بك! يسعدنا اهتمامك بالمساهمة في توثيق GitHub. هذا المشروع مفتوح المصدر ويهدف إلى توفير أفضل تجربة تعليمية لمستخدمي GitHub حول العالم.
4
+
5
+ ## كيف يمكنك المساهمة؟
6
+
7
+ يمكنك المساهمة بعدة طرق، منها:
8
+ 1. **تحسين المحتوى الحالي**: تصحيح الأخطاء الإملائية أو النحوية، أو تحديث المعلومات القديمة.
9
+ 2. **إضافة توثيق جديد**: إذا وجدت ميزة غير مغطاة بشكل كافٍ.
10
+ 3. **الترجمة**: المساعدة في ترجمة المحتوى إلى اللغة العربية.
11
+
12
+ ## خطوات المساهمة
13
+
14
+ 1. قم بعمل **Fork** للمستودع.
15
+ 2. أنشئ فرعاً جديداً لمساهمتك (`git checkout -b feature/amazing-feature`).
16
+ 3. قم بإجراء التغييرات اللازمة.
17
+ 4. تأكد من أن التغييرات تتبع معايير التنسيق المستخدمة.
18
+ 5. قم بعمل **Commit** لتغييراتك (`git commit -m 'إضافة ميزة جديدة'`).
19
+ 6. قم برفع التغييرات إلى فرعك (`git push origin feature/amazing-feature`).
20
+ 7. افتح **Pull Request** للمراجعة.
21
+
22
+ ## معايير المحتوى
23
+
24
+ - استخدم لغة عربية فصيحة وواضحة.
25
+ - حافظ على المصطلحات التقنية المتعارف عليها أو قدم ترجمة دقيقة لها.
26
+ - تأكد من أن جميع الروابط تعمل بشكل صحيح.
27
+
28
+ نشكرك على مساهمتك في جعل توثيق GitHub أفضل للجميع!
Dockerfile ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This Dockerfile is used solely for production deployments to Moda
2
+ # For building this file locally, see src/deployments/production/README.md
3
+ # Environment variables are set in the Moda configuration:
4
+ # config/moda/configuration/*/env.yaml
5
+
6
+ # ---------------------------------------------------------------
7
+ # BASE STAGE: Install linux dependencies and set up the node user
8
+ # ---------------------------------------------------------------
9
+ # To update the sha:
10
+ # 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:20251119-090131-gb27dc275c AS base
12
+
13
+ # Install curl for Node install and determining the early access branch
14
+ # Install git for cloning docs-early-access & translations repos
15
+ # Install Node.js latest LTS
16
+ # https://github.com/nodejs/release#release-schedule
17
+ # Ubuntu's apt-get install nodejs is _very_ outdated
18
+ # Must run as root
19
+ RUN apt-get -qq update && apt-get -qq install --no-install-recommends curl git \
20
+ && curl -sL https://deb.nodesource.com/setup_24.x | bash - \
21
+ && apt-get install -y nodejs \
22
+ && node --version
23
+
24
+ # Create the node user and home directory
25
+ ARG APP_HOME="/home/node/app" # Define in base so all child stages inherit it
26
+ RUN useradd -ms /bin/bash node \
27
+ && mkdir -p $APP_HOME && chown -R node:node $APP_HOME
28
+
29
+ # -----------------------------------------------------------------
30
+ # CLONES STAGE: Clone docs-internal, early-access, and translations
31
+ # -----------------------------------------------------------------
32
+ FROM base AS clones
33
+ USER node:node
34
+ WORKDIR $APP_HOME
35
+
36
+ # We need to copy over content that will be merged with early-access
37
+ COPY --chown=node:node content content/
38
+ COPY --chown=node:node assets assets/
39
+ COPY --chown=node:node data data/
40
+
41
+ # Copy in build scripts and make them executable
42
+ COPY --chown=node:node --chmod=+x \
43
+ src/deployments/production/build-scripts/*.sh build-scripts/
44
+
45
+ # Use the mounted --secret to:
46
+ # - 1. Fetch the docs-internal repo
47
+ # - 2. Fetch the docs-early-access repo & override docs-internal with early access content
48
+ # - 3. Fetch each translations repo to the repo/translations directory
49
+ # We use --mount-type=secret to avoid the secret being copied into the image layers for security
50
+ # The secret passed via --secret can only be used in this RUN command
51
+ RUN --mount=type=secret,id=DOCS_BOT_PAT_BASE,mode=0444 \
52
+ # We don't cache because Docker can't know if we need to fetch new content from remote repos
53
+ echo "Don't cache this step by printing date: $(date)" && \
54
+ . ./build-scripts/fetch-repos.sh
55
+
56
+ # ------------------------------------------------
57
+ # PROD_DEPS STAGE: Install production dependencies
58
+ # ------------------------------------------------
59
+ FROM base AS prod_deps
60
+ USER node:node
61
+ WORKDIR $APP_HOME
62
+
63
+ # Copy what is needed to run npm ci
64
+ COPY --chown=node:node package.json package-lock.json ./
65
+
66
+ # Install only production dependencies (skip scripts to avoid husky)
67
+ RUN npm ci --omit=dev --ignore-scripts --registry https://registry.npmjs.org/
68
+
69
+ # ------------------------------------------------------------
70
+ # ALL_DEPS STAGE: Install all dependencies on top of prod deps
71
+ # ------------------------------------------------------------
72
+ FROM prod_deps AS all_deps
73
+
74
+ # Install dev dependencies on top of production ones
75
+ RUN npm ci --registry https://registry.npmjs.org/
76
+
77
+ # ----------------------------------
78
+ # BUILD STAGE: Build the application
79
+ # ----------------------------------
80
+ FROM base AS build
81
+ USER node:node
82
+ WORKDIR $APP_HOME
83
+
84
+ # Source code
85
+ COPY --chown=node:node src src/
86
+ COPY --chown=node:node package.json ./
87
+ COPY --chown=node:node next.config.ts ./
88
+ COPY --chown=node:node tsconfig.json ./
89
+
90
+ # From the clones stage
91
+ COPY --chown=node:node --from=clones $APP_HOME/data data/
92
+ COPY --chown=node:node --from=clones $APP_HOME/assets assets/
93
+ COPY --chown=node:node --from=clones $APP_HOME/content content/
94
+ COPY --chown=node:node --from=clones $APP_HOME/translations translations/
95
+
96
+ # From the all_deps stage (need dev deps for build)
97
+ COPY --chown=node:node --from=all_deps $APP_HOME/node_modules node_modules/
98
+
99
+ # Build the application
100
+ RUN npm run build
101
+
102
+ # ---------------------------------------------
103
+ # WARMUP_CACHE STAGE: Warm up remote JSON cache
104
+ # ---------------------------------------------
105
+ FROM build AS warmup_cache
106
+
107
+ # Generate remote JSON cache
108
+ RUN npm run warmup-remotejson
109
+
110
+ # --------------------------------------
111
+ # PRECOMPUTE STAGE: Precompute page info
112
+ # --------------------------------------
113
+ FROM build AS precompute_stage
114
+
115
+ # Generate precomputed page info
116
+ RUN npm run precompute-pageinfo -- --max-versions 2
117
+
118
+ # -------------------------------------------------
119
+ # PRODUCTION STAGE: What will run on the containers
120
+ # -------------------------------------------------
121
+ FROM base AS production
122
+ USER node:node
123
+ WORKDIR $APP_HOME
124
+
125
+ # Source code
126
+ COPY --chown=node:node src src/
127
+ COPY --chown=node:node package.json ./
128
+ COPY --chown=node:node next.config.ts ./
129
+ COPY --chown=node:node tsconfig.json ./
130
+
131
+ # From clones stage
132
+ COPY --chown=node:node --from=clones $APP_HOME/data data/
133
+ COPY --chown=node:node --from=clones $APP_HOME/assets assets/
134
+ COPY --chown=node:node --from=clones $APP_HOME/content content/
135
+ COPY --chown=node:node --from=clones $APP_HOME/translations translations/
136
+
137
+ # From prod_deps stage (production-only node_modules)
138
+ COPY --chown=node:node --from=prod_deps $APP_HOME/node_modules node_modules/
139
+
140
+ # From build stage
141
+ COPY --chown=node:node --from=build $APP_HOME/.next .next/
142
+
143
+ # From warmup_cache stage
144
+ COPY --chown=node:node --from=warmup_cache $APP_HOME/.remotejson-cache ./
145
+
146
+ # From precompute_stage
147
+ COPY --chown=node:node --from=precompute_stage $APP_HOME/.pageinfo-cache.json.br* ./
148
+
149
+ # This makes it possible to set `--build-arg BUILD_SHA=abc123`
150
+ # and it then becomes available as an environment variable in the docker run.
151
+ ARG BUILD_SHA
152
+ ENV BUILD_SHA=$BUILD_SHA
153
+
154
+ # Entrypoint to start the server
155
+ CMD ["node_modules/.bin/tsx", "src/frame/server.ts"]
Dockerfile.openapi_decorator ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:24-alpine
2
+
3
+ WORKDIR /openapi-check
4
+
5
+ RUN chown node:node /openapi-check -R
6
+
7
+ USER node
8
+
9
+ COPY --chown=node:node package.json /openapi-check
10
+ COPY --chown=node:node package-lock.json /openapi-check
11
+ COPY --chown=node:node tsconfig.json /openapi-check
12
+ ADD --chown=node:node src /openapi-check/src
13
+ ADD --chown=node:node content /openapi-check/content
14
+ ADD --chown=node:node data /openapi-check/data
15
+
16
+ RUN npm ci -D
17
+
18
+ ENTRYPOINT ["npx", "tsx", "/openapi-check/src/rest/scripts/openapi-check.ts"]
LICENSE ADDED
@@ -0,0 +1,386 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Attribution 4.0 International
2
+
3
+ =======================================================================
4
+
5
+ Creative Commons Corporation ("Creative Commons") is not a law firm and
6
+ does not provide legal services or legal advice. Distribution of
7
+ Creative Commons public licenses does not create a lawyer-client or
8
+ other relationship. Creative Commons makes its licenses and related
9
+ information available on an "as-is" basis. Creative Commons gives no
10
+ warranties regarding its licenses, any material licensed under their
11
+ terms and conditions, or any related information. Creative Commons
12
+ disclaims all liability for damages resulting from their use to the
13
+ fullest extent possible.
14
+
15
+ Using Creative Commons Public Licenses
16
+
17
+ Creative Commons public licenses provide a standard set of terms and
18
+ conditions that creators and other rights holders may use to share
19
+ original works of authorship and other material subject to copyright
20
+ and certain other rights specified in the public license below. The
21
+ following considerations are for informational purposes only, are not
22
+ exhaustive, and do not form part of our licenses.
23
+
24
+ Considerations for licensors: Our public licenses are
25
+ intended for use by those authorized to give the public
26
+ permission to use material in ways otherwise restricted by
27
+ copyright and certain other rights. Our licenses are
28
+ irrevocable. Licensors should read and understand the terms
29
+ and conditions of the license they choose before applying it.
30
+ Licensors should also secure all rights necessary before
31
+ applying our licenses so that the public can reuse the
32
+ material as expected. Licensors should clearly mark any
33
+ material not subject to the license. This includes other CC-
34
+ licensed material, or material used under an exception or
35
+ limitation to copyright. More considerations for licensors:
36
+ wiki.creativecommons.org/Considerations_for_licensors
37
+
38
+ Considerations for the public: By using one of our public
39
+ licenses, a licensor grants the public permission to use the
40
+ licensed material under specified terms and conditions. If
41
+ the licensor's permission is not necessary for any reason--for
42
+ example, because of any applicable exception or limitation to
43
+ copyright--then that use is not regulated by the license. Our
44
+ licenses grant only permissions under copyright and certain
45
+ other rights that a licensor has authority to grant. Use of
46
+ the licensed material may still be restricted for other
47
+ reasons, including because others have copyright or other
48
+ rights in the material. A licensor may make special requests,
49
+ such as asking that all changes be marked or described.
50
+ Although not required by our licenses, you are encouraged to
51
+ respect those requests where reasonable. More considerations
52
+ for the public:
53
+ wiki.creativecommons.org/Considerations_for_licensees
54
+
55
+ =======================================================================
56
+
57
+ Creative Commons Attribution 4.0 International Public License
58
+
59
+ By exercising the Licensed Rights (defined below), You accept and agree
60
+ to be bound by the terms and conditions of this Creative Commons
61
+ Attribution 4.0 International Public License ("Public License"). To the
62
+ extent this Public License may be interpreted as a contract, You are
63
+ granted the Licensed Rights in consideration of Your acceptance of
64
+ these terms and conditions, and the Licensor grants You such rights in
65
+ consideration of benefits the Licensor receives from making the
66
+ Licensed Material available under these terms and conditions.
67
+
68
+ Section 1 -- Definitions.
69
+
70
+ a. Adapted Material means material subject to Copyright and Similar
71
+ Rights that is derived from or based upon the Licensed Material
72
+ and in which the Licensed Material is translated, altered,
73
+ arranged, transformed, or otherwise modified in a manner requiring
74
+ permission under the Copyright and Similar Rights held by the
75
+ Licensor. For purposes of this Public License, where the Licensed
76
+ Material is a musical work, performance, or sound recording,
77
+ Adapted Material is always produced where the Licensed Material is
78
+ synched in timed relation with a moving image.
79
+
80
+ b. Adapter's License means the license You apply to Your Copyright
81
+ and Similar Rights in Your contributions to Adapted Material in
82
+ accordance with the terms and conditions of this Public License.
83
+
84
+ c. Copyright and Similar Rights means copyright and/or similar rights
85
+ closely related to copyright including, without limitation,
86
+ performance, broadcast, sound recording, and Sui Generis Database
87
+ Rights, without regard to how the rights are labeled or
88
+ categorized. For purposes of this Public License, the rights
89
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
90
+ Rights.
91
+
92
+ d. Effective Technological Measures means those measures that, in the
93
+ absence of proper authority, may not be circumvented under laws
94
+ fulfilling obligations under Article 11 of the WIPO Copyright
95
+ Treaty adopted on December 20, 1996, and/or similar international
96
+ agreements.
97
+
98
+ e. Exceptions and Limitations means fair use, fair dealing, and/or
99
+ any other exception or limitation to Copyright and Similar Rights
100
+ that applies to Your use of the Licensed Material.
101
+
102
+ f. Licensed Material means the artistic or literary work, database,
103
+ or other material to which the Licensor applied this Public
104
+ License.
105
+
106
+ g. Licensed Rights means the rights granted to You subject to the
107
+ terms and conditions of this Public License, which are limited to
108
+ all Copyright and Similar Rights that apply to Your use of the
109
+ Licensed Material and that the Licensor has authority to license.
110
+
111
+ h. Licensor means the individual(s) or entity(ies) granting rights
112
+ under this Public License.
113
+
114
+ i. Share means to provide material to the public by any means or
115
+ process that requires permission under the Licensed Rights, such
116
+ as reproduction, public display, public performance, distribution,
117
+ dissemination, communication, or importation, and to make material
118
+ available to the public including in ways that members of the
119
+ public may access the material from a place and at a time
120
+ individually chosen by them.
121
+
122
+ j. Sui Generis Database Rights means rights other than copyright
123
+ resulting from Directive 96/9/EC of the European Parliament and of
124
+ the Council of 11 March 1996 on the legal protection of databases,
125
+ as amended and/or succeeded, as well as other essentially
126
+ equivalent rights anywhere in the world.
127
+
128
+ k. You means the individual or entity exercising the Licensed Rights
129
+ under this Public License. Your has a corresponding meaning.
130
+
131
+ Section 2 -- Scope.
132
+
133
+ a. License grant.
134
+
135
+ 1. Subject to the terms and conditions of this Public License,
136
+ the Licensor hereby grants You a worldwide, royalty-free,
137
+ non-sublicensable, non-exclusive, irrevocable license to
138
+ exercise the Licensed Rights in the Licensed Material to:
139
+
140
+ a. reproduce and Share the Licensed Material, in whole or
141
+ in part; and
142
+
143
+ b. produce, reproduce, and Share Adapted Material.
144
+
145
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
146
+ Exceptions and Limitations apply to Your use, this Public
147
+ License does not apply, and You do not need to comply with
148
+ its terms and conditions.
149
+
150
+ 3. Term. The term of this Public License is specified in Section
151
+ 6(a).
152
+
153
+ 4. Media and formats; technical modifications allowed. The
154
+ Licensor authorizes You to exercise the Licensed Rights in
155
+ all media and formats whether now known or hereafter created,
156
+ and to make technical modifications necessary to do so. The
157
+ Licensor waives and/or agrees not to assert any right or
158
+ authority to forbid You from making technical modifications
159
+ necessary to exercise the Licensed Rights, including
160
+ technical modifications necessary to circumvent Effective
161
+ Technological Measures. For purposes of this Public License,
162
+ simply making modifications authorized by this Section 2(a)
163
+ (4) never produces Adapted Material.
164
+
165
+ 5. Downstream recipients.
166
+
167
+ a. Offer from the Licensor -- Licensed Material. Every
168
+ recipient of the Licensed Material automatically
169
+ receives an offer from the Licensor to exercise the
170
+ Licensed Rights under the terms and conditions of this
171
+ Public License.
172
+
173
+ b. No downstream restrictions. You may not offer or impose
174
+ any additional or different terms or conditions on, or
175
+ apply any Effective Technological Measures to, the
176
+ Licensed Material if doing so restricts exercise of the
177
+ Licensed Rights by any recipient of the Licensed
178
+ Material.
179
+
180
+ 6. No endorsement. Nothing in this Public License constitutes or
181
+ may be construed as permission to assert or imply that You
182
+ are, or that Your use of the Licensed Material is, connected
183
+ with, or sponsored, endorsed, or granted official status by,
184
+ the Licensor or others designated to receive attribution as
185
+ provided in Section 3(a)(1)(A)(i).
186
+
187
+ b. Other rights.
188
+
189
+ 1. Moral rights, such as the right of integrity, are not
190
+ licensed under this Public License, nor are publicity,
191
+ privacy, and/or other similar personality rights; however, to
192
+ the extent possible, the Licensor waives and/or agrees not to
193
+ assert any such rights held by the Licensor to the limited
194
+ extent necessary to allow You to exercise the Licensed
195
+ Rights, but not otherwise.
196
+
197
+ 2. Patent and trademark rights are not licensed under this
198
+ Public License.
199
+
200
+ 3. To the extent possible, the Licensor waives any right to
201
+ collect royalties from You for the exercise of the Licensed
202
+ Rights, whether directly or through a collecting society
203
+ under any voluntary or waivable statutory or compulsory
204
+ licensing scheme. In all other cases the Licensor expressly
205
+ reserves any right to collect such royalties.
206
+
207
+ Section 3 -- License Conditions.
208
+
209
+ Your exercise of the Licensed Rights is expressly made subject to the
210
+ following conditions.
211
+
212
+ a. Attribution.
213
+
214
+ 1. If You Share the Licensed Material (including in modified
215
+ form), You must:
216
+
217
+ a. retain the following if it is supplied by the Licensor
218
+ with the Licensed Material:
219
+
220
+ i. identification of the creator(s) of the Licensed
221
+ Material and any others designated to receive
222
+ attribution, in any reasonable manner requested by
223
+ the Licensor (including by pseudonym if
224
+ designated);
225
+
226
+ ii. a copyright notice;
227
+
228
+ iii. a notice that refers to this Public License;
229
+
230
+ iv. a notice that refers to the disclaimer of
231
+ warranties;
232
+
233
+ v. a URI or hyperlink to the Licensed Material to the
234
+ extent reasonably practicable;
235
+
236
+ b. indicate if You modified the Licensed Material and
237
+ retain an indication of any previous modifications; and
238
+
239
+ c. indicate the Licensed Material is licensed under this
240
+ Public License, and include the text of, or the URI or
241
+ hyperlink to, this Public License.
242
+
243
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
244
+ reasonable manner based on the medium, means, and context in
245
+ which You Share the Licensed Material. For example, it may be
246
+ reasonable to satisfy the conditions by providing a URI or
247
+ hyperlink to a resource that includes the required
248
+ information.
249
+
250
+ 3. If requested by the Licensor, You must remove any of the
251
+ information required by Section 3(a)(1)(A) to the extent
252
+ reasonably practicable.
253
+
254
+ 4. If You Share Adapted Material You produce, the Adapter's
255
+ License You apply must not prevent recipients of the Adapted
256
+ Material from complying with this Public License.
257
+
258
+ Section 4 -- Sui Generis Database Rights.
259
+
260
+ Where the Licensed Rights include Sui Generis Database Rights that
261
+ apply to Your use of the Licensed Material:
262
+
263
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
264
+ to extract, reuse, reproduce, and Share all or a substantial
265
+ portion of the contents of the database;
266
+
267
+ b. if You include all or a substantial portion of the database
268
+ contents in a database in which You have Sui Generis Database
269
+ Rights, then the database in which You have Sui Generis Database
270
+ Rights (but not its individual contents) is Adapted Material; and
271
+
272
+ c. You must comply with the conditions in Section 3(a) if You Share
273
+ all or a substantial portion of the contents of the database.
274
+
275
+ For the avoidance of doubt, this Section 4 supplements and does not
276
+ replace Your obligations under this Public License where the Licensed
277
+ Rights include other Copyright and Similar Rights.
278
+
279
+ Section 5 -- Disclaimer of Warranties and Limitation of Liability.
280
+
281
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
282
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
283
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
284
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
285
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
286
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
287
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
288
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
289
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
290
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
291
+
292
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
293
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
294
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
295
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
296
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
297
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
298
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
299
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
300
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
301
+
302
+ c. The disclaimer of warranties and limitation of liability provided
303
+ above shall be interpreted in a manner that, to the extent
304
+ possible, most closely approximates an absolute disclaimer and
305
+ waiver of all liability.
306
+
307
+ Section 6 -- Term and Termination.
308
+
309
+ a. This Public License applies for the term of the Copyright and
310
+ Similar Rights licensed here. However, if You fail to comply with
311
+ this Public License, then Your rights under this Public License
312
+ terminate automatically.
313
+
314
+ b. Where Your right to use the Licensed Material has terminated under
315
+ Section 6(a), it reinstates:
316
+
317
+ 1. automatically as of the date the violation is cured, provided
318
+ it is cured within 30 days of Your discovery of the
319
+ violation; or
320
+
321
+ 2. upon express reinstatement by the Licensor.
322
+
323
+ For the avoidance of doubt, this Section 6(b) does not affect any
324
+ right the Licensor may have to seek remedies for Your violations
325
+ of this Public License.
326
+
327
+ c. For the avoidance of doubt, the Licensor may also offer the
328
+ Licensed Material under separate terms or conditions or stop
329
+ distributing the Licensed Material at any time; however, doing so
330
+ will not terminate this Public License.
331
+
332
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
333
+ License.
334
+
335
+ Section 7 -- Other Terms and Conditions.
336
+
337
+ a. The Licensor shall not be bound by any additional or different
338
+ terms or conditions communicated by You unless expressly agreed.
339
+
340
+ b. Any arrangements, understandings, or agreements regarding the
341
+ Licensed Material not stated herein are separate from and
342
+ independent of the terms and conditions of this Public License.
343
+
344
+ Section 8 -- Interpretation.
345
+
346
+ a. For the avoidance of doubt, this Public License does not, and
347
+ shall not be interpreted to, reduce, limit, restrict, or impose
348
+ conditions on any use of the Licensed Material that could lawfully
349
+ be made without permission under this Public License.
350
+
351
+ b. To the extent possible, if any provision of this Public License is
352
+ deemed unenforceable, it shall be automatically reformed to the
353
+ minimum extent necessary to make it enforceable. If the provision
354
+ cannot be reformed, it shall be severed from this Public License
355
+ without affecting the enforceability of the remaining terms and
356
+ conditions.
357
+
358
+ c. No term or condition of this Public License will be waived and no
359
+ failure to comply consented to unless expressly agreed to by the
360
+ Licensor.
361
+
362
+ d. Nothing in this Public License constitutes or may be interpreted
363
+ as a limitation upon, or waiver of, any privileges and immunities
364
+ that apply to the Licensor or You, including from the legal
365
+ processes of any jurisdiction or authority.
366
+
367
+ =======================================================================
368
+
369
+ Creative Commons is not a party to its public
370
+ licenses. Notwithstanding, Creative Commons may elect to apply one of
371
+ its public licenses to material it publishes and in those instances
372
+ will be considered the “Licensor.” The text of the Creative Commons
373
+ public licenses is dedicated to the public domain under the CC0 Public
374
+ Domain Dedication. Except for the limited purpose of indicating that
375
+ material is shared under a Creative Commons public license or as
376
+ otherwise permitted by the Creative Commons policies published at
377
+ creativecommons.org/policies, Creative Commons does not authorize the
378
+ use of the trademark "Creative Commons" or any other trademark or logo
379
+ of Creative Commons without its prior written consent including,
380
+ without limitation, in connection with any unauthorized modifications
381
+ to any of its public licenses or any other arrangements,
382
+ understandings, or agreements concerning use of licensed material. For
383
+ the avoidance of doubt, this paragraph does not form part of the
384
+ public licenses.
385
+
386
+ Creative Commons may be contacted at creativecommons.org.
LICENSE-CODE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright 2025 GitHub
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # GitHub Docs <!-- omit in toc -->
2
+
3
+ Welcome to GitHub Docs! GitHub’s documentation is open source, meaning anyone from inside or outside the company can contribute. For full contributing guidelines, visit our [contributing guide](https://docs.github.com/en/contributing).
4
+
5
+ **ملاحظة للمساهمين العرب:** يمكنك الآن الاطلاع على [دليل المساهمة باللغة العربية](CONTRIBUTING_AR.md).
6
+
7
+ ## Quick links by contributor type
8
+
9
+ * **Hubbers (GitHub employees):** See [CONTRIBUTING.md](https://github.com/github/docs-content/blob/main/CONTRIBUTING.md) in the `docs-content` repository for GitHub-specific processes.
10
+
11
+ * **Open source contributors:** See [CONTRIBUTING.md](https://github.com/github/docs/blob/main/.github/CONTRIBUTING.md) in the `docs` repository for a quick-start summary.
12
+
13
+ ## How we sync changes across Docs repositories
14
+
15
+ There are two GitHub Docs repositories:
16
+
17
+ - **`github/docs`** (public): Open to external contributions
18
+
19
+ - **`github/docs-internal`** (private): For GitHub employee contributions.
20
+
21
+ The two repositories sync frequently. Content changes in one are reflected in the other. Hubbers might prefer to post in `docs` when working with a customer, but `docs` has limitations on the types of contributions it accepts to safeguard the site and our workflows. Internal contributions should usually go to `docs-internal`.
22
+
23
+ **Important:** The `docs` repository accepts contributions to content files (`.md` files in `/content` and select `/data` sections like reusables only). Infrastructure files, workflows, and site-building code are not open for external modification.
24
+
25
+ ## New to contributing
26
+
27
+ Here are some resources to help you get started with open source contributions:
28
+
29
+ * [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)
30
+ * [Set up Git](https://docs.github.com/en/get-started/git-basics/set-up-git)
31
+ * [GitHub flow](https://docs.github.com/en/get-started/using-github/github-flow)
32
+ * [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests)
33
+
34
+ ## License
35
+
36
+ This project is dual-licensed under:
37
+
38
+ * **Creative Commons Attribution 4.0** - for documentation and content in the assets, content, and data folders (see [LICENSE](LICENSE))
39
+ * **MIT License** - for code (see [LICENSE-CODE](LICENSE-CODE))
assets/ghes-collectd-metrics.csv ADDED
The diff for this file is too large to render. See raw diff
 
assets/images/README.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Images
2
+ The `/assets/images` directory holds all the site's images.
3
+
4
+
5
+ See [imaging and versioning](https://github.com/github/docs/blob/main/contributing/images-and-versioning.md) from the contributing docs for more information.
assets/images/_fixtures/electrocat.png ADDED