Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3b48c51
Defer webhook childParamsGroups loading (~20-30 MB heap savings) (#61…
Ebonsignori Jun 10, 2026
dadfe54
Remove no-explicit-any violations from content-render entrypoints (#6…
heiskr Jun 10, 2026
d46bfd9
[2026-06-10] Public preview - Automatic routing between ask and agent…
Copilot Jun 10, 2026
6652cd5
Remove no-explicit-any from frame test files (#61671)
heiskr Jun 10, 2026
84e617f
Remove no-explicit-any from convert-markdown-for-docs (#61678)
heiskr Jun 10, 2026
01d4615
Remove no-explicit-any from update-internal-links (#61680)
heiskr Jun 10, 2026
dc89a47
Remove no-explicit-any from REST sync pipeline (#61687)
heiskr Jun 10, 2026
807bf73
Remove no-explicit-any violations from REST tests (#61665)
heiskr Jun 10, 2026
27f9a73
Remove 'any' from markdownlint .d.ts declarations (#61661)
heiskr Jun 10, 2026
ab4f319
Remove no-explicit-any from content-render scripts (#61669)
heiskr Jun 10, 2026
c155667
Remove no-explicit-any from frame page-data lib (#61672)
heiskr Jun 10, 2026
e0734f8
Remove no-explicit-any from data-directory get-data accessor (#61675)
heiskr Jun 10, 2026
cf2408b
Dedup double-purge logic from Fastly edge cache purge (#61558)
heiskr Jun 10, 2026
c9b9392
Remove no-explicit-any violations from REST pages and components (#61…
heiskr Jun 10, 2026
96fb2fd
Remove per-model mode fields from Copilot model release status data a…
Copilot Jun 10, 2026
620875b
Remove no-explicit-any from lint-content (#61681)
heiskr Jun 10, 2026
5111f82
Remove some 'any' types from 4 files (#61660)
heiskr Jun 10, 2026
df6986d
Remove no-explicit-any violations from search files (#61663)
heiskr Jun 11, 2026
ef059ac
Remove no-explicit-any from annotate unified plugin (#61670)
heiskr Jun 11, 2026
695dca1
Remove no-explicit-any from CookBookFilter and translation correction…
heiskr Jun 11, 2026
85f68dd
Clarify audit log S3 region access requirements (#61655)
Copilot Jun 11, 2026
e81ebdd
Updates "Optimize AI usage" to include additional best practices (#61…
am-stead Jun 11, 2026
0a2d33a
fix: render plain text in deprecation banner details reusable (#61692)
docs-bot Jun 11, 2026
038aa7c
Merge pull request #44693 from github/repo-sync
docs-bot Jun 11, 2026
0f43116
GitHub Agentic Workflows public preview (#61653)
saritai Jun 11, 2026
ce4b69f
GHES 3.21 GA (#61298)
jclement136 Jun 11, 2026
fc678fa
fix: correct 6 Liquid corruptions causing search scraping failures (S…
docs-bot Jun 11, 2026
5445ba9
Add 3 new runner images (public preview) to GitHub-hosted runners doc…
lkfortuna Jun 11, 2026
fb07809
GraphQL schema update (#61702)
docs-bot Jun 11, 2026
37f9bef
Merge pull request #44694 from github/repo-sync
docs-bot Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,11 @@ You can stream audit logs to multiple endpoints. For example, you can stream you

{% ifversion ghes %}

>[!NOTE] The Amazon region `us-east-1` must be reachable from your appliance for streaming to S3 to work. Your S3 bucket can reside in other AWS regions.
> [!NOTE]
> For streaming to S3, the AWS region that must be reachable depends on the option you select for the bucket's region.
>
> * If you select **Auto Detect**, `us-east-1` must be reachable from your appliance because the AWS SDK uses that region to detect the destination bucket's region.
> * If you select a specific region, the selected region must be reachable from your appliance. `us-east-1` does not need to be reachable unless it is the selected region.

{% endif %}

Expand Down Expand Up @@ -113,10 +117,10 @@ From {% data variables.product.prodname_dotcom %}:
1. Under "Authentication", click **Access keys**.{% endif %}
1. Configure the stream settings.

- Under "Region", select the bucket's region. For example, `us-east-1`.
- Under "Bucket", type the name of the bucket you want to stream to. For example, `auditlog-streaming-test`.
- Under "Access Key ID", type your access key ID. For example, `ABCAIOSFODNN7EXAMPLE1`.
- Under "Secret Key", type your secret key. For example, `aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY`.
* Under "Region", select **Auto Detect** or select the bucket's region. For example, `us-east-1`.
* Under "Bucket", type the name of the bucket you want to stream to. For example, `auditlog-streaming-test`.
* Under "Access Key ID", type your access key ID. For example, `ABCAIOSFODNN7EXAMPLE1`.
* Under "Secret Key", type your secret key. For example, `aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY`.
{% data reusables.audit_log.streaming-check-s3-endpoint %}
{% data reusables.enterprise.verify-audit-log-streaming-endpoint %}

Expand Down
157 changes: 157 additions & 0 deletions content/copilot/concepts/agents/about-github-agentic-workflows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
---
title: About GitHub Agentic Workflows
shortTitle: Agentic Workflows
intro: 'Automate repetitive repository work with natural language instructions executed by AI coding agents in {% data variables.product.prodname_actions %}.'
versions:
feature: copilot
contentType: concepts
category:
- Learn about Copilot
---

{% data reusables.copilot.agentic-workflows-preview-note %}

## 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.

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

* {% data variables.copilot.agentic_workflows_short_cap %} execute natural language instructions with contextual reasoning.
* You still define guardrails in frontmatter, such as triggers, permissions, and safe outputs.

With {% data variables.copilot.agentic_workflows_short %}, you can automate tasks like:

* Triaging incoming issues and labeling them by type and priority
* Investigating CI failures and suggesting fixes
* Generating daily or weekly repository status reports
* Keeping documentation up to date with code changes
* Improving test coverage

## Benefits of using {% data variables.copilot.agentic_workflows_short %}

* **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.
* **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

To create and use {% data variables.copilot.agentic_workflows_short %}, you need:

* {% data variables.product.prodname_actions %} enabled for your repository.
* An account with an AI engine (agent), such as {% data variables.product.prodname_copilot %}, {% data variables.product.prodname_anthropic_claude %}, {% data variables.product.prodname_openai_codex %}, or Google Gemini.
* {% data variables.product.prodname_cli %} installed and authenticated

## How {% data variables.copilot.agentic_workflows_short %} work

Each workflow markdown file has two parts:

* **Frontmatter** (YAML between `---` markers): Configures when the workflow runs, what permissions it has, and what write operations are allowed.
* **Markdown body**: Contains your natural language instructions that the AI agent follows.

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. 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 %}.

Here's an example of a workflow to create a daily status report issue for a repository:

```markdown
---
on: daily

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

network: defaults

tools:
github:
toolsets: [default]

safe-outputs:
create-issue:

---

# Daily Repo Status Report

Review recent activity in the repository, including issues, pull requests, discussions, and code changes.

Create a {% data variables.product.github %} issue summarizing what changed in the last 24 hours (merged pull requests, closed issues, and new discussions), any blockers or open questions mentioned in comments, progress toward visible goals, and recommended next steps for maintainers.

Keep the summary concise. Adjust the level of detail based on how much activity occurred.
```

For detailed steps on creating and updating {% data variables.copilot.agentic_workflows_short %}, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows).

## Supported coding agents

{% data variables.copilot.github_agentic_workflows %} support multiple coding agents, including:

* {% data variables.product.prodname_copilot %} (requires a {% data variables.product.prodname_copilot %} plan)
* {% data variables.product.prodname_anthropic_claude %}
* {% data variables.product.prodname_openai_codex %}
* Google Gemini

You specify which agent to use in the workflow frontmatter property `engine`. Each engine requires its own authentication secret configured in your repository. {% data variables.product.prodname_copilot %} is the default engine if none is specified.

For more information, see the [engine reference](https://github.github.com/gh-aw/reference/engines/).

## Security guardrails

{% data variables.copilot.github_agentic_workflows %} are designed with security as a priority:

* **Read-only by default**: Workflows have read-only repository permissions unless you explicitly grant more.
* **Safe outputs**: Write operations (such as creating issues, adding comments, or opening pull requests) are only allowed through validated `safe-outputs` declared in the frontmatter.
* **Secrets stay outside the agent runtime**: Sensitive credentials are kept in isolated downstream jobs instead of being exposed directly to the agent.
* **Threat detection**: Proposed outputs are scanned for suspicious or unsafe changes before write actions are applied.
* **Firewalled execution**: Agents run in isolated {% data variables.product.prodname_actions %} environments.
* **Role-based access**: You can restrict who can trigger or modify {% data variables.copilot.agentic_workflows_short %} using role-based access controls.

For a full architecture walkthrough, see the [security documentation](https://github.github.com/gh-aw/introduction/architecture/).

## Usage and billing

The total cost of {% data variables.copilot.agentic_workflows_short %} has two parts:

* {% data variables.product.prodname_actions %} minutes consumed by workflow jobs.
* Inference costs from the configured AI engine.

For inference, {% data variables.copilot.github_agentic_workflows %} use AI Credits (AIC) as a general metric for monitoring and budgeting across engines. `1 AIC = $0.01 USD`.

How billing applies depends on the engine:

* Default {% data variables.product.prodname_copilot %} engine: AIC usage maps to {% data variables.product.prodname_ai_credits_short %} in {% data variables.product.prodname_copilot %} billing.
* Third-party engine: Inference is billed by that provider.

You can use the {% data variables.product.prodname_cli %} to review usage and estimated cost for {% data variables.copilot.agentic_workflows_short %}. Use `gh aw logs` to view recent workflow runs, including duration, token usage, and AIC estimates across runs. Use `gh aw audit RUN-ID` to inspect a single run in more detail, including token usage and estimated inference cost. AIC values are best-effort estimates and may not exactly match provider invoices, so verify final charges in your provider's billing dashboard.

You can also set `max-ai-credits` in workflow frontmatter to cap inference usage for a single run. The default cap is 1,000 AIC per run.

For an overview of billing for {% data variables.copilot.github_agentic_workflows %} and cost optimization guidance, see [Cost management](https://github.github.com/gh-aw/reference/cost-management/) on the {% data variables.copilot.github_agentic_workflows %} documentation site.

### Enabling organization billing for {% data variables.copilot.github_agentic_workflows %}

For {% data variables.product.prodname_copilot %} agentic workflows in organization-owned repositories, if the organization has a {% data variables.product.prodname_copilot %} plan, we strongly recommend using {% data variables.product.prodname_actions %}' built-in `GITHUB_TOKEN`. This approach bills to the organization and avoids using a {% data variables.product.pat_generic %}.

To bill to the organization, you need:

1. An organization administrator to enable "Copilot CLI" and "Allow use of Copilot CLI billed to the organization" in {% data variables.product.prodname_copilot %} policy settings. If "Copilot CLI" is already enabled, the billing policy is enabled by default.
1. In each workflow frontmatter, include `copilot-requests: write` under the `permissions` object.

When `copilot-requests: write` is set in workflow frontmatter permissions, the {% data variables.product.prodname_actions %}' token is used for Copilot requests, so you don't need a `COPILOT_GITHUB_TOKEN`. If the {% data variables.product.prodname_actions %} token does not have {% data variables.product.prodname_copilot %} access from the organization, the workflow fails when it sends Copilot requests, and you should configure `COPILOT_GITHUB_TOKEN` instead.

For detailed setup instructions, see [Using the built-in `GITHUB_TOKEN`](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows#using-the-built-in-github_token).

## Next steps

* To add your first agentic workflow, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/quickstart).
* For more information on creating and using {% data variables.copilot.agentic_workflows_short %}, see [AUTOTITLE](/copilot/how-tos/github-agentic-workflows/creating-github-agentic-workflows).
* For the full reference documentation, including advanced patterns and examples, see the [{% data variables.copilot.github_agentic_workflows %} documentation site](https://github.github.com/gh-aw/).
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ When used effectively, {% data variables.copilot.copilot_cloud_agent %} offers p

* With **{% data variables.copilot.copilot_cloud_agent %}**, all coding and iterating happens **on {% data variables.product.github %}**. You can ask {% data variables.product.prodname_copilot_short %} to **research** a repository, **create a plan**, and **make code changes** on a branch—all before opening a pull request. You can create multiple {% data variables.copilot.custom_agents_short %} that specialize in different types of tasks. {% data variables.product.prodname_copilot_short %} **automates** branch creation, commit message writing, and pushing. Developers let the agents **work in the background** and then chooses to **create a pull request** when ready. Working on {% data variables.product.github %} adds **transparency**, with every step happening in a commit and being viewable in logs, and opens up **collaboration** opportunities for the entire team.

### Sharing context between {% data variables.copilot.copilot_chat_short %} and {% data variables.copilot.copilot_cloud_agent %} sessions

When you start a {% data variables.copilot.copilot_cloud_agent %} session from {% data variables.copilot.copilot_chat_short %} on {% data variables.product.github %}, the session carries the context of your chat. You can continue chatting while the session runs, and ask follow-up questions about progress in the same conversation. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents).

## {% data variables.copilot.copilot_cloud_agent %} versus agent mode

{% data variables.copilot.copilot_cloud_agent %} is distinct from the "agent mode" feature available in your IDE. {% data variables.copilot.copilot_cloud_agent %} works autonomously in a {% data variables.product.prodname_actions %}-powered environment to complete development tasks assigned through {% data variables.product.github %} issues or {% data variables.copilot.copilot_chat %} prompts. It can research a repository, create a plan, make code changes on a branch, and optionally open a pull request. In contrast, agent mode in your IDE makes autonomous edits directly in your local development environment. For more information about agent mode, see [AUTOTITLE](/copilot/using-github-copilot/copilot-chat/asking-github-copilot-questions-in-your-ide).
Expand Down
1 change: 1 addition & 0 deletions content/copilot/concepts/agents/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ children:
- /copilot-cli
- /github-copilot-app
- /code-review
- /about-github-agentic-workflows
- /copilot-memory
- /hooks
- /about-enterprise-plugin-standards
Expand Down
10 changes: 9 additions & 1 deletion content/copilot/concepts/chat.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ versions:
redirect_from:
- /copilot/concepts/about-github-copilot-chat
contentType: concepts
category:
category:
- Learn about Copilot
---

Expand All @@ -30,6 +30,14 @@ Different environments may have different features and capabilities, but the cor

{% data variables.copilot.copilot_chat_short %} is designed to assist with coding tasks, but you remain responsible for reviewing and validating the code it generates. It may not always produce correct or optimal solutions, and it can sometimes generate code that contains security vulnerabilities or other issues. Always test and review the code before using it in production.

## Passing context between {% data variables.copilot.copilot_chat_short %} and {% data variables.copilot.copilot_cloud_agent %} sessions

On {% data variables.product.github %}, {% data variables.copilot.copilot_chat_short %} and {% data variables.copilot.copilot_cloud_agent %} can share context. When you start an agent session from a chat, the session incorporates the context of your conversation, and while the session runs you can continue chatting with {% data variables.product.prodname_copilot_short %} about its progress.

{% data variables.copilot.copilot_chat_short %} can also answer questions about pull requests created by {% data variables.product.prodname_copilot_short %} by pulling in the relevant agent session logs, so you can ask what changed, what was validated, and why, without leaving the conversation.

This context passing is scoped to the {% data variables.copilot.copilot_chat_short %} and {% data variables.copilot.copilot_cloud_agent_short %} sessions you are actively working with. It is distinct from {% data variables.copilot.copilot_memory %}, which builds a longer-term, persistent understanding of your repositories and preferences across sessions. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents).

## Customizing {% data variables.copilot.copilot_chat_short %} responses

{% data variables.product.prodname_copilot %} in {% data variables.product.github %}, {% data variables.product.prodname_vscode %}, and {% data variables.product.prodname_vs %} can provide chat responses that are tailored to the way your team works, the tools you use, the specifics of your project, or your personal preferences, if you provide it with enough context to do so. Instead of repeating instructions in each prompt, you can create and save instructions for {% data variables.copilot.copilot_chat_short %} to customize what responses you receive.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ redirect_from:
- /copilot/how-tos/chat-with-copilot/use-chat-in-github
- /copilot/how-tos/chat-with-copilot/chat-in-github
contentType: how-tos
category:
category:
- Author and optimize with Copilot
---

Expand Down Expand Up @@ -72,6 +72,10 @@ The response to your edited question is displayed in a new subthread. An edit co

You can attach images to your prompts by pasting, dragging, or clicking {% octicon "plus" aria-label="Add attachment" %} in the prompt box and then selecting **{% octicon "file-code" aria-hidden="true" %} Upload from computer**. Select a model that supports images from the model picker. For supported file types and example questions, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/provide-visual-inputs).

### Continuing a conversation alongside an agent session

When you start a {% data variables.copilot.copilot_cloud_agent %} task from {% data variables.copilot.copilot_chat_short %}—for example, by asking {% data variables.product.prodname_copilot_short %} to create a pull request or research a repository—you can keep chatting while the {% data variables.copilot.copilot_cloud_agent_short %} session runs. {% data variables.copilot.copilot_chat_short %} reflects the status of the in-progress session and draws on its context, so you can ask follow-up questions about what the agent is doing. When the session is complete, you can ask further questions about the work or start another session from {% data variables.copilot.copilot_chat_short %}. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents).

### Conversation history and retention

{% data variables.copilot.copilot_chat_short %} stores up to 100 of your most recent conversations. Messages within each conversation are kept for 28 days before being permanently deleted. Once a conversation has no messages left, it's automatically removed from your history.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ Navigate to a pull request to ask about changes, reviews, or failing workflows.
* {% prompt %}Summarize the changes in this PR.{% endprompt %}
* {% prompt %}What's the purpose of this file?{% endprompt %}
* {% prompt %}Tell me why this job failed{% endprompt %}
* {% prompt %}What did {% data variables.product.prodname_copilot_short %} change in this PR and why?{% endprompt %}
* {% prompt %}What did {% data variables.product.prodname_copilot_short %} validate before opening this PR?{% endprompt %}

## Security alert questions

Expand Down
Loading