Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
0eb277f
Revert featured and homepage links when undoing move-content (#64161)
heiskr Oct 20, 2026
695c800
Let modifier-clicks on tool and platform tabs open a new tab (#64173)
heiskr Oct 20, 2026
49fd997
Keep custom feature headings when rerunning the release notes generat…
heiskr Oct 20, 2026
ea81eb5
Run REST anchor redirects on versioned REST pages (#64183)
heiskr Oct 20, 2026
ea0970e
Drop undefined content type from REST example labels (#64184)
heiskr Oct 20, 2026
6325fb6
Show Basic auth on Basic-auth REST endpoints in Article API Markdown …
heiskr Oct 20, 2026
0233863
Indent every line of REST parameter descriptions in markdown output (…
heiskr Oct 20, 2026
a22af71
Fix reusables CLI crash when the repo path has a space (#64189)
heiskr Oct 20, 2026
596d398
Render Liquid in headings before mapping English heading IDs (#63928)
heiskr Oct 20, 2026
0fe63e0
Validate the Copilot model comparison table against its schema (#64153)
heiskr Oct 20, 2026
7b1cf85
Show types for oneOf path and query parameters in REST docs (#64187)
heiskr Oct 20, 2026
40d586b
Count indented_data_reference uses in reusables find used and top-use…
heiskr Oct 20, 2026
0a0a880
Redirect /index.md to the homepage instead of an empty Location (#64192)
heiskr Oct 20, 2026
20bae77
Send external search analytics without blocking the search (#64196)
heiskr Oct 20, 2026
196ead0
Run docs search on Enter after a Copilot error in search (#64197)
heiskr Oct 20, 2026
e898cb2
List valid version values for general search index runs (#64198)
heiskr Oct 20, 2026
b8921b0
Updating the Agentic Workflows docs (#64258)
salilsub Oct 20, 2026
f1e0457
Report links to missing pages as broken in the link checker (#63946)
heiskr Oct 20, 2026
9801575
Include required query params in Octokit REST code examples (#63990)
heiskr Oct 20, 2026
0bb87ce
Show intro links in Article API markdown for bespoke landing pages (#…
heiskr Oct 20, 2026
567fa4a
Skip hidden pages in Article API landing page article lists (#64044)
heiskr Oct 20, 2026
e4ef787
Keep links in English fallback content in the reader's language (#64100)
heiskr Oct 20, 2026
8c721fe
Focus the first new search result after pagination loads (#64199)
heiskr Oct 20, 2026
3560f69
Point the search page Article API body at /api/search/v1 (#64201)
heiskr Oct 20, 2026
ff7aa4c
Combine search popularity across redirected paths (#64202)
heiskr Oct 20, 2026
4ed87ae
Validate the Copilot model retirement table against its schema (#64154)
heiskr Oct 20, 2026
0bb86a6
Keep URL language and add Vary on legacy search query redirects (#64203)
heiskr Oct 20, 2026
7552e26
Show a filter checkbox for every product on the search page (#64204)
heiskr Oct 20, 2026
84d1d0f
Reject inherited object keys in search version and language params (#…
heiskr Oct 20, 2026
0963560
Retry 429 secondary rate limits and honor retry-after (#64206)
heiskr Oct 20, 2026
ec58076
Keep secret scanning table page in range and off the URL hash (#64207)
heiskr Oct 20, 2026
4686831
Stop expanding unrelated sidebar categories that share a URL prefix (…
heiskr Oct 20, 2026
b161010
Print startup errors instead of exiting silently under nodemon (#64210)
heiskr Oct 20, 2026
dcac19a
Use English anchor IDs for terms on translated glossary pages (#63938)
heiskr Oct 20, 2026
6d53bfa
Skip commit and push in site policy sync when nothing changed (#64211)
heiskr Oct 20, 2026
a268745
Let approved content-removal PRs pass the spammy PR check (#64212)
heiskr Oct 20, 2026
12eaacb
Drop stale hovercard responses after the pointer leaves (#64213)
heiskr Oct 20, 2026
561b840
Check table rows that lack a closing pipe in GHD047 (#64216)
heiskr Oct 20, 2026
2832303
Show body params for REST request bodies with a top-level anyOf (#64219)
heiskr Oct 20, 2026
c18b5ae
Set feature flags when counting translation corruptions (#64220)
heiskr Oct 20, 2026
6622cb9
Match whole path segments in update-filepaths --paths (#64227)
heiskr Oct 20, 2026
5d8713d
Check PR links in every version the changed page supports (#63993)
heiskr Oct 20, 2026
53f9cde
Drop cross-product children from Article API landing lists (#64047)
heiskr Oct 20, 2026
7061242
Skip translation fallback comment when unwrapping titles (#64101)
heiskr Oct 20, 2026
99d10c7
Validate the Copilot model release status table with its schema (#64155)
heiskr Oct 20, 2026
39767c3
Show survey email warning for short invalid input (#64214)
heiskr Oct 20, 2026
136d6e5
Report broken translation frontmatter in corruption counts (#64221)
heiskr Oct 20, 2026
d7612f0
Run asset image validation when the validator or its deps change (#64…
heiskr Oct 20, 2026
5afaa8e
Decode the Vitest @/ alias path so checkouts with spaces work (#64230)
heiskr Oct 20, 2026
30a9496
Keep existing release note when single-issue regeneration fails (#64008)
heiskr Oct 20, 2026
b3dbab9
Keep query strings when redirecting URLs with double slashes (#64098)
heiskr Oct 20, 2026
9adb39b
Count a newer production build as a match when waiting for a deploy (…
heiskr Oct 20, 2026
b85dd0c
Skip whitespace-only image alt text in GHD031 (#64233)
heiskr Oct 20, 2026
93743e2
Keep custom link text in YAML strings when setting AUTOTITLE (#64234)
heiskr Oct 20, 2026
3831b0e
Fix GitHub CLI example for uploading a release asset (#64241)
heiskr Oct 20, 2026
4dfff0b
Show deprecation notices for deprecated GraphQL enum values (#64242)
heiskr Oct 20, 2026
196d6a3
Keep curly quote autofix from breaking quoted YAML frontmatter (#63923)
heiskr Oct 20, 2026
d7da127
Change PR creation to draft until skip FR label applied (#64245)
hubwriter Oct 21, 2026
5c55c2b
docs: update copilot-cli content from source docs (#64303)
docs-bot Oct 21, 2026
f8f9eb2
Remove redundant copilot_ prefix from model variables (#64249)
hubwriter Oct 21, 2026
527f71d
Update supported processor architectures section for self-hosted runn…
Pantelis-Santorinios Oct 21, 2026
bca24fc
Document the Transitive label in Dependabot alert filters (#64309)
carlincherry Oct 21, 2026
0501c1f
Rule insights dashboard: org-level is cloud only, repo-level availabl…
pararohan Oct 21, 2026
86e45ee
Stop GHD022 from deleting content behind ifversion != (#63936)
heiskr Oct 21, 2026
9619860
Keep locale and version in landing page hero links (#63944)
heiskr Oct 21, 2026
565c81c
Block encoded dot segments in archived asset proxy paths (#63960)
heiskr Oct 21, 2026
477688b
Follow fragment and GraphQL kind redirects in the Article API (#64046)
heiskr Oct 21, 2026
55a9892
Stop Ask AI transitions from flashing No results found (#64051)
heiskr Oct 21, 2026
641670f
Reuse unchanged pages and keep category versions on dev reload (#64081)
heiskr Oct 21, 2026
fa8b3ef
Exclude early-access symlinks from the Docker build context (#64084)
heiskr Oct 21, 2026
ad8d32c
Stop GHD009 from hiding frontmatter errors and crashing lint (#64089)
heiskr Oct 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ docs-early-access/
node_modules/
README.md
tests/
# Local symlinks to docs-early-access. merge-early-access.sh creates these during the build.
assets/images/early-access
content/early-access
data/early-access
50 changes: 45 additions & 5 deletions .github/workflows/check-for-spammy-prs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:

permissions:
contents: read
issues: read
pull-requests: write

jobs:
Expand Down Expand Up @@ -52,10 +53,49 @@ jobs:
)
const onlyIndexMd = files.length === 1 && files[0].filename.split('/').pop() === 'index.md'

// Content removals are allowed once the Docs team marks the linked issue `help wanted`.
let hasApprovedIssue = false
if (onlyDeletesLines || onlyDeletes) {
try {
const { repository } = await github.graphql(
`query($owner: String!, $repo: String!, $number: Int!) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $number) {
closingIssuesReferences(first: 100) {
nodes {
repository {
nameWithOwner
}
labels(first: 100) {
nodes {
name
}
}
}
}
}
}
}`,
{ owner, repo, number: pull_number },
)
const closingIssues = repository?.pullRequest?.closingIssuesReferences?.nodes || []
// Issues in other repos don't count, since their owners can add the label themselves.
hasApprovedIssue = closingIssues.some(issue =>
issue.repository?.nameWithOwner?.toLowerCase() === `${owner}/${repo}` &&
issue.labels.nodes.some(label => label.name.toLowerCase() === 'help wanted'),
)
} catch (error) {
// Without the lookup, treat the removal as unapproved, as before.
core.warning(`Could not check linked issues: ${error.message}`)
}
}
const unapprovedLineDeletion = onlyDeletesLines && !hasApprovedIssue
const unapprovedFileDeletion = onlyDeletes && !hasApprovedIssue

if (
targetsNonMain ||
onlyDeletesLines ||
onlyDeletes ||
unapprovedLineDeletion ||
unapprovedFileDeletion ||
isEmptyCommit ||
touchesTooMany ||
isBlankLineEdit ||
Expand All @@ -75,8 +115,8 @@ jobs:
issue_number: pull_number,
body: targetsNonMain
? 'Pull requests must target the `main` branch. This pull request has been closed as invalid. If you think this is incorrect, please mention this in a corresponding issue.'
: onlyDeletesLines
? 'This pull request only removes existing content. Before submitting a content-removal pull request, please [open an issue](https://github.com/github/docs/issues/new/choose) explaining the proposed removal and wait for approval from the GitHub Docs team. Once the change has been approved, you can open a new pull request and link it to the issue.'
: unapprovedLineDeletion
? 'This pull request only removes existing content. Before submitting a content-removal pull request, please [open an issue](https://github.com/github/docs/issues/new/choose) explaining the proposed removal and wait for the GitHub Docs team to add the `help wanted` label to it. Once the issue has the `help wanted` label, you can open a new pull request that links the issue with `Closes: #<issue number>` in the description.'
: "This pull request may have been opened accidentally. I'm going to close it now, but feel free to check out our [contribution guidelines](https://docs.github.com/en/contributing), or raise an issue.",
})

Expand All @@ -89,7 +129,7 @@ jobs:
})
}

if (onlyDeletesLines) {
if (unapprovedLineDeletion) {
core.setFailed(
'This pull request only deletes lines. An approved issue is required first.',
)
Expand Down
42 changes: 31 additions & 11 deletions .github/workflows/content-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ jobs:
GH_TOKEN: ${{ github.token }}
UPDATE_BRANCH: ${{ steps.branch.outputs.update_branch }}
run: |
PR_NUMBER=$(gh pr list --head "$UPDATE_BRANCH" --state open --json number --jq '.[0].number // empty' 2>/dev/null || echo "")
PR_NUMBER=$(gh pr list --head "$UPDATE_BRANCH" --state open --json number --jq '.[0].number // empty') || {
echo "::error::Could not look up the PR for ${UPDATE_BRANCH}."
exit 1
}
echo "pr_number=$PR_NUMBER" >> "$GITHUB_OUTPUT"

- name: Setup branch
Expand Down Expand Up @@ -137,23 +140,22 @@ jobs:
echo "source_path=$SOURCE_PATH" >> "$GITHUB_OUTPUT"

- name: Create or update PR
if: steps.commit.outputs.has_changes == 'true'
if: steps.commit.outputs.has_changes == 'true' || steps.check-pr.outputs.pr_number != ''
env:
GH_TOKEN: ${{ secrets.DOCS_BOT_PAT_BASE }}
UPDATE_BRANCH: ${{ steps.branch.outputs.update_branch }}
PIPELINE_ID: ${{ matrix.id }}
SOURCE_REPO: ${{ steps.source-info.outputs.source_repo }}
SOURCE_PATH: ${{ steps.source-info.outputs.source_path }}
PR_REF: ${{ steps.check-pr.outputs.pr_number }}
run: |
PR_NUMBER="${{ steps.check-pr.outputs.pr_number }}"
set -euo pipefail

PR_TITLE="docs: update ${PIPELINE_ID} content from source docs"
SOURCE_LINK="See the [upstream repo](https://github.com/${SOURCE_REPO}/tree/main/${SOURCE_PATH}) for changes that triggered this update."

if [ -n "$PR_NUMBER" ]; then
echo "PR #$PR_NUMBER already exists"

echo "Ensuring PR #$PR_NUMBER is marked ready for review"
gh pr ready "$PR_NUMBER" || echo "Unable to mark PR #$PR_NUMBER as ready (it may already be ready)"
if [ -n "$PR_REF" ]; then
echo "PR #$PR_REF already exists"
else
echo "Creating new PR"

Expand All @@ -178,12 +180,30 @@ jobs:
PR_BODY+="* Once satisfied, merge to keep docs up to date"$'\n'
PR_BODY+="* A new PR will be created on the next run if there are further changes"

gh pr create \
# The opened event must describe a draft before any labels are applied.
PR_REF=$(gh pr create --draft \
--title "$PR_TITLE" \
--body "$PR_BODY" \
--base main \
--head "$UPDATE_BRANCH" \
--label "workflow-generated,content-pipeline-update,ready-for-doc-review,skip FR board"
--head "$UPDATE_BRANCH")
fi

# Retry publication for existing PRs, including runs without content changes.
gh pr edit "$PR_REF" --add-label "skip FR board" || {
echo "::error::Could not apply skip FR board. The PR will not be marked ready."
exit 1
}
for LABEL in "workflow-generated" "content-pipeline-update" "ready-for-doc-review"; do
gh pr edit "$PR_REF" --add-label "$LABEL" \
|| echo "::warning::Could not apply the \"$LABEL\" label."
done

IS_DRAFT=$(gh pr view "$PR_REF" --json isDraft --jq '.isDraft')
if [ "$IS_DRAFT" = "true" ]; then
gh pr ready "$PR_REF" || {
echo "::error::Could not mark the labeled PR ready for review."
exit 1
}
fi

- uses: ./.github/actions/create-workflow-failure-issue
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/index-general-search.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
workflow_dispatch:
inputs:
version:
description: "Version to exclusively generate the search index for. E.g. 'dotcom', 'ghes-3.12'"
description: "Version to exclusively generate the search index for: 'fpt', 'ghec', or a supported 'ghes-X.Y'. Leave empty for all."
required: false
default: ''
languages:
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/move-content.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,31 @@ jobs:
src/fixtures/fixtures/content/get-started/start-your-journey/hello-wurld.md
git log | head -n 100

- name: Undo moving hello-world.md to hello-wurld.md
env:
ROOT: src/fixtures/fixtures
run: |
# The fixtures start with hello-world, so confirm the move rewrote them before testing undo.
for file in src/fixtures/fixtures/content/index.md src/fixtures/fixtures/content/get-started/index.md; do
grep -q -- '- /get-started/start-your-journey/hello-wurld$' "$file"
done

npm run move-content -- --undo \
src/fixtures/fixtures/content/get-started/start-your-journey/hello-world.md \
src/fixtures/fixtures/content/get-started/start-your-journey/hello-wurld.md

test -f src/fixtures/fixtures/content/get-started/start-your-journey/hello-world.md
test ! -e src/fixtures/fixtures/content/get-started/start-your-journey/hello-wurld.md
# Undo must revert featuredLinks too, or they point at a page that no longer exists.
for file in src/fixtures/fixtures/content/index.md src/fixtures/fixtures/content/get-started/index.md; do
grep -q -- '- /get-started/start-your-journey/hello-world$' "$file"
if grep -q hello-wurld "$file"; then
echo "$file still links to hello-wurld"
exit 1
fi
done
git log | head -n 100

- name: Move code-security/getting-started to code-security/got-started
env:
ROOT: src/fixtures/fixtures
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/purge-fastly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ jobs:
- name: Wait for production to serve this build
if: ${{ github.event_name == 'deployment_status' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run wait-for-build

- name: Purge Fastly (manual)
Expand Down
18 changes: 10 additions & 8 deletions .github/workflows/site-policy-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,19 +48,21 @@ jobs:
echo PR_TITLE: $PR_TITLE
[[ ! -z $PR_TITLE ]] && DESCRIPTION="${PR_TITLE}" || DESCRIPTION="Update manually triggered by workflow"
echo "DESCRIPTION=$DESCRIPTION" >> $GITHUB_ENV
git commit -m "$(echo $DESCRIPTION)"
# git commit exits 1 when the public repo already matches, which would fail the job.
if git diff --cached --quiet; then
echo "No updates to push to the public repo"
echo "HAS_CHANGES=false" >> "$GITHUB_ENV"
else
git commit -m "$(echo $DESCRIPTION)"
echo "HAS_CHANGES=true" >> "$GITHUB_ENV"
fi
- name: If there are changes to push, create a branch in the public repo and push changes
if: env.HAS_CHANGES == 'true'
env:
GITHUB_TOKEN: ${{ secrets.DOCS_BOT_PAT_BASE }}
run: |
cd public-repo
git config --local user.name 'site-policy-bot'
git config --local user.email 'site-policy-bot@github.com'
NUM_FILES_CHANGED=$(git diff --name-only HEAD^..HEAD | wc -l)
if [[ $NUM_FILES_CHANGED -ge 1 ]]
then
git push --set-upstream origin automated-sync-$GITHUB_RUN_ID
else
echo "No updates to push to the public repo"
fi
git push --set-upstream origin automated-sync-$GITHUB_RUN_ID
4 changes: 4 additions & 0 deletions .github/workflows/validate-asset-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ on:
paths:
- 'assets/**'
- '.github/workflows/validate-asset-images.yml'
# Dependency changes can break the validator.
- 'package*.json'
- 'src/assets/scripts/validate-asset-images.ts'
- '.github/actions/node-npm-setup/action.yml'

permissions:
contents: read
Expand Down
1 change: 0 additions & 1 deletion content/actions/reference/runners/self-hosted-runners.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ You can use a machine as a self-hosted runner as long as it meets these requirem

* `x64` - Linux, macOS, Windows.
* `ARM64` - Linux, macOS{% ifversion actions-windows-arm %}, Windows (currently in {% data variables.release-phases.public_preview %}){% endif %}.
* `ARM32` - Linux.

## Routing precedence for self-hosted runners

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ This article walks through a simple setup that adds the agent's credential as a
| --- | --- | --- |
| Claude Code | `claude` | `ANTHROPIC_API_KEY` containing an Anthropic API key |
| {% data variables.product.prodname_openai_codex %} | `codex` | `OPENAI_API_KEY` containing an OpenAI API key |
| Google {% data variables.copilot.copilot_gemini %} CLI | `gemini` | `GEMINI_API_KEY` containing a Google AI Studio API key |
| Google {% data variables.copilot.gemini %} CLI | `gemini` | `GEMINI_API_KEY` containing a Google AI Studio API key |
| {% data variables.copilot.copilot_cli_short %} (default) | `copilot` | No secret needed for organization repositories (see below). For personal repositories, `COPILOT_GITHUB_TOKEN` containing a fine-grained {% data variables.product.pat_generic %} with **Copilot Requests** set to **Read**. |

Other engines such as Pi (experimental) are also supported. For the full list, see the [{% data variables.copilot.github_agentic_workflows %} authentication reference](https://github.github.com/gh-aw/reference/auth/).
Expand Down
38 changes: 19 additions & 19 deletions content/admin/data-residency/github-copilot-with-data-residency.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,25 +52,25 @@ The models available for {% data variables.product.prodname_copilot_short %} var

### European Union

* {% data variables.copilot.copilot_gpt_4o_mini %}
* {% data variables.copilot.copilot_gpt_41 %}
* {% data variables.copilot.copilot_gpt_52 %}
* {% data variables.copilot.copilot_gpt_53_codex %}
* {% data variables.copilot.copilot_gpt_54_nano %}
* {% data variables.copilot.copilot_gpt_56_luna %}
* {% data variables.copilot.copilot_gpt_56_sol %}
* {% data variables.copilot.copilot_gpt_56_terra %}
* {% data variables.copilot.copilot_gpt_6_astra %}
* {% data variables.copilot.copilot_gpt_6_luna %}
* {% data variables.copilot.copilot_gpt_6_sol %}
* {% data variables.copilot.copilot_gpt_61_sol %}
* {% data variables.copilot.copilot_claude_haiku_45 %}
* {% data variables.copilot.copilot_claude_haiku_55 %}
* {% data variables.copilot.copilot_claude_opus_48 %}
* {% data variables.copilot.copilot_claude_opus_5 %}
* {% data variables.copilot.copilot_claude_opus_55 %}
* {% data variables.copilot.copilot_claude_sonnet_5 %}
* {% data variables.copilot.copilot_claude_sonnet_55 %}
* {% data variables.copilot.gpt_4o_mini %}
* {% data variables.copilot.gpt_41 %}
* {% data variables.copilot.gpt_52 %}
* {% data variables.copilot.gpt_53_codex %}
* {% data variables.copilot.gpt_54_nano %}
* {% data variables.copilot.gpt_56_luna %}
* {% data variables.copilot.gpt_56_sol %}
* {% data variables.copilot.gpt_56_terra %}
* {% data variables.copilot.gpt_6_astra %}
* {% data variables.copilot.gpt_6_luna %}
* {% data variables.copilot.gpt_6_sol %}
* {% data variables.copilot.gpt_61_sol %}
* {% data variables.copilot.claude_haiku_45 %}
* {% data variables.copilot.claude_haiku_55 %}
* {% data variables.copilot.claude_opus_48 %}
* {% data variables.copilot.claude_opus_5 %}
* {% data variables.copilot.claude_opus_55 %}
* {% data variables.copilot.claude_sonnet_5 %}
* {% data variables.copilot.claude_sonnet_55 %}

## Pricing changes

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ category:

We recommend using the monitor dashboard to stay informed on your appliance's resource health and make decisions on how to fix high usage issues, such as the ones outlined on this page.

For system-critical issues, and prior to making modifications to your appliance, we highly recommend contacting us by visiting {% data variables.contact.contact_ent_support %} and including your support bundle. For more information, see [AUTOTITLE](/enterprise/{{ currentVersion}}/support/contacting-github-support/providing-data-to-github-support#creating-and-sharing-support-bundles).
For system-critical issues, and prior to making modifications to your appliance, we highly recommend contacting us by visiting {% data variables.contact.contact_ent_support %} and including your support bundle. For more information, see [AUTOTITLE](/support/contacting-github-support/providing-data-to-github-support#creating-and-sharing-support-bundles).

## High CPU usage

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ category:

## About {% data variables.copilot.agentic_workflows_short %}

{% data variables.copilot.github_agentic_workflows %} are AI-powered repository automations that you define in markdown and run as {% data variables.product.prodname_actions %} workflows. Unlike traditional automation with fixed if-then rules, {% data variables.copilot.agentic_workflows_short %} use coding agents to understand context, make decisions, and take meaningful actions—all from natural language instructions.
{% data variables.copilot.github_agentic_workflows %} are AI-powered repository automations that you define in markdown and run as {% data variables.product.prodname_actions %} workflows. Unlike traditional automation with fixed if-then rules, {% data variables.copilot.agentic_workflows_short %} use coding agents to understand context, evaluate decisions, and propose meaningful actions—all from natural language instructions.

In practice, compared with traditional workflows that execute predefined steps:

Expand All @@ -35,7 +35,7 @@ With {% data variables.copilot.agentic_workflows_short %}, you can automate task

* **Automate repetitive repository work**. Define issue triage, CI investigation, documentation updates, and reporting in natural language.
* **Reduce workflow complexity**. Write markdown instructions instead of building complex procedural scripts for every scenario.
* **Keep human review in the loop**. {% data variables.copilot.agentic_workflows_short_cap %} can generate ready-to-review outputs, such as issues, comments, and pull requests, while you control approvals and merges.
* **Keep human review in the loop**. {% data variables.copilot.agentic_workflows_short_cap %} can generate reviewable outputs, such as issues, comments, and pull requests, while you control approvals and merges.
* **Run agents with layered security**. Agents run in firewalled containers with read-only tokens by default. Write actions are limited to declared "safe outputs" that you have defined, and checked by agentic threat detection.

## Requirements
Expand All @@ -56,7 +56,7 @@ Each workflow markdown file has two parts:
At a high level, the process to create and use {% data variables.copilot.agentic_workflows_short %} is:

1. Define the agentic workflow `.md` file, including YAML frontmatter and markdown instructions.
1. Compile the markdown workflow file into a hardened `.lock.yml` {% data variables.product.prodname_actions %} workflow file.
1. Compile the markdown workflow file into a `.lock.yml` {% data variables.product.prodname_actions %} workflow file.
1. Commit and push both files to the default branch of your repository.
1. Run the workflow like any other {% data variables.product.prodname_actions %} workflow, on a trigger or in the {% data variables.product.github %} web interface for your repository. You can also run it from the {% data variables.product.prodname_cli %}.

Expand Down
Loading
Loading