From 129b085ae236bb2cf21aa7b998666b754ed2263e Mon Sep 17 00:00:00 2001 From: "docs-engineering-bot[bot]" <285023527+docs-engineering-bot[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 23:43:05 +0000 Subject: [PATCH 1/6] Sync Copilot SDK docs (auto-generated) (#62390) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: sunbrye Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8c43e022-098e-4783-a993-fa95e3f45ed9 --- .../features-agent-loop-diagram-1.png | Bin 76656 -> 76662 bytes .../features-agent-loop-diagram-2.png | Bin 69639 -> 69668 bytes ...setup-azure-managed-identity-diagram-0.png | Bin 66950 -> 81006 bytes .../how-tos/copilot-sdk/auth/authenticate.md | 6 +- .../copilot/how-tos/copilot-sdk/auth/byok.md | 39 +- .../copilot-sdk/features/cloud-sessions.md | 2 +- .../copilot-sdk/features/custom-agents.md | 20 +- .../copilot-sdk/features/image-input.md | 24 +- .../how-tos/copilot-sdk/features/skills.md | 10 +- .../features/steering-and-queueing.md | 24 +- .../copilot-sdk/features/streaming-events.md | 143 ++++++- content/copilot/how-tos/copilot-sdk/index.md | 1 + .../integrations/microsoft-agent-framework.md | 24 +- .../setup/azure-managed-identity.md | 357 ++++++++++++++---- .../copilot-sdk/setup/backend-services.md | 22 +- .../how-tos/copilot-sdk/setup/bundled-cli.md | 16 +- .../setup/choosing-a-setup-path.md | 2 +- .../how-tos/copilot-sdk/setup/github-oauth.md | 14 +- .../how-tos/copilot-sdk/setup/local-cli.md | 12 +- .../copilot-sdk/setup/multi-tenancy.md | 20 +- .../how-tos/copilot-sdk/setup/scaling.md | 8 +- .../copilot-sdk/troubleshooting/debugging.md | 2 +- .../troubleshooting/mcp-debugging.md | 4 +- 23 files changed, 547 insertions(+), 203 deletions(-) diff --git a/assets/images/help/copilot/copilot-sdk/features-agent-loop-diagram-1.png b/assets/images/help/copilot/copilot-sdk/features-agent-loop-diagram-1.png index 09030de7ef9b0e95c9bd4f9abba894033f38b874..99414b8c12b4c9cb25ce62cc1c35bfcdbb8d04c5 100644 GIT binary patch delta 36205 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�~~SQjr-WrlKgcK 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

C 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 diff --git a/assets/images/help/copilot/copilot-sdk/features-agent-loop-diagram-2.png b/assets/images/help/copilot/copilot-sdk/features-agent-loop-diagram-2.png index 871721c4dcf0d9d932ecd2326ed597ac07f812d1..eef0e9a03f4d6d0b2357a258085ccc1af910de32 100644 GIT binary patch delta 33036 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%0Av%eVA#Qk$KeNIg^e54xf~pPwZn? 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đV~2T8&t}cJxJ`aht!fv3#c#XxEft7L054 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

    >Qu?2GVNac6t`V+nwvorjb0SvmgpBB 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±3??hpCYN|u(E*YT?wDOvm+UfUP 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 literal 66950 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 z℞b5&bKr7t3;ZWIn0!?aMice@mayZcR50=z&2@ZWFAu_qF?a+MYx>MI`2(fZy@& zm>6MZaqCB!&Y!sTBY}u8eFuwGC!v!+YF#xsamGs@oJy_~Z#ja$bEK;bIjM*Bl&DZ< z8WnWW(fR z4YJ*QeE9fQ(sBIG=^1=~w>+S~?g#HyC<<*FGY3{ral zFVg#qsa$CbY+tOnvRq0@=XFL3}hFA z9Msa2q0^zr(er9J!n*#R?=Ygr0=)98M4WW`GKp-VQSRpwKLLWD8-GU!+LC$@{s-Cf zqGj1l5e+?8&d&g63QBqvzTGpM9mwF;+ZngyI#(!_#7|%*3)_8dG%_Fz-H7Q3*ag=a z4^w=mHS!^xdp{4140U-%^m0k{NYGD6n5ZerjcS2zbo9zXN+V}8J8-iUgh2qfP;Fe! ztiqR*hu?$K;8_M{qRk<8_yMQQ0GQ&FA;(dz*zW>v=VW^AIH1RU?>YdW^|#XdGj%+_ zGSIxgDIyww@bT#_c0nzRc0{`(@>c!U*r&BxWh-cJDZJt8~BYll?n_KQ{x;z zK2bJlcskngS)wSyuEe%FZ+TIQXW7sJKJZw?!?vu+_aQ%>8w>0Zby}6Po={y4Q;nwK z))Av2J1?i-=mF374&V+o>m~E?a<^^I3-PlTn{(Q}of~D%BO>M8lwOZi?iU$k9u#D4X5BcBbTDTF5oDBPFiS=Q;JMhROAW*W=iZED zd1-DgV!xYH!vFRUC@MH_0nSe6p9d&`Z~zVdAmvvGwP&3zSNejG`#kx0oNB)0Zr0PF zlT*UDbuE&^`2C^eF{x^TWoc94yM;qYB!u1dLW`so+fUq&*_=@d9KX+)ecX1`5yf3< z@%#8{&zEz~+b z-@>Z70HYcK8?c?SxR~S21Cq`l{H%N%mlyH7sibh9Me$kxR8{aH4Ho|D{j`xRp^_wI zE@^$^Ra9$B?)0dm2Nt`nGD>8B=O0Ac< zdZ|_FSL-^;E4a_C8frT@lP~-* z`O0y&tM!|b*A4{zjDf zSUDIsZ{=1B>m!Q~)2_AqURNwA1%PFtdPLM<*0V8xOb_08Bi$yKx$epj@|FfBp2Gp% zJAMQ!P7@_L{GrCAp{~hB^1WXd1xUfNi<5d^U7Hi20irXIqw8pPoO4{T@z(#e5VlV`)FTuq=+i- zisx~k-&g|PpzYBi8@|f#)^JCg5}Lrqx^Y#bcQ)^#@b=JVA0k4^*>G96RA_}csJMLQ z;I8QoyTJxG`3#NS>c7^fy6ONZ2~0~5rI{Q4AvBkP1!*#Z2YGv7W?7bW&3Q4DUE+C~ z{NN5-#Aw@=33UQiy%%--{sJTzB2l7i*N$v2wu=p~2(sW$kcQLRzViJ*f*j!K zrfX=(YuaLlqx^g-S9mX~IQcsot^72gj_emK%8R)&4v-lEYgri;eoyyDj`yv~Bw{=&JY@T7~W!`NMeM&qN;N#XmnRLZa|!q~_jK*;Y34PWJHb_ISpBGQ#S8@ zM{n_VZ<||A_89YR7{se5+twmxY8!xj1vRKjL3=S?D{C$5N$=n2;6T$VUdEypKL?3l ztTVwYeS0Bn(6-N&xYlUMQGtyy=#`18Lw7tsA@yho3xJ!FW#+D*uHBu*FOa1rP&or>a2NSX9OkujGx5j+D=SpZwu#kx z!A+LV-|XML^@*ZhIOex~GV%CKGE)8J9zT~|ZHVlz+H;gqk+>YkT7!dzh&;d~(O>6j4k2wE(I%R^Ll~TcloA!smfG32EJqYeR+g;+G4PdWd z*b9d$7oJ>^mp>me8>;Qmd7V^f>HzR$6*<$x?eT{om%x$s&yBjrK2=ulXYluLRU9-M zfm}@Sm*ecEq;e0RpJI#AcfZ~cr1@EpSrk@VjInd{^1LsN-ac#?D>fd%V_breIs@)n z2W+tte~`ln|6!8BRb$l7?NHZhf=Sj6UXo=1ubj4rti*guRVKJ1aFwj7{_wdxx`tQhSa`0C-P5%kn(D}O58 zHaDbqsbpag;wbYfEOjs8Ch*q(FKl)$7g}qh!1FR}ouCaheLlKA+N&2xcj9TUkO4pj zg$m=YTmC0Y?xaVUvsb2&z7*3^pFHImXK+V(JcRf){IMW_{5^HO%KHl#k;N zFxKBSm+3o-*7ql2lTQ<|*H3dCa$Z@obRud<@tTT?glD1{YSc56L?njVB-5}?gcGtF z(G_Jffw=MSzIiZVR@Mu2#Z`_U$;D{GziPl!*i^>!JTfl6w-`yO8n-ua5#=Cli9;y( zx!f@6kT&tTIv`UrMz(padmw7v-i6QBA(BzYr=8~3?l^<2%n~n$jQND;c!&32IF>&> z*azm>n9WA55=SdCR2}Nv0hP1voY);J=QVE4v~V!9o>N#|p2*gqQ^HeLWB$Zf`>5Ux z@Rzr5%0egl6S|QCpA4iP9ihTYrDXR$|u%D=9x7bVQVP)r+Kc1UCn6?=Z7kO^3wNg}mS}%+FYP%Y<{I5Gkk3_f-Q=i*rBdw1 z6c#UYOt9>DaBHyI5o-cAa-p0hkxgXL(X!(i6`n3W6TYcurQGEG$5%@ zkD{Kaz|Cf5JDp2C3obSR;Q415>-%D|w)4sghUP^(&>}EzwD||dH0tQbu>po!w`&iZ8TfoaBXqMoJA9 zTDA_A?>uBoy}2elO2N)mz$z|Yg!}lAJb*XJ=%Wg@zA_G2C=*~i-dhKa5noDiPu`GL zaXGDY{!@=0P~oT(MQKs%=lTGmDv^CUl~3MGXXbWbCdKx1Nbig@CtM=#_O}uTed{0Y zvW>@-Km6z#wEu@w2kdCW;OevEQfO0$qpO1^eJi>B7a?Lk3Bb@FdxWXh=pdtES5!7- zwWK7=?lk+A@=d7rg<@dF6Axbgm8=r{`;p<{GWn;BTm96s8?(r|8p>$^BYOv)x4!MJ z-ApSbw?M~8CGUZ>V~lg+t!%%Fgm`fq>=A_*z7&{q)N5k9pfNA!ab7XsMSAJwVWsYh2_1P_vLgf;FL1QH|Fy%UL0ZCNI6bypTQ8u-&K1^+t-CFYv&lx6vz zaK5TugFat+okx_#8+K~8Z@26FxpXdVG{k^gXz*1ABZi;#-7j&zVZIQHD?EanP{N)q z*IJL=(LvJ^jp@N)F_Gtlaea-3FnM!q5J;TvEL5LU|ufrN~)#R6dk*E(+{C@QoM4b~lwD?mxV6K(h+Xahtfito zG4k7>xIdev^Mdi{%TD%DUmwc;Y{xQE!90q>2Y{kAQ@z?t$==wR1K7@{^YIXqW zt!bh5Me!4`HO25zkGY7|;tVlq=w!CLA?ey&1L-?4zbvfv{ z6UH|0h4r!?5aaTwC|RPq9EN^b`yK5Ts5BHY->g#MhgPJ|Ul6n%UjKk(ye4Fo6-@%T z3>`T#tT%F2Ik~Q=H0L|dA7L4-!j2YUvK1uHURhQk5nSV72o}|SW9vSYZ5iRFOpyxy*oB~VfGZD`+i8VGt0Ql z&0~)C>eUnG?s)Ih;#`ysBwhRgd&8=Zg?w|uz|XIba~!0RdO^YKcp;p0K;*IoX2`5)HlGrQi#bbcARrKx%2JL4QD`gj>{j_W1#uLk~O-RK>svi z@Gjj;5vpz}iKUkLkF4KCIm1e_phyvTZF!ekc9e(%CAdRD%_$c@Pp)VaJQr|Zil`&( z(?*yP=*5&DqUzE6U-ahK>`i)>Hu>tIn&b_{9oQF(!^M@_ z!?%{c_`2Qp$a^M#|5`as2r7TtTeqTKM6T#!%gF`Tvp#1B5&V7i;GvQ2fu= z)w8>w;ce^xclA})ad0&_+n+xIE$7+&X?9)mNsCbUWyIx!#$WE(2I6C=huX$!O`oF) zn02CFgd0%R_T@s5kN{A@TZ51)>d_*P(X?B24;yVvD&U1X%7K$UJu~(DHOllHcQ14T zE*SlqkvF`PPbYWxs^(W`>y9FjvfKQSf}*6uo>v&xw+ zv&jll?*nDyqUJ~H+^Yr5ludTdhJzkrCQ~W~JH6Lr5`Dj_=|b<^(WtCQRSJr;sVhj$YVny!(C3u=G~>eo+zF)*xz^ z*SrFB`?J%=y=W-)>fBeaoM>w*t}sxOrnj;(Ea%&f*qo^&?N*O^vlN>h1_0 zlam!S5A9vc0UU7T)DZB?Z;Q zjagb>r?`ZeD0i7Ci;ur?)ba~u3(Ce-NohZB7nMvJfB$~w2|4s<@MzD)h@hu#!XIU*xbxyfO zeVzk7(vi}BvNcmDVx+F8RPfcb<8$|yKxxqOjrD1RU3SGQ#nzqe3ikadI6PO{msI~OTfj-==rsms3|;o z_u4W5zFWr2uIz.openai.azure.com/openai/v1/", WireAPI: "responses", // Use "completions" for older models APIKey: os.Getenv("FOUNDRY_API_KEY"), }, @@ -160,7 +160,7 @@ await using var session = await client.CreateSessionAsync(new SessionConfig Provider = new ProviderConfig { Type = "openai", - BaseUrl = "https://your-resource.openai.azure.com/openai/v1/", + BaseUrl = "https://.openai.azure.com/openai/v1/", WireApi = "responses", // Use "completions" for older models ApiKey = Environment.GetEnvironmentVariable("FOUNDRY_API_KEY"), }, @@ -188,7 +188,7 @@ var session = client.createSession(new SessionConfig() .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) .setProvider(new ProviderConfig() .setType("openai") - .setBaseUrl("https://your-resource.openai.azure.com/openai/v1/") + .setBaseUrl("https://.openai.azure.com/openai/v1/") .setWireApi("responses") // Use "completions" for older models .setApiKey(System.getenv("FOUNDRY_API_KEY"))) ).get(); @@ -213,6 +213,7 @@ client.stop().get(); | `baseUrl` / `base_url` | string | **Required.** API endpoint URL | | `apiKey` / `api_key` | string | API key (optional for local providers like Ollama) | | `bearerToken` / `bearer_token` | string | Bearer token auth (takes precedence over apiKey) | +| `bearerTokenProvider` / `bearer_token_provider` | callback | Returns a bearer token on demand (takes precedence over `apiKey` and `bearerToken`) | | `wireApi` / `wire_api` | `"completions"` \| `"responses"` | Select `"completions"` for broad model compatibility (the Chat Completions API); select `"responses"` for multi-turn state management, tool namespacing, and reasoning support (the Responses API). Anthropic models always use the Messages API regardless of this setting. | | `azure.apiVersion` / `azure.api_version` | string | Azure API version (default: `"2024-10-21"`) | @@ -274,7 +275,7 @@ For Azure AI Foundry deployments with `/openai/v1/` endpoints, use `type: "opena ```typescript provider: { type: "openai", - baseUrl: "https://your-resource.openai.azure.com/openai/v1/", + baseUrl: "https://.openai.azure.com/openai/v1/", apiKey: process.env.FOUNDRY_API_KEY, wireApi: "responses", // For GPT-5 series models } @@ -334,12 +335,14 @@ provider: { ### Bearer token authentication -Some providers require bearer token authentication instead of API keys: +Some providers require bearer token authentication instead of API keys. Supply a static token with `bearerToken`, or supply a `bearerTokenProvider` callback that the GitHub Copilot SDK runtime invokes before outbound provider requests. The callback or identity library it wraps manages token caching and refresh. + +Use `bearerToken` when your application already has a token: ```typescript provider: { type: "openai", - baseUrl: "https://my-custom-endpoint.example.com/v1", + baseUrl: "https://.openai.azure.com/openai/v1/", bearerToken: process.env.MY_BEARER_TOKEN, // Sets Authorization header } ``` @@ -347,6 +350,22 @@ provider: { > [!NOTE] > The `bearerToken` option accepts a **static token string** only. The SDK does not refresh this token automatically. If your token expires, requests will fail and you'll need to create a new session with a fresh token. +Use `bearerTokenProvider` to acquire tokens on demand: + + + +```typescript +provider: { + type: "openai", + baseUrl: "https://my-custom-endpoint.example.com/v1", + bearerTokenProvider: async () => { + return await acquireBearerToken(); + }, +} +``` + +For more details about acquiring and refreshing Microsoft Entra bearer tokens, see [AUTOTITLE](/copilot/how-tos/copilot-sdk/setup/azure-managed-identity). + ## Custom model listing When using BYOK, the CLI server may not know which models your provider supports. You can supply a custom `onListModels` handler at the client level so that `client.listModels()` returns your provider's models in the standard `ModelInfo` format. This lets downstream consumers discover available models without querying the CLI. @@ -531,7 +550,7 @@ import { CopilotClient } from "@github/copilot-sdk"; const client = new CopilotClient(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", provider: { type: "azure", baseUrl: "https://my-resource.openai.azure.com", @@ -564,7 +583,7 @@ import { CopilotClient } from "@github/copilot-sdk"; const client = new CopilotClient(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", provider: { type: "openai", baseUrl: "https://your-resource.openai.azure.com/openai/v1/", diff --git a/content/copilot/how-tos/copilot-sdk/features/cloud-sessions.md b/content/copilot/how-tos/copilot-sdk/features/cloud-sessions.md index 522537546bde..13b4c39c1d6a 100644 --- a/content/copilot/how-tos/copilot-sdk/features/cloud-sessions.md +++ b/content/copilot/how-tos/copilot-sdk/features/cloud-sessions.md @@ -252,7 +252,7 @@ Capture the URL by subscribing to `session.info` and filtering by `infoType: "re session.on("session.info", (event) => { if (event.data?.infoType === "remote" && event.data.url) { console.log("Open from web or mobile:", event.data.url); - // e.g. surface in your UI as a shareable link or QR code. + // For example, surface in your UI as a shareable link or QR code. } }); ``` diff --git a/content/copilot/how-tos/copilot-sdk/features/custom-agents.md b/content/copilot/how-tos/copilot-sdk/features/custom-agents.md index 87b42f8122d5..06601dca30e5 100644 --- a/content/copilot/how-tos/copilot-sdk/features/custom-agents.md +++ b/content/copilot/how-tos/copilot-sdk/features/custom-agents.md @@ -43,7 +43,7 @@ const client = new CopilotClient(); await client.start(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", customAgents: [ { name: "researcher", @@ -75,7 +75,7 @@ await client.start() session = await client.create_session( on_permission_request=lambda req, inv: PermissionDecisionApproveOnce(), - model="gpt-4.1", + model="gpt-5.4", custom_agents=[ { "name": "researcher", @@ -113,7 +113,7 @@ func main() { client.Start(ctx) session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", CustomAgents: []copilot.CustomAgentConfig{ { Name: "researcher", @@ -144,7 +144,7 @@ client := copilot.NewClient(nil) client.Start(ctx) session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", CustomAgents: []copilot.CustomAgentConfig{ { Name: "researcher", @@ -177,7 +177,7 @@ using GitHub.Copilot.Rpc; await using var client = new CopilotClient(); await using var session = await client.CreateSessionAsync(new SessionConfig { - Model = "gpt-4.1", + Model = "gpt-5.4", CustomAgents = new List { new() @@ -215,7 +215,7 @@ try (var client = new CopilotClient()) { var session = client.createSession( new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setCustomAgents(List.of( new CustomAgentConfig() .setName("researcher") @@ -250,10 +250,14 @@ try (var client = new CopilotClient()) { | `mcpServers` | `object` | | MCP server configurations specific to this agent | | `infer` | `boolean` | | Whether the runtime can auto-select this agent (default: `true`) | | `skills` | `string[]` | | Skill names to preload into the agent's context at startup | +| `model` | `string` | | Model identifier to use while this agent runs | +| `reasoningEffort` | `string` | | Reasoning effort to use while this agent runs. When omitted, no override is sent and the backend chooses its default | > [!TIP] > A good `description` helps the runtime match user intent to the right agent. Be specific about the agent's expertise and capabilities. +Set `model` and `reasoningEffort` to override the parent session's model settings while a custom agent runs. When `reasoningEffort` is omitted, the SDK sends no per-agent override and the backend chooses its default. The parent session effort is not inherited, and the SDK does not add a per-agent default. Python uses `reasoning_effort`, .NET uses `ReasoningEffort`, Go uses `ReasoningEffort`, Java uses `setReasoningEffort`, and Rust uses `with_reasoning_effort`. + In addition to per-agent configuration above, you can set `agent` on the **session config** itself to pre-select which custom agent is active when the session starts. See [Selecting an Agent at Session Creation](#selecting-an-agent-at-session-creation) below. | Session Config Property | Type | Description | @@ -429,6 +433,8 @@ By default, all custom agents are available for automatic selection (`infer: tru When a sub-agent runs, the parent session emits lifecycle events. Subscribe to these events to build UIs that visualize agent activity. +Sub-agent-originated session events share the parent session stream and include envelope-level `agentId`. Root/main agent events and session-level events omit `agentId`, so renderers can keep the parent response separate from sub-agent traces by checking the event envelope. + ### Event types | Event | Emitted when | Data | @@ -519,7 +525,7 @@ func main() { client.Start(ctx) session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", OnPermissionRequest: func(req copilot.PermissionRequest, inv copilot.PermissionInvocation) (rpc.PermissionDecision, error) { return &rpc.PermissionDecisionApproveOnce{}, nil }, diff --git a/content/copilot/how-tos/copilot-sdk/features/image-input.md b/content/copilot/how-tos/copilot-sdk/features/image-input.md index db4f625e9edd..a94084ae0112 100644 --- a/content/copilot/how-tos/copilot-sdk/features/image-input.md +++ b/content/copilot/how-tos/copilot-sdk/features/image-input.md @@ -44,7 +44,7 @@ const client = new CopilotClient(); await client.start(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", onPermissionRequest: async () => ({ kind: "approve-once" }), }); @@ -70,7 +70,7 @@ await client.start() session = await client.create_session( on_permission_request=lambda req, inv: PermissionDecisionApproveOnce(), - model="gpt-4.1", + model="gpt-5.4", ) await session.send( @@ -102,7 +102,7 @@ func main() { client.Start(ctx) session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", OnPermissionRequest: func(req copilot.PermissionRequest, inv copilot.PermissionInvocation) (rpc.PermissionDecision, error) { return &rpc.PermissionDecisionApproveOnce{}, nil }, @@ -127,7 +127,7 @@ client := copilot.NewClient(nil) client.Start(ctx) session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", OnPermissionRequest: func(req copilot.PermissionRequest, inv copilot.PermissionInvocation) (rpc.PermissionDecision, error) { return &rpc.PermissionDecisionApproveOnce{}, nil }, @@ -159,7 +159,7 @@ public static class ImageInputExample await using var client = new CopilotClient(); await using var session = await client.CreateSessionAsync(new SessionConfig { - Model = "gpt-4.1", + Model = "gpt-5.4", OnPermissionRequest = (req, inv) => Task.FromResult(PermissionDecision.ApproveOnce()), }); @@ -187,7 +187,7 @@ using GitHub.Copilot.Rpc; await using var client = new CopilotClient(); await using var session = await client.CreateSessionAsync(new SessionConfig { - Model = "gpt-4.1", + Model = "gpt-5.4", OnPermissionRequest = (req, inv) => Task.FromResult(PermissionDecision.ApproveOnce()), }); @@ -219,7 +219,7 @@ try (var client = new CopilotClient()) { var session = client.createSession( new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -249,7 +249,7 @@ const client = new CopilotClient(); await client.start(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", onPermissionRequest: async () => ({ kind: "approve-once" }), }); @@ -278,7 +278,7 @@ await client.start() session = await client.create_session( on_permission_request=lambda req, inv: PermissionDecisionApproveOnce(), - model="gpt-4.1", + model="gpt-5.4", ) base64_image_data = "..." # your base64-encoded image @@ -313,7 +313,7 @@ func main() { client.Start(ctx) session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", OnPermissionRequest: func(req copilot.PermissionRequest, inv copilot.PermissionInvocation) (rpc.PermissionDecision, error) { return &rpc.PermissionDecisionApproveOnce{}, nil }, @@ -364,7 +364,7 @@ public static class BlobAttachmentExample await using var client = new CopilotClient(); await using var session = await client.CreateSessionAsync(new SessionConfig { - Model = "gpt-4.1", + Model = "gpt-5.4", OnPermissionRequest = (req, inv) => Task.FromResult(PermissionDecision.ApproveOnce()), }); @@ -416,7 +416,7 @@ try (var client = new CopilotClient()) { var session = client.createSession( new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); diff --git a/content/copilot/how-tos/copilot-sdk/features/skills.md b/content/copilot/how-tos/copilot-sdk/features/skills.md index 3e2fd99814d4..08acedf9f77d 100644 --- a/content/copilot/how-tos/copilot-sdk/features/skills.md +++ b/content/copilot/how-tos/copilot-sdk/features/skills.md @@ -38,7 +38,7 @@ import { CopilotClient } from "@github/copilot-sdk"; const client = new CopilotClient(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", skillDirectories: [ "./skills/code-review", "./skills/documentation", @@ -62,7 +62,7 @@ async def main(): session = await client.create_session( on_permission_request=lambda req, inv: PermissionDecisionApproveOnce(), - model="gpt-4.1", + model="gpt-5.4", skill_directories=[ "./skills/code-review", "./skills/documentation", @@ -97,7 +97,7 @@ func main() { defer client.Stop() session, err := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", SkillDirectories: []string{ "./skills/code-review", "./skills/documentation", @@ -130,7 +130,7 @@ using GitHub.Copilot.Rpc; await using var client = new CopilotClient(); await using var session = await client.CreateSessionAsync(new SessionConfig { - Model = "gpt-4.1", + Model = "gpt-5.4", SkillDirectories = new List { "./skills/code-review", @@ -160,7 +160,7 @@ try (var client = new CopilotClient()) { var session = client.createSession( new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setSkillDirectories(List.of( "./skills/code-review", "./skills/documentation" diff --git a/content/copilot/how-tos/copilot-sdk/features/steering-and-queueing.md b/content/copilot/how-tos/copilot-sdk/features/steering-and-queueing.md index 85ef4660148e..ea797ef82f23 100644 --- a/content/copilot/how-tos/copilot-sdk/features/steering-and-queueing.md +++ b/content/copilot/how-tos/copilot-sdk/features/steering-and-queueing.md @@ -41,7 +41,7 @@ const client = new CopilotClient(); await client.start(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", onPermissionRequest: async () => ({ kind: "approve-once" }), }); @@ -69,7 +69,7 @@ async def main(): session = await client.create_session( on_permission_request=lambda req, inv: PermissionDecisionApproveOnce(), - model="gpt-4.1", + model="gpt-5.4", ) # Start a long-running task @@ -108,7 +108,7 @@ func main() { defer client.Stop() session, err := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", OnPermissionRequest: func(req copilot.PermissionRequest, inv copilot.PermissionInvocation) (rpc.PermissionDecision, error) { return &rpc.PermissionDecisionApproveOnce{}, nil }, @@ -146,7 +146,7 @@ using GitHub.Copilot.Rpc; await using var client = new CopilotClient(); await using var session = await client.CreateSessionAsync(new SessionConfig { - Model = "gpt-4.1", + Model = "gpt-5.4", OnPermissionRequest = (req, inv) => Task.FromResult(PermissionDecision.ApproveOnce()), }); @@ -177,7 +177,7 @@ try (var client = new CopilotClient()) { var session = client.createSession( new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -221,7 +221,7 @@ const client = new CopilotClient(); await client.start(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", onPermissionRequest: async () => ({ kind: "approve-once" }), }); @@ -254,7 +254,7 @@ async def main(): session = await client.create_session( on_permission_request=lambda req, inv: PermissionDecisionApproveOnce(), - model="gpt-4.1", + model="gpt-5.4", ) # Send an initial task @@ -293,7 +293,7 @@ func main() { client.Start(ctx) session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", OnPermissionRequest: func(req copilot.PermissionRequest, inv copilot.PermissionInvocation) (rpc.PermissionDecision, error) { return &rpc.PermissionDecisionApproveOnce{}, nil }, @@ -349,7 +349,7 @@ public static class QueueingExample await using var client = new CopilotClient(); await using var session = await client.CreateSessionAsync(new SessionConfig { - Model = "gpt-4.1", + Model = "gpt-5.4", OnPermissionRequest = (req, inv) => Task.FromResult(PermissionDecision.ApproveOnce()), }); @@ -409,7 +409,7 @@ try (var client = new CopilotClient()) { var session = client.createSession( new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -451,7 +451,7 @@ You can use both patterns together in a single session. Steering affects the cur ```typescript const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", onPermissionRequest: async () => ({ kind: "approve-once" }), }); @@ -477,7 +477,7 @@ await session.send({ ```python session = await client.create_session( on_permission_request=lambda req, inv: PermissionDecisionApproveOnce(), - model="gpt-4.1", + model="gpt-5.4", ) # Start a task diff --git a/content/copilot/how-tos/copilot-sdk/features/streaming-events.md b/content/copilot/how-tos/copilot-sdk/features/streaming-events.md index 65d4cadd7411..2bc4f130b6a0 100644 --- a/content/copilot/how-tos/copilot-sdk/features/streaming-events.md +++ b/content/copilot/how-tos/copilot-sdk/features/streaming-events.md @@ -39,6 +39,7 @@ Every session event, regardless of type, includes these fields: | `id` | `string` (UUID v4) | Unique event identifier | | `timestamp` | `string` (ISO 8601) | When the event was created | | `parentId` | `string \| null` | ID of the previous event in the chain; `null` for the first event | +| `agentId` | `string?` | Sub-agent instance ID for sub-agent-originated events; absent for root/main agent and session-level events | | `ephemeral` | `boolean?` | `true` for transient events; absent or `false` for persisted events | | `type` | `string` | Event type discriminator (see tables below) | | `data` | `object` | Event-specific payload | @@ -106,7 +107,7 @@ func main() { client := copilot.NewClient(nil) session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ - Model: "gpt-4.1", + Model: "gpt-5.4", Streaming: copilot.Bool(true), OnPermissionRequest: func(req copilot.PermissionRequest, inv copilot.PermissionInvocation) (rpc.PermissionDecision, error) { return &rpc.PermissionDecisionApproveOnce{}, nil @@ -188,6 +189,130 @@ session.on(AssistantMessageDeltaEvent.class, event -> > [!TIP] > **(TypeScript)** The TypeScript SDK uses a discriminated union—when you match on `event.type`, the `data` payload is automatically narrowed to the correct shape. +## Render only the parent agent response + +Sub-agent events share the parent session stream and include envelope-level `agentId`. Root/main agent events and session-level events omit `agentId`, so main-chat renderers can ignore assistant events where `agentId` is set and route those events to traces or progress UI instead. + +{% codetabs %} +{% codetab typescript %} + +```typescript +import type { CopilotSession } from "@github/copilot-sdk"; + +export function subscribeParentResponse(session: CopilotSession): void { + session.on("assistant.message_delta", (event) => { + if (!event.agentId) { + process.stdout.write(event.data.deltaContent); + } + }); +} +``` + +{% endcodetab %} +{% codetab python %} + +```python +from copilot import CopilotSession, SessionEvent, SessionEventType +from copilot.session_events import AssistantMessageDeltaData + + +def subscribe_parent_response(session: CopilotSession) -> None: + def handle(event: SessionEvent) -> None: + if event.type == SessionEventType.ASSISTANT_MESSAGE_DELTA and event.agent_id is None: + data = event.data + if isinstance(data, AssistantMessageDeltaData): + print(data.delta_content, end="", flush=True) + + session.on(handle) +``` + +{% endcodetab %} +{% codetab go %} + +```golang +package example + +import ( + "fmt" + + copilot "github.com/github/copilot-sdk/go" +) + +func subscribeParentResponse(session *copilot.Session) { + session.On(func(event copilot.SessionEvent) { + if event.AgentID != nil { + return + } + + if d, ok := event.Data.(*copilot.AssistantMessageDeltaData); ok { + fmt.Print(d.DeltaContent) + } + }) +} +``` + +{% endcodetab %} +{% codetab dotnet %} + +```csharp +using System; +using GitHub.Copilot; + +static class ParentAgentResponseExample +{ + public static void SubscribeParentResponse(CopilotSession session) + { + session.On(evt => + { + if (evt.AgentId is null) + { + Console.Write(evt.Data.DeltaContent); + } + }); + } +} +``` + +{% endcodetab %} +{% codetab java %} + +```java +import com.github.copilot.CopilotSession; +import com.github.copilot.generated.AssistantMessageDeltaEvent; + +final class ParentAgentResponseExample { + static void subscribeParentResponse(CopilotSession session) { + session.on(AssistantMessageDeltaEvent.class, event -> { + if (event.getAgentId() == null) { + System.out.print(event.getData().deltaContent()); + } + }); + } +} +``` + +{% endcodetab %} +{% codetab rust %} + +```rust +use github_copilot_sdk::session::Session; + +async fn subscribe_parent_response(session: &Session) { + let mut events = session.subscribe(); + + while let Ok(event) = events.recv().await { + if event.event_type == "assistant.message_delta" && event.agent_id.is_none() { + if let Some(delta) = event.data.get("deltaContent").and_then(|v| v.as_str()) { + print!("{delta}"); + } + } + } +} +``` + +{% endcodetab %} +{% endcodetabs %} + ## Assistant events These events track the agent's response lifecycle—from turn start through streaming chunks to the final message. @@ -242,7 +367,7 @@ The assistant's complete response for this LLM call. May include tool invocation | `phase` | `string` | | Generation phase (e.g., `"thinking"` vs `"response"`) | | `outputTokens` | `number` | | Actual output token count from the API response | | `interactionId` | `string` | | CAPI interaction ID for telemetry | -| `parentToolCallId` | `string` | | Set when this message originates from a sub-agent | +| `parentToolCallId` | `string` | | Deprecated. Use envelope-level `agentId` for sub-agent attribution | **`ToolRequest` fields:** @@ -261,7 +386,7 @@ Ephemeral. Incremental chunk of the assistant's text response, streamed in real |------------|------|----------|-------------| | `messageId` | `string` | ✅ | Matches the corresponding `assistant.message` event | | `deltaContent` | `string` | ✅ | Text chunk to append to the message | -| `parentToolCallId` | `string` | | Set when originating from a sub-agent | +| `parentToolCallId` | `string` | | Deprecated. Use envelope-level `agentId` for sub-agent attribution | ### `assistant.turn_end` @@ -277,7 +402,7 @@ Ephemeral. Token usage and cost information for an individual API call. | Data Field | Type | Required | Description | |------------|------|----------|-------------| -| `model` | `string` | ✅ | Model identifier (e.g., `"gpt-4.1"`) | +| `model` | `string` | ✅ | Model identifier (e.g., `"gpt-5.4"`) | | `inputTokens` | `number` | | Input tokens consumed | | `outputTokens` | `number` | | Output tokens produced | | `cacheReadTokens` | `number` | | Tokens read from prompt cache | @@ -288,7 +413,7 @@ Ephemeral. Token usage and cost information for an individual API call. | `apiCallId` | `string` | | Completion ID from the provider (e.g., `chatcmpl-abc123`) | | `apiEndpoint` | `"/chat/completions" \| "/v1/messages" \| "/responses" \| "ws:/responses"` | | API endpoint used for the model call; useful for observability and cost attribution. `ws:/responses` is the websocket variant of the responses API | | `providerCallId` | `string` | | GitHub request tracing ID (`x-github-request-id`) | -| `parentToolCallId` | `string` | | Set when usage originates from a sub-agent | +| `parentToolCallId` | `string` | | Deprecated. Use envelope-level `agentId` for sub-agent attribution | | `quotaSnapshots` | `Record` | | Per-quota resource usage, keyed by quota identifier | | `copilotUsage` | `CopilotUsage` | | Itemized token cost breakdown from the API | @@ -315,7 +440,7 @@ Emitted when a tool begins executing. | `arguments` | `object` | | Parsed arguments passed to the tool | | `mcpServerName` | `string` | | MCP server name, when the tool is provided by an MCP server | | `mcpToolName` | `string` | | Original tool name on the MCP server | -| `parentToolCallId` | `string` | | Set when invoked by a sub-agent | +| `parentToolCallId` | `string` | | Deprecated. Use envelope-level `agentId` for sub-agent attribution | ### `tool.execution_partial_result` @@ -349,7 +474,7 @@ Emitted when a tool finishes executing—successfully or with an error. | `result` | `Result` | | Present on success (see below) | | `error` | `{ message, code? }` | | Present on failure | | `toolTelemetry` | `object` | | Tool-specific telemetry (e.g., CodeQL check counts) | -| `parentToolCallId` | `string` | | Set when invoked by a sub-agent | +| `parentToolCallId` | `string` | | Deprecated. Use envelope-level `agentId` for sub-agent attribution | **`Result` fields:** @@ -760,6 +885,8 @@ session.idle → Ready for next message (ephemeral) ## All event types at a glance +This table lists key `data` payload fields. Common envelope fields are documented above. + | Event Type | Ephemeral | Category | Key Data Fields | |------------|-----------|----------|-----------------| | `assistant.turn_start` | | Assistant | `turnId`, `interactionId?` | @@ -768,7 +895,7 @@ session.idle → Ready for next message (ephemeral) | `assistant.reasoning_delta` | ✅ | Assistant | `reasoningId`, `deltaContent` | | `assistant.streaming_delta` | ✅ | Assistant | `totalResponseSizeBytes` | | `assistant.message` | | Assistant | `messageId`, `content`, `toolRequests?`, `outputTokens?`, `phase?` | -| `assistant.message_delta` | ✅ | Assistant | `messageId`, `deltaContent`, `parentToolCallId?` | +| `assistant.message_delta` | ✅ | Assistant | `messageId`, `deltaContent` | | `assistant.turn_end` | | Assistant | `turnId` | | `assistant.usage` | ✅ | Assistant | `model`, `apiEndpoint?`, `inputTokens?`, `outputTokens?`, `cost?`, `duration?` | | `tool.user_requested` | | Tool | `toolCallId`, `toolName`, `arguments?` | diff --git a/content/copilot/how-tos/copilot-sdk/index.md b/content/copilot/how-tos/copilot-sdk/index.md index 227c147609d7..094b1f3411a1 100644 --- a/content/copilot/how-tos/copilot-sdk/index.md +++ b/content/copilot/how-tos/copilot-sdk/index.md @@ -22,3 +22,4 @@ children: + diff --git a/content/copilot/how-tos/copilot-sdk/integrations/microsoft-agent-framework.md b/content/copilot/how-tos/copilot-sdk/integrations/microsoft-agent-framework.md index 299ef507dc71..bf97add8a1f3 100644 --- a/content/copilot/how-tos/copilot-sdk/integrations/microsoft-agent-framework.md +++ b/content/copilot/how-tos/copilot-sdk/integrations/microsoft-agent-framework.md @@ -132,7 +132,7 @@ var client = new CopilotClient(); client.start().get(); var session = client.createSession(new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -228,7 +228,7 @@ const getWeather = DefineTool({ const client = new CopilotClient(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", tools: [getWeather], onPermissionRequest: async () => ({ kind: "approve-once" }), }); @@ -264,7 +264,7 @@ try (var client = new CopilotClient()) { client.start().get(); var session = client.createSession(new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setTools(List.of(getWeather)) .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -307,7 +307,7 @@ AIAgent reviewer = copilotClient.AsAIAgent(new AIAgentOptions // Azure OpenAI agent for generating documentation AIAgent documentor = AIAgent.FromOpenAI(new OpenAIAgentOptions { - Model = "gpt-4.1", + Model = "gpt-5.4", Instructions = "You write clear, concise documentation for code changes.", }); @@ -340,7 +340,7 @@ async def main(): # OpenAI agent for documentation documentor = OpenAIAgent( - model="gpt-4.1", + model="gpt-5.4", instructions="You write clear, concise documentation for code changes.", ) @@ -369,7 +369,7 @@ client.start().get(); // Step 1: Code review session var reviewer = client.createSession(new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -379,7 +379,7 @@ var review = reviewer.sendAndWait(new MessageOptions() // Step 2: Documentation session using review output var documentor = client.createSession(new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -444,12 +444,12 @@ var client = new CopilotClient(); client.start().get(); var securitySession = client.createSession(new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); var perfSession = client.createSession(new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -530,7 +530,7 @@ import { CopilotClient } from "@github/copilot-sdk"; const client = new CopilotClient(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", streaming: true, onPermissionRequest: async () => ({ kind: "approve-once" }), }); @@ -555,7 +555,7 @@ var client = new CopilotClient(); client.start().get(); var session = client.createSession(new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setStreaming(true) .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -610,7 +610,7 @@ import { CopilotClient } from "@github/copilot-sdk"; const client = new CopilotClient(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", onPermissionRequest: async () => ({ kind: "approve-once" }), }); const response = await session.sendAndWait({ prompt: "Explain this code" }); diff --git a/content/copilot/how-tos/copilot-sdk/setup/azure-managed-identity.md b/content/copilot/how-tos/copilot-sdk/setup/azure-managed-identity.md index 7f228f5edcf9..cad294875432 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/azure-managed-identity.md +++ b/content/copilot/how-tos/copilot-sdk/setup/azure-managed-identity.md @@ -2,11 +2,12 @@ title: Azure managed identity with BYOK shortTitle: Azure Managed Identity intro: >- - The Copilot SDK's [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/byok) accepts static API keys, but - Azure deployments often use **Managed Identity** (Microsoft Entra ID) instead - of long-lived keys. Since the SDK doesn't natively support Microsoft Entra - authentication, you can use a short-lived bearer token via the `bearer_token` - provider config field. + The GitHub Copilot SDK's [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/byok) supports static API + keys, but Azure deployments often use **Managed Identity** (Microsoft Entra + ID) instead of long-lived keys. The GitHub Copilot SDK is designed to compose + with the Azure Identity SDK for maximum flexibility. Supply a bearer token + provider callback that can fetch fresh tokens on demand using an Azure + Identity SDK API. versions: fpt: '*' ghec: '*' @@ -18,15 +19,17 @@ contentType: how-tos -This guide shows how to use the Azure Identity SDK's `DefaultAzureCredential` API to authenticate with Microsoft Foundry models through the Copilot SDK. +This guide shows how to use Azure Identity SDK APIs to authenticate with Microsoft Foundry models through the GitHub Copilot SDK. Most languages use `DefaultAzureCredential`; Rust uses `DeveloperToolsCredential` locally and `ManagedIdentityCredential` in Azure. ## How it works -Microsoft Foundry's OpenAI-compatible endpoint accepts bearer tokens from Microsoft Entra ID in place of static API keys. The pattern is: +Microsoft Foundry's OpenAI-compatible endpoint (`https://.openai.azure.com/openai/v1/`) accepts bearer tokens from Microsoft Entra ID in place of static API keys. This guide uses a token provider callback so the GitHub Copilot SDK runtime can request fresh tokens on demand. -1. Use `DefaultAzureCredential` to obtain a token for the `https://ai.azure.com/.default` scope -1. Pass the token as the `bearer_token` in the BYOK provider config -1. Refresh the token before it expires (tokens are typically valid for ~1 hour) +Using Python as an example, the flow is: + +1. Configure `DefaultAzureCredential` for your environment. +1. Pass a callback, in `bearer_token_provider` of the BYOK provider configuration, that uses `DefaultAzureCredential` to obtain a token for the `https://ai.azure.com/.default` scope. +1. Let the GitHub Copilot SDK request fresh tokens on demand through that callback. ![Diagram: Sequence diagram showing the described process.](/assets/images/help/copilot/copilot-sdk/setup-azure-managed-identity-diagram-0.png) @@ -34,7 +37,7 @@ Microsoft Foundry's OpenAI-compatible endpoint accepts bearer tokens from Micros ### Prerequisites -Install the Azure Identity and Copilot SDK packages for your language: +Install the Azure Identity and GitHub Copilot SDK packages for your language: {% codetabs %} {% codetab dotnet %} @@ -46,6 +49,35 @@ dotnet add package GitHub.Copilot.SDK dotnet add package Azure.Core ``` +{% endcodetab %} +{% codetab go %} + + + +```bash +go get github.com/github/copilot-sdk/go +go get github.com/Azure/azure-sdk-for-go/sdk/azidentity +``` + +{% endcodetab %} +{% codetab java %} + + + +```xml + + com.github + copilot-sdk-java + ${copilot.sdk.version} + + + + com.azure + azure-identity + ${azure.identity.version} + +``` + {% endcodetab %} {% codetab python %} @@ -55,6 +87,16 @@ dotnet add package Azure.Core pip install github-copilot-sdk azure-identity ``` +{% endcodetab %} +{% codetab rust %} + + + +```bash +cargo add github-copilot-sdk azure_identity azure_core +cargo add tokio --features macros,rt-multi-thread +``` + {% endcodetab %} {% codetab typescript %} @@ -67,9 +109,11 @@ npm install @github/copilot-sdk @azure/identity {% endcodetab %} {% endcodetabs %} -### Basic usage +### Use a token provider callback + +Use this approach when you want the GitHub Copilot SDK runtime to request fresh tokens on demand through a callback that you provide. The Azure Identity SDK handles token caching and refresh timing. -Get a token using `DefaultAzureCredential` and pass it as the bearer token in your provider configuration: +Here are language-specific implementations: {% codetabs %} {% codetab dotnet %} @@ -83,11 +127,8 @@ using GitHub.Copilot; DefaultAzureCredential credential = new( DefaultAzureCredential.DefaultEnvironmentVariableName); -AccessToken token = await credential.GetTokenAsync( - new TokenRequestContext(new[] { "https://ai.azure.com/.default" })); - await using CopilotClient client = new(); -string? foundryUrl = Environment.GetEnvironmentVariable("FOUNDRY_RESOURCE_URL"); +string foundryUrl = Environment.GetEnvironmentVariable("FOUNDRY_RESOURCE_URL")!; await using CopilotSession session = await client.CreateSessionAsync(new SessionConfig { @@ -95,8 +136,13 @@ await using CopilotSession session = await client.CreateSessionAsync(new Session Provider = new ProviderConfig { Type = "openai", - BaseUrl = $"{foundryUrl!.TrimEnd('/')}/openai/v1/", - BearerToken = token.Token, + BaseUrl = $"{foundryUrl}/openai/v1/", + BearerTokenProvider = async _ => + { + AccessToken token = await credential.GetTokenAsync( + new TokenRequestContext(["https://ai.azure.com/.default"])); + return token.Token; + }, WireApi = "responses", }, }); @@ -106,6 +152,133 @@ AssistantMessageEvent? response = await session.SendAndWaitAsync( Console.WriteLine(response?.Data.Content); ``` +{% endcodetab %} +{% codetab go %} + + + +```golang +package main + +import ( + "context" + "fmt" + "log" + "os" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + copilot "github.com/github/copilot-sdk/go" +) +func main() { + opts := azidentity.DefaultAzureCredentialOptions{RequireAzureTokenCredentials: true} + credential, err := azidentity.NewDefaultAzureCredential(&opts) + if err != nil { + log.Fatal(err) + } + + getBearerToken := func(args copilot.ProviderTokenArgs) (string, error) { + token, err := credential.GetToken(context.Background(), policy.TokenRequestOptions{ + Scopes: []string{"https://ai.azure.com/.default"}, + }) + if err != nil { + return "", err + } + return token.Token, nil + } + + client := copilot.NewClient(nil) + if err := client.Start(context.Background()); err != nil { + log.Fatal(err) + } + defer client.Stop() + + foundryURL := os.Getenv("FOUNDRY_RESOURCE_URL") + + session, err := client.CreateSession(context.Background(), &copilot.SessionConfig{ + Model: "gpt-5.5", + Provider: &copilot.ProviderConfig{ + Type: "openai", + BaseURL: fmt.Sprintf("%s/openai/v1/", foundryURL), + BearerTokenProvider: getBearerToken, + WireAPI: "responses", + }, + }) + if err != nil { + log.Fatal(err) + } + defer session.Disconnect() + + ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) + defer cancel() + + response, err := session.SendAndWait(ctx, copilot.MessageOptions{ + Prompt: "Hello from Managed Identity!", + }) + if err != nil { + log.Fatal(err) + } + + if response != nil { + if data, ok := response.Data.(*copilot.AssistantMessageData); ok { + fmt.Println(data.Content) + } + } +} +``` + +{% endcodetab %} +{% codetab java %} + + + +```java +import com.azure.core.credential.TokenRequestContext; +import com.azure.identity.AzureIdentityEnvVars; +import com.azure.identity.DefaultAzureCredentialBuilder; +import com.github.copilot.CopilotClient; +import com.github.copilot.generated.AssistantMessageEvent; +import com.github.copilot.rpc.BearerTokenProvider; +import com.github.copilot.rpc.MessageOptions; +import com.github.copilot.rpc.ProviderConfig; +import com.github.copilot.rpc.SessionConfig; + +public class ManagedIdentityExample { + public static void main(String[] args) throws Exception { + var credential = new DefaultAzureCredentialBuilder() + .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS) + .build(); + BearerTokenProvider tokenProvider = providerArgs -> + credential + .getToken(new TokenRequestContext().addScopes("https://ai.azure.com/.default")) + .map(accessToken -> accessToken.getToken()) + .toFuture(); + String foundryUrl = System.getenv("FOUNDRY_RESOURCE_URL"); + + try (var client = new CopilotClient()) { + client.start().get(); + + var session = client.createSession(new SessionConfig() + .setModel("gpt-5.5") + .setProvider(new ProviderConfig() + .setType("openai") + .setBaseUrl(foundryUrl + "/openai/v1/") + .setBearerTokenProvider(tokenProvider) + .setWireApi("responses"))) + .get(); + + AssistantMessageEvent response = session + .sendAndWait(new MessageOptions().setPrompt("Hello from Managed Identity!")) + .get(); + System.out.println(response.getData().content()); + + session.disconnect().get(); + } + } +} +``` + {% endcodetab %} {% codetab python %} @@ -115,17 +288,15 @@ Console.WriteLine(response?.Data.Content); import asyncio import os -from azure.identity import DefaultAzureCredential +from azure.identity.aio import DefaultAzureCredential from copilot import CopilotClient from copilot.session import PermissionHandler, ProviderConfig -SCOPE = "https://ai.azure.com/.default" - - async def main(): - # Get a token using Managed Identity, Azure CLI, or other credential chain credential = DefaultAzureCredential(require_envvar=True) - token = credential.get_token(SCOPE).token + async def get_bearer_token(_args) -> str: + token = await credential.get_token("https://ai.azure.com/.default") + return token.token foundry_url = os.environ["FOUNDRY_RESOURCE_URL"] @@ -138,7 +309,7 @@ async def main(): provider=ProviderConfig( type="openai", base_url=f"{foundry_url.rstrip('/')}/openai/v1/", - bearer_token=token, # Short-lived bearer token + bearer_token_provider=get_bearer_token, wire_api="responses", ), ) @@ -147,11 +318,74 @@ async def main(): print(response.data.content) await client.stop() + await credential.close() asyncio.run(main()) ``` +{% endcodetab %} +{% codetab rust %} + + + +```rust +use std::sync::Arc; + +use azure_core::credentials::TokenCredential; +use azure_identity::{DeveloperToolsCredential, ManagedIdentityCredential}; +use github_copilot_sdk::{BearerTokenError, Client, ClientOptions, MessageOptions, ProviderTokenArgs}; +use github_copilot_sdk::types::{ProviderConfig, SessionConfig}; + +fn credential_for_environment() -> azure_core::Result> { + match std::env::var("AZURE_TOKEN_CREDENTIALS").as_deref() { + Ok("ManagedIdentityCredential") => Ok(ManagedIdentityCredential::new(None)?), + _ => Ok(DeveloperToolsCredential::new(None)?), + } +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + let credential = credential_for_environment()?; + let foundry_url = std::env::var("FOUNDRY_RESOURCE_URL")?; + + let get_bearer_token = { + let credential = credential.clone(); + move |_args: ProviderTokenArgs| { + let credential = credential.clone(); + async move { + let token = credential + .get_token(&["https://ai.azure.com/.default"], None) + .await + .map_err(|err| BearerTokenError::message(err.to_string()))?; + Ok(token.token.secret().to_string()) + } + } + }; + + let mut provider = ProviderConfig::default(); + provider.provider_type = Some("openai".to_string()); + provider.base_url = format!("{}/openai/v1/", foundry_url.trim_end_matches('/')); + provider.bearer_token_provider = Some(Arc::new(get_bearer_token)); + provider.wire_api = Some("responses".to_string()); + + let mut config = SessionConfig::default(); + config.model = Some("gpt-5.5".to_string()); + config.provider = Some(provider); + + let client = Client::start(ClientOptions::default()).await?; + let session = client.create_session(config).await?; + + session + .send_and_wait(MessageOptions::new("Hello from Managed Identity!")) + .await?; + + session.disconnect().await?; + client.stop().await?; + Ok(()) +} +``` + {% endcodetab %} {% codetab typescript %} @@ -164,9 +398,10 @@ import { CopilotClient } from "@github/copilot-sdk"; const credential = new DefaultAzureCredential({ requiredEnvVars: ["AZURE_TOKEN_CREDENTIALS"], }); -const tokenResponse = await credential.getToken( - "https://ai.azure.com/.default" -); +const getBearerToken = async () => { + const tokenResponse = await credential.getToken("https://ai.azure.com/.default"); + return tokenResponse.token; +}; const client = new CopilotClient(); @@ -175,12 +410,12 @@ const session = await client.createSession({ provider: { type: "openai", baseUrl: `${process.env.FOUNDRY_RESOURCE_URL}/openai/v1/`, - bearerToken: tokenResponse.token, + bearerTokenProvider: getBearerToken, wireApi: "responses", }, }); -const response = await session.sendAndWait({ prompt: "Hello!" }); +const response = await session.sendAndWait({ prompt: "Hello from Managed Identity!" }); console.log(response?.data.content); await client.stop(); @@ -189,71 +424,28 @@ await client.stop(); {% endcodetab %} {% endcodetabs %} -### Token refresh for long-running applications - -Bearer tokens expire (typically after ~1 hour). For servers or long-running agents, refresh the token before creating each session. The following Python example demonstrates this pattern: - - - -```python -from azure.identity import DefaultAzureCredential -from copilot import CopilotClient -from copilot.session import PermissionHandler, ProviderConfig - -SCOPE = "https://ai.azure.com/.default" - - -class ManagedIdentityCopilotAgent: - """Copilot agent that refreshes Microsoft Entra tokens for Microsoft Foundry.""" - - def __init__(self, foundry_url: str, model: str = "gpt-5.5"): - self.foundry_url = foundry_url.rstrip("/") - self.model = model - self.credential = DefaultAzureCredential(require_envvar=True) - self.client = CopilotClient() - - def _get_provider_config(self) -> ProviderConfig: - """Build a ProviderConfig with a fresh bearer token.""" - token = self.credential.get_token(SCOPE).token - return ProviderConfig( - type="openai", - base_url=f"{self.foundry_url}/openai/v1/", - bearer_token=token, - wire_api="responses", - ) - - async def chat(self, prompt: str) -> str: - """Send a prompt and return the response text.""" - # Fresh token for each session - session = await self.client.create_session( - on_permission_request=PermissionHandler.approve_all, - model=self.model, - provider=self._get_provider_config(), - ) - - response = await session.send_and_wait(prompt) - await session.disconnect() - - return response.data.content if response else "" -``` - ## Environment configuration | Variable | Description | Example | |----------|-------------|---------| | `AZURE_TOKEN_CREDENTIALS` | When running in **Azure**, set it to `ManagedIdentityCredential`. When running **locally**, set it to either `dev` or a developer tool credential name, such as `AzureCliCredential`. | `ManagedIdentityCredential` | +| `AZURE_CLIENT_ID` | *Optional.* When running in **Azure**, set this to the client ID of a User-assigned Managed Identity when using `ManagedIdentityCredential`. If not set, Azure uses the System-assigned Managed Identity. | `11111111-2222-3333-4444-555555555555` | | `FOUNDRY_RESOURCE_URL` | Your Microsoft Foundry resource URL | `https://.openai.azure.com` | -No API key environment variable is needed—authentication is handled by `DefaultAzureCredential`, which automatically supports: +No API key environment variable is needed—authentication is handled by Azure Identity credentials. In .NET, Go, Java, Python, and TypeScript, `DefaultAzureCredential` automatically supports: -* **Managed Identity** (system-assigned or user-assigned): for Azure-hosted apps +* **Managed Identity** (System-assigned or User-assigned): for Azure-hosted apps * **Azure CLI** (`az login`): for local development * **Environment variables** (`AZURE_CLIENT_ID`, `AZURE_TENANT_ID`, `AZURE_CLIENT_SECRET`): for service principals * **Workload Identity**: for Kubernetes -See the `DefaultAzureCredential` documentation for the full credential chain: +In .NET, Go, Java, Python, and TypeScript, `ManagedIdentityCredential` reads `AZURE_CLIENT_ID` to select a User-assigned Managed Identity. Rust is an exception in this guide. + +In Rust, use `DeveloperToolsCredential` for local development and `ManagedIdentityCredential` when running in Azure. For other languages, see the `DefaultAzureCredential` documentation for the full credential chain: * [.NET](https://aka.ms/azsdk/net/identity/credential-chains#defaultazurecredential-overview) +* [Go](https://aka.ms/azsdk/go/identity/credential-chains#defaultazurecredential-overview) +* [Java](https://aka.ms/azsdk/java/identity/credential-chains#defaultazurecredential-overview) * [Python](https://aka.ms/azsdk/python/identity/credential-chains#defaultazurecredential-overview) * [TypeScript](https://aka.ms/azsdk/js/identity/credential-chains#defaultazurecredential-overview) @@ -271,4 +463,3 @@ See the `DefaultAzureCredential` documentation for the full credential chain: * [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/byok): Static API key configuration * [AUTOTITLE](/copilot/how-tos/copilot-sdk/setup/backend-services): Server-side deployment -* [Azure Identity documentation](https://learn.microsoft.com/python/api/overview/azure/identity-readme) diff --git a/content/copilot/how-tos/copilot-sdk/setup/backend-services.md b/content/copilot/how-tos/copilot-sdk/setup/backend-services.md index 674a216528b5..d5f7672802e2 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/backend-services.md +++ b/content/copilot/how-tos/copilot-sdk/setup/backend-services.md @@ -114,7 +114,7 @@ const client = new CopilotClient({ const session = await client.createSession({ sessionId: `user-${userId}-${Date.now()}`, - model: "gpt-4.1", + model: "gpt-5.4", availableTools: ["custom:*"], gitHubToken: user.githubToken, }); @@ -135,7 +135,7 @@ client = CopilotClient( ) await client.start() -session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-4.1", session_id=f"user-{user_id}-{int(time.time())}") +session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-5.4", session_id=f"user-{user_id}-{int(time.time())}") response = await session.send_and_wait(message) ``` @@ -166,7 +166,7 @@ func main() { session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ SessionID: fmt.Sprintf("user-%s-%d", userID, time.Now().Unix()), - Model: "gpt-4.1", + Model: "gpt-5.4", }) response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: message}) @@ -183,7 +183,7 @@ defer client.Stop() session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ SessionID: fmt.Sprintf("user-%s-%d", userID, time.Now().Unix()), - Model: "gpt-4.1", + Model: "gpt-5.4", }) response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: message}) @@ -206,7 +206,7 @@ var client = new CopilotClient(new CopilotClientOptions await using var session = await client.CreateSessionAsync(new SessionConfig { SessionId = $"user-{userId}-{DateTimeOffset.UtcNow.ToUnixTimeSeconds()}", - Model = "gpt-4.1", + Model = "gpt-5.4", }); var response = await session.SendAndWaitAsync( @@ -222,7 +222,7 @@ var client = new CopilotClient(new CopilotClientOptions await using var session = await client.CreateSessionAsync(new SessionConfig { SessionId = $"user-{userId}-{DateTimeOffset.UtcNow.ToUnixTimeSeconds()}", - Model = "gpt-4.1", + Model = "gpt-5.4", }); var response = await session.SendAndWaitAsync( @@ -248,7 +248,7 @@ try { var session = client.createSession(new SessionConfig() .setSessionId(String.format("user-%s-%d", userId, System.currentTimeMillis() / 1000)) - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -290,7 +290,7 @@ const client = new CopilotClient({ app.post("/chat", authMiddleware, async (req, res) => { const session = await client.createSession({ sessionId: `user-${req.user.id}-chat`, - model: "gpt-4.1", + model: "gpt-5.4", availableTools: ["custom:*"], gitHubToken: req.user.githubToken, }); @@ -313,7 +313,7 @@ const client = new CopilotClient({ }); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", provider: { type: "openai", baseUrl: "https://api.openai.com/v1", @@ -351,7 +351,7 @@ app.post("/api/chat", async (req, res) => { } catch { session = await client.createSession({ sessionId, - model: "gpt-4.1", + model: "gpt-5.4", availableTools: ["custom:*"], gitHubToken: req.user.githubToken, }); @@ -380,7 +380,7 @@ const client = new CopilotClient({ async function processJob(job: Job) { const session = await client.createSession({ sessionId: `job-${job.id}`, - model: "gpt-4.1", + model: "gpt-5.4", }); const response = await session.sendAndWait({ diff --git a/content/copilot/how-tos/copilot-sdk/setup/bundled-cli.md b/content/copilot/how-tos/copilot-sdk/setup/bundled-cli.md index 4c9b04c41185..252d20e94496 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/bundled-cli.md +++ b/content/copilot/how-tos/copilot-sdk/setup/bundled-cli.md @@ -48,7 +48,7 @@ import { CopilotClient } from "@github/copilot-sdk"; const client = new CopilotClient(); -const session = await client.createSession({ model: "gpt-4.1" }); +const session = await client.createSession({ model: "gpt-5.4" }); const response = await session.sendAndWait({ prompt: "Hello!" }); console.log(response?.data.content); @@ -65,7 +65,7 @@ from copilot.session import PermissionHandler client = CopilotClient() await client.start() -session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-4.1") +session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-5.4") response = await session.send_and_wait("Hello!") print(response.data.content) @@ -97,7 +97,7 @@ func main() { } defer client.Stop() - session, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: "gpt-4.1"}) + session, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: "gpt-5.4"}) response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: "Hello!"}) if d, ok := response.Data.(*copilot.AssistantMessageData); ok { fmt.Println(d.Content) @@ -112,7 +112,7 @@ if err := client.Start(ctx); err != nil { } defer client.Stop() -session, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: "gpt-4.1"}) +session, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: "gpt-5.4"}) response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: "Hello!"}) if d, ok := response.Data.(*copilot.AssistantMessageData); ok { fmt.Println(d.Content) @@ -125,7 +125,7 @@ if d, ok := response.Data.(*copilot.AssistantMessageData); ok { ```csharp await using var client = new CopilotClient(); await using var session = await client.CreateSessionAsync( - new SessionConfig { Model = "gpt-4.1" }); + new SessionConfig { Model = "gpt-5.4" }); var response = await session.SendAndWaitAsync( new MessageOptions { Prompt = "Hello!" }); @@ -149,7 +149,7 @@ var client = new CopilotClient(new CopilotClientOptions() client.start().get(); var session = client.createSession(new SessionConfig() - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); @@ -198,7 +198,7 @@ If you manage your own model provider keys, users don't need GitHub accounts at const client = new CopilotClient(); const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", provider: { type: "openai", baseUrl: "https://api.openai.com/v1", @@ -220,7 +220,7 @@ const client = new CopilotClient(); const sessionId = `project-${projectName}`; const session = await client.createSession({ sessionId, - model: "gpt-4.1", + model: "gpt-5.4", }); // User closes app... diff --git a/content/copilot/how-tos/copilot-sdk/setup/choosing-a-setup-path.md b/content/copilot/how-tos/copilot-sdk/setup/choosing-a-setup-path.md index 1fc8528d435e..79d5e41f9608 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/choosing-a-setup-path.md +++ b/content/copilot/how-tos/copilot-sdk/setup/choosing-a-setup-path.md @@ -81,7 +81,7 @@ Use this table to find the right guides based on what you need to do: | Getting started quickly | [AUTOTITLE](/copilot/how-tos/copilot-sdk/setup/bundled-cli) | | Use your own CLI binary or server | [AUTOTITLE](/copilot/how-tos/copilot-sdk/setup/local-cli) | | Users sign in with GitHub | [AUTOTITLE](/copilot/how-tos/copilot-sdk/setup/github-oauth) | -| Use your own model keys (OpenAI, Azure, etc.) | [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/byok) | +| Use your own model keys (OpenAI, Azure, and more) | [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/byok) | | Azure BYOK with Managed Identity (no API keys) | [AUTOTITLE](/copilot/how-tos/copilot-sdk/setup/azure-managed-identity) | | Run the SDK on a server | [AUTOTITLE](/copilot/how-tos/copilot-sdk/setup/backend-services) | | Configure SDK options for concurrent users | [AUTOTITLE](/copilot/how-tos/copilot-sdk/setup/multi-tenancy) | diff --git a/content/copilot/how-tos/copilot-sdk/setup/github-oauth.md b/content/copilot/how-tos/copilot-sdk/setup/github-oauth.md index ddb3c29df73b..326ebc3001cf 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/github-oauth.md +++ b/content/copilot/how-tos/copilot-sdk/setup/github-oauth.md @@ -95,7 +95,7 @@ function createClientForUser(userToken: string): CopilotClient { const client = createClientForUser("gho_user_access_token"); const session = await client.createSession({ sessionId: `user-${userId}-session`, - model: "gpt-4.1", + model: "gpt-5.4", }); const response = await session.sendAndWait({ prompt: "Hello!" }); @@ -118,7 +118,7 @@ def create_client_for_user(user_token: str) -> CopilotClient: client = create_client_for_user("gho_user_access_token") await client.start() -session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-4.1", session_id=f"user-{user_id}-session") +session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-5.4", session_id=f"user-{user_id}-session") response = await session.send_and_wait("Hello!") ``` @@ -152,7 +152,7 @@ func main() { session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ SessionID: fmt.Sprintf("user-%s-session", userID), - Model: "gpt-4.1", + Model: "gpt-5.4", }) response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: "Hello!"}) _ = response @@ -174,7 +174,7 @@ defer client.Stop() session, _ := client.CreateSession(ctx, &copilot.SessionConfig{ SessionID: fmt.Sprintf("user-%s-session", userID), - Model: "gpt-4.1", + Model: "gpt-5.4", }) response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: "Hello!"}) ``` @@ -198,7 +198,7 @@ await using var client = CreateClientForUser("gho_user_access_token"); await using var session = await client.CreateSessionAsync(new SessionConfig { SessionId = $"user-{userId}-session", - Model = "gpt-4.1", + Model = "gpt-5.4", }); var response = await session.SendAndWaitAsync( @@ -218,7 +218,7 @@ await using var client = CreateClientForUser("gho_user_access_token"); await using var session = await client.CreateSessionAsync(new SessionConfig { SessionId = $"user-{userId}-session", - Model = "gpt-4.1", + Model = "gpt-5.4", }); var response = await session.SendAndWaitAsync( @@ -248,7 +248,7 @@ var userId = "user1"; try (var client = createClientForUser("gho_user_access_token")) { var session = client.createSession(new SessionConfig() .setSessionId(String.format("user-%s-session", userId)) - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setOnPermissionRequest(PermissionHandler.APPROVE_ALL) ).get(); diff --git a/content/copilot/how-tos/copilot-sdk/setup/local-cli.md b/content/copilot/how-tos/copilot-sdk/setup/local-cli.md index 81adbda1a09e..ff7d85572dfe 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/local-cli.md +++ b/content/copilot/how-tos/copilot-sdk/setup/local-cli.md @@ -44,7 +44,7 @@ const client = new CopilotClient({ cliPath: "/usr/local/bin/copilot", }); -const session = await client.createSession({ model: "gpt-4.1" }); +const session = await client.createSession({ model: "gpt-5.4" }); const response = await session.sendAndWait({ prompt: "Hello!" }); console.log(response?.data.content); @@ -64,7 +64,7 @@ client = CopilotClient({ }) await client.start() -session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-4.1") +session = await client.create_session(on_permission_request=PermissionHandler.approve_all, model="gpt-5.4") response = await session.send_and_wait("Hello!") if response: match response.data: @@ -101,7 +101,7 @@ func main() { } defer client.Stop() - session, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: "gpt-4.1"}) + session, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: "gpt-5.4"}) response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: "Hello!"}) if response != nil { if d, ok := response.Data.(*copilot.AssistantMessageData); ok { @@ -120,7 +120,7 @@ if err := client.Start(ctx); err != nil { } defer client.Stop() -session, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: "gpt-4.1"}) +session, _ := client.CreateSession(ctx, &copilot.SessionConfig{Model: "gpt-5.4"}) response, _ := session.SendAndWait(ctx, copilot.MessageOptions{Prompt: "Hello!"}) if response != nil { if d, ok := response.Data.(*copilot.AssistantMessageData); ok { @@ -139,7 +139,7 @@ var client = new CopilotClient(new CopilotClientOptions }); await using var session = await client.CreateSessionAsync( - new SessionConfig { Model = "gpt-4.1" }); + new SessionConfig { Model = "gpt-5.4" }); var response = await session.SendAndWaitAsync( new MessageOptions { Prompt = "Hello!" }); @@ -187,7 +187,7 @@ Sessions default to ephemeral. To create resumable sessions, provide your own se // Create a named session const session = await client.createSession({ sessionId: "my-project-analysis", - model: "gpt-4.1", + model: "gpt-5.4", }); // Later, resume it diff --git a/content/copilot/how-tos/copilot-sdk/setup/multi-tenancy.md b/content/copilot/how-tos/copilot-sdk/setup/multi-tenancy.md index 9fbe6d3870c3..0ca22cf23b7f 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/multi-tenancy.md +++ b/content/copilot/how-tos/copilot-sdk/setup/multi-tenancy.md @@ -63,7 +63,7 @@ const client = new CopilotClient({ const session = await client.createSession({ sessionId: `user-${user.id}-${crypto.randomUUID()}`, - model: "gpt-4.1", + model: "gpt-5.4", availableTools: ["custom:lookupOrder", "custom:createTicket"], gitHubToken: user.githubToken, }); @@ -86,7 +86,7 @@ await client.start() session = await client.create_session( session_id=f"user-{user.id}-{request_id}", - model="gpt-4.1", + model="gpt-5.4", available_tools=["custom:lookupOrder", "custom:createTicket"], github_token=user.github_token, on_permission_request=PermissionHandler.approve_all, @@ -127,7 +127,7 @@ func main() { session, err := client.CreateSession(ctx, &copilot.SessionConfig{ SessionID: fmt.Sprintf("user-%s-%s", user.ID, requestID), - Model: "gpt-4.1", + Model: "gpt-5.4", AvailableTools: []string{"custom:lookupOrder", "custom:createTicket"}, GitHubToken: user.GitHubToken, }) @@ -146,7 +146,7 @@ client := copilot.NewClient(&copilot.ClientOptions{ session, err := client.CreateSession(ctx, &copilot.SessionConfig{ SessionID: fmt.Sprintf("user-%s-%s", user.ID, requestID), - Model: "gpt-4.1", + Model: "gpt-5.4", AvailableTools: []string{"custom:lookupOrder", "custom:createTicket"}, GitHubToken: user.GitHubToken, }) @@ -174,7 +174,7 @@ var client = new CopilotClient(new CopilotClientOptions await using var session = await client.CreateSessionAsync(new SessionConfig { SessionId = $"user-{user.Id}-{requestId}", - Model = "gpt-4.1", + Model = "gpt-5.4", AvailableTools = ["custom:lookupOrder", "custom:createTicket"], GitHubToken = user.GitHubToken, }); @@ -192,7 +192,7 @@ var client = new CopilotClient(new CopilotClientOptions await using var session = await client.CreateSessionAsync(new SessionConfig { SessionId = $"user-{user.Id}-{requestId}", - Model = "gpt-4.1", + Model = "gpt-5.4", AvailableTools = ["custom:lookupOrder", "custom:createTicket"], GitHubToken = user.GitHubToken, }); @@ -225,7 +225,7 @@ public class MultiTenancyExample { var session = client.createSession(new SessionConfig() .setSessionId("user-" + user.id() + "-" + requestId) - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setAvailableTools(List.of("custom:lookupOrder", "custom:createTicket")) .setGitHubToken(user.gitHubToken()) ).get(); @@ -243,7 +243,7 @@ var client = new CopilotClient(new CopilotClientOptions() var session = client.createSession(new SessionConfig() .setSessionId("user-" + user.id() + "-" + requestId) - .setModel("gpt-4.1") + .setModel("gpt-5.4") .setAvailableTools(List.of("custom:lookupOrder", "custom:createTicket")) .setGitHubToken(user.gitHubToken()) ).get(); @@ -275,7 +275,7 @@ let client = Client::start( let session = client.create_session( SessionConfig::default() .with_session_id(format!("user-{}-{request_id}", user.id)) - .with_model("gpt-4.1") + .with_model("gpt-5.4") .with_available_tools(["custom:lookupOrder", "custom:createTicket"]) .with_github_token(user.github_token), ).await?; @@ -366,7 +366,7 @@ Set `gitHubToken` on each session to scope GitHub auth to the requesting user. T ```typescript const session = await client.createSession({ sessionId: `user-${user.id}-support`, - model: "gpt-4.1", + model: "gpt-5.4", availableTools: ["custom:*"], gitHubToken: user.githubToken, }); diff --git a/content/copilot/how-tos/copilot-sdk/setup/scaling.md b/content/copilot/how-tos/copilot-sdk/setup/scaling.md index d45441808b01..0339a9df91b2 100644 --- a/content/copilot/how-tos/copilot-sdk/setup/scaling.md +++ b/content/copilot/how-tos/copilot-sdk/setup/scaling.md @@ -222,7 +222,7 @@ app.post("/chat", async (req, res) => { const session = await client.createSession({ sessionId: `user-${req.user.id}-chat`, - model: "gpt-4.1", + model: "gpt-5.4", }); const response = await session.sendAndWait({ prompt: req.body.message }); @@ -272,7 +272,7 @@ class SessionManager { // Create or resume const session = await client.createSession({ sessionId, - model: "gpt-4.1", + model: "gpt-5.4", }); this.activeSessions.set(sessionId, session); @@ -300,7 +300,7 @@ For stateless API endpoints where each request is independent: ```typescript app.post("/api/analyze", async (req, res) => { const session = await client.createSession({ - model: "gpt-4.1", + model: "gpt-5.4", }); try { @@ -325,7 +325,7 @@ app.post("/api/chat/start", async (req, res) => { const session = await client.createSession({ sessionId, - model: "gpt-4.1", + model: "gpt-5.4", infiniteSessions: { enabled: true, backgroundCompactionThreshold: 0.80, diff --git a/content/copilot/how-tos/copilot-sdk/troubleshooting/debugging.md b/content/copilot/how-tos/copilot-sdk/troubleshooting/debugging.md index 72d819632cd5..301053a71553 100644 --- a/content/copilot/how-tos/copilot-sdk/troubleshooting/debugging.md +++ b/content/copilot/how-tos/copilot-sdk/troubleshooting/debugging.md @@ -193,7 +193,7 @@ var client = new CopilotClient(new CopilotClientOptions **Solution:** -1. Install the CLI: [Installation guide](/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli) +1. Install the CLI: [Installation guide](/copilot/how-tos/set-up/install-copilot-cli) 1. Verify installation: diff --git a/content/copilot/how-tos/copilot-sdk/troubleshooting/mcp-debugging.md b/content/copilot/how-tos/copilot-sdk/troubleshooting/mcp-debugging.md index e6e751f7df2c..963ed27e1800 100644 --- a/content/copilot/how-tos/copilot-sdk/troubleshooting/mcp-debugging.md +++ b/content/copilot/how-tos/copilot-sdk/troubleshooting/mcp-debugging.md @@ -477,10 +477,10 @@ When opening an issue or asking for help, collect: * [ ] SDK language and version * [ ] CLI version (`copilot --version`) -* [ ] MCP server type (Node.js, Python, .NET, Go, Rust, etc.) +* [ ] MCP server type (Node.js, Python, .NET, Go, Rust, and more) * [ ] Full MCP server configuration (redact secrets) * [ ] Result of manual `initialize` test -* [ ] Result of manual `tools/list` test +* [ ] Result of manual `tools/list` test * [ ] Debug logs from SDK * [ ] Any error messages From 059e3bf2e12c71cd88bab17a2fa95175b079c63e Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Jul 2026 03:46:17 +0000 Subject: [PATCH 2/6] =?UTF-8?q?Add=206=20"Builder=20getting=20started"=20j?= =?UTF-8?q?ourney=20articles=20(Workstream=20A,=20Copilot=20Free=E2=80=93c?= =?UTF-8?q?ompliant,=20fpt+ghec+ghes)=20(#62186)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Vanessa Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Jenni C <97056108+dihydroJenoxide@users.noreply.github.com> Co-authored-by: Siara <108543037+SiaraMist@users.noreply.github.com> --- .../connecting-to-your-code-locally.md | 70 ++++++++ ...a-repository-for-your-project-on-github.md | 96 +++++++++++ .../deploying-your-website-automatically.md | 129 +++++++++++++++ .../get-started/start-your-journey/index.md | 18 +- .../start-your-journey/planning-your-work.md | 72 ++++++++ .../reviewing-your-proposed-changes.md | 104 ++++++++++++ .../start-your-journey/what-is-github.md | 10 +- .../writing-and-storing-your-code.md | 156 ++++++++++++++++++ .../enterprise/url-substitute-note.md | 2 + 9 files changed, 646 insertions(+), 11 deletions(-) create mode 100644 content/get-started/start-your-journey/connecting-to-your-code-locally.md create mode 100644 content/get-started/start-your-journey/creating-a-repository-for-your-project-on-github.md create mode 100644 content/get-started/start-your-journey/deploying-your-website-automatically.md create mode 100644 content/get-started/start-your-journey/planning-your-work.md create mode 100644 content/get-started/start-your-journey/reviewing-your-proposed-changes.md create mode 100644 content/get-started/start-your-journey/writing-and-storing-your-code.md create mode 100644 data/reusables/enterprise/url-substitute-note.md diff --git a/content/get-started/start-your-journey/connecting-to-your-code-locally.md b/content/get-started/start-your-journey/connecting-to-your-code-locally.md new file mode 100644 index 000000000000..6c38e9930245 --- /dev/null +++ b/content/get-started/start-your-journey/connecting-to-your-code-locally.md @@ -0,0 +1,70 @@ +--- +title: 'Connecting to your code locally' +shortTitle: 'Connect locally' +intro: 'Connect {% data variables.product.prodname_desktop %} to your account and clone your repository to edit files locally.' +category: + - Learn to code +contentType: get-started +versions: + fpt: '*' + ghes: '*' + ghec: '*' +--- + +So far, you've worked in the browser. In this tutorial, you'll use {% data variables.product.prodname_desktop %} to clone your repository to your computer so you can edit files in your own code editor. + +{% data reusables.enterprise.url-substitute-note %} + +## Prerequisites + +* A `stargazers-log` repository. If you haven't created it yet, see [AUTOTITLE](/get-started/start-your-journey/creating-a-repository-for-your-project-on-github). +* {% data variables.product.prodname_desktop %} installed on your computer. + +## Installing {% data variables.product.prodname_desktop %} + +If you don't have {% data variables.product.prodname_desktop %} yet, install it before you continue. [Download {% data variables.product.prodname_desktop %}](https://desktop.github.com/?ref_product=desktop&ref_type=engagement&ref_style=button). + +> [!TIP] +> {% data variables.product.prodname_docs %} contains documentation for all of {% data variables.product.company_short %}'s plans, and where relevant, tools and operating systems. To find content that matches your setup, use the **Version** dropdown in the top left corner of an article to select your plan, and select the tool or operating system tabs below the article's introduction. + +## Signing in to {% data variables.product.prodname_desktop %} + +Sign in so that {% data variables.product.prodname_desktop %} can access your repositories. + +1. Open {% data variables.product.prodname_desktop %}. +1. From the welcome screen, click {% ifversion fpt or ghec %}**Sign in to {% data variables.product.prodname_dotcom_the_website %}**{% else %}**Sign in to {% data variables.product.prodname_enterprise %}**{% endif %}. +1. Follow the prompts to authenticate with your {% data variables.product.github %} account and authorize the app. +1. Follow the steps to configure Git with your name and email address, which will be used for commits you make in {% data variables.product.prodname_desktop %}. + +If you don't see the welcome screen, follow the steps in [AUTOTITLE](/desktop/configuring-and-customizing-github-desktop/configuring-basic-settings-in-github-desktop) to sign in and manage your settings from the {% data variables.product.prodname_desktop %} menu. + +## Cloning your repository + +Cloning creates a copy of your repository on your computer that stays connected to the version on {% data variables.product.github %}. + +1. From the "Let's get started!" screen, select **`stargazers-log`** from the list of "Your repositories". +1. Directly below the repositories list, click **Clone OWNER/stargazers-log**, where OWNER is your {% data variables.product.github %} personal account. +1. Accept the default repository URL and local path, and click **Clone**. + +If you don't see the "Let's get started!" screen, follow the steps in [Cloning a repository](/desktop/adding-and-cloning-repositories/cloning-and-forking-repositories-from-github-desktop#cloning-a-repository) to clone your `stargazers-log` repository. + +## Opening your code in an editor + +With your repository cloned, open it in a code editor to start working on the files. + +1. In {% data variables.product.prodname_desktop %}, select **Repository**, then click **Open in EDITOR**. + * If you haven't set an editor yet, install one such as [{% data variables.product.prodname_vscode %}](https://code.visualstudio.com/) ({% data variables.product.prodname_vscode_shortname %}), then choose it in the **Advanced** section of {% data variables.product.prodname_desktop %} settings. + +1. Confirm that you can see your `index.html` and `README.md` files in the editor. + +## What you accomplished + +| Task | Outcome | +| ---- | ------- | +| Signed in to {% data variables.product.prodname_desktop %} | You connected {% data variables.product.prodname_desktop %} to your account. | +| Cloned your repository | You created a local copy of `stargazers-log` on your computer. | +| Opened your code | You opened the website files in a code editor, ready to make changes. | + +## Next steps + +* Now that your code is on your computer, build the first feature for your website. Continue to [AUTOTITLE](/get-started/start-your-journey/writing-and-storing-your-code). diff --git a/content/get-started/start-your-journey/creating-a-repository-for-your-project-on-github.md b/content/get-started/start-your-journey/creating-a-repository-for-your-project-on-github.md new file mode 100644 index 000000000000..5050e71e535d --- /dev/null +++ b/content/get-started/start-your-journey/creating-a-repository-for-your-project-on-github.md @@ -0,0 +1,96 @@ +--- +title: 'Creating a repository for your project on GitHub' +shortTitle: 'Create your repository' +intro: 'Create a repository on {% data variables.product.github %} to store your code, track its history, and build a software project you can share.' +allowTitleToDifferFromFilename: true +category: + - Learn to code +contentType: get-started +versions: + fpt: '*' + ghes: '*' + ghec: '*' +--- + +In this tutorial, you'll create the repository you'll use throughout this series. You'll build a small software project called `stargazers-log`. By the end of the journey, you'll plan work, write code, review changes, and deploy your code to a live website. + +`stargazers-log` is a simple website that tracks and displays repositories you have starred. It helps you build a personal catalog of tools and code examples you care about. Starring repositories also helps you bookmark projects for later and show appreciation to maintainers. + +{% data reusables.enterprise.url-substitute-note %} + +## Prerequisites + +{% ifversion fpt or ghec %} + +* An account on {% data variables.product.github %}. To sign up, go to [https://github.com/signup](https://github.com/signup?ref_product=github&ref_type=engagement&ref_style=text). + +{% else %} + +* An account on your {% data variables.product.prodname_ghe_server %} instance. + +{% endif %} + +## What is a repository? + +A repository is where you keep code and files for a software project on {% data variables.product.github %}. It stores your files, tracks each change as a commit, and gives collaborators a shared place to work. Most software projects—from a single web page to a large application—live in their own repository. + +## Creating your repository + +Follow these steps to create the repository for this series. + +{% ifversion fpt or ghec %} + +1. In the upper-right corner of any page on {% data variables.product.github %}, select {% octicon "plus" aria-label="Create new" %}, then click **New repository**. + + Alternatively, go to [new repository page on {% data variables.product.prodname_dotcom_the_website %}](https://github.com/new?ref_product=github&ref_type=engagement&ref_style=text) to open the new repository form directly. + +{% else %} + +1. On {% data variables.location.product_location %}, in the upper-right corner of any page, select {% octicon "plus" aria-label="Create new" %}, then click **New repository**. + +{% endif %} + +1. Use the **Owner** dropdown menu to select your personal account to own the repository. +1. In the **Repository name** field, type `stargazers-log`. +1. In the **Description** field, type a short description, such as "A log of the repositories I've starred." +1. Use the **Choose visibility** dropdown menu to select **Public** so you can publish your software project to a live site later in this series. +1. Select **Add README**. This gives your repository a starting file and a place to describe your software project. +1. You do not need to add a `.gitignore` or license file for this software project, so leave those options unchanged. +1. Click **Create repository**. + +## Adding a starter web page + +Your software project will grow into a small web page, so add an `index.html` file to hold its content. + +1. On the main page of your `stargazers-log` repository above the list of files, click **{% octicon "plus" aria-hidden="true" aria-label="plus" %}**, then click **{% octicon "plus" aria-hidden="true" aria-label="plus" %} Create new file**. +1. In the file name field, type `index.html`. +1. In the file editor, add the following starter content. + + ```html copy + + + + + Stargazers log + + +

    Stargazers log

    +

    A log of the repositories I've starred.

    + + + ``` + +1. Click **Commit changes**. +1. In the dialog that opens, keep the default option to commit directly to the `main` branch, then click **Commit changes**. + +## What you accomplished + +| Task | Outcome | +| ---- | ------- | +| Created a repository | You created `stargazers-log` to store your software project on {% data variables.product.github %}. | +| Added a README | You gave your software project a place to describe itself. | +| Added a web page | You created `index.html` as the starting point for your site. | + +## Next steps + +* Now that your software project has a home, plan the work you want to do. Continue to [AUTOTITLE](/get-started/start-your-journey/planning-your-work). diff --git a/content/get-started/start-your-journey/deploying-your-website-automatically.md b/content/get-started/start-your-journey/deploying-your-website-automatically.md new file mode 100644 index 000000000000..dce6e3dd9098 --- /dev/null +++ b/content/get-started/start-your-journey/deploying-your-website-automatically.md @@ -0,0 +1,129 @@ +--- +title: 'Deploying your website automatically' +shortTitle: 'Deploy automatically' +intro: 'Automate your code deployment with {% data variables.product.prodname_actions %} and {% data variables.product.prodname_pages %} to publish updates to a live site with every push to the main branch.' +category: + - Learn to code +contentType: get-started +versions: + fpt: '*' + ghes: '*' + ghec: '*' +--- + +Your feature is merged, so now you can share it. In this tutorial, you'll set up automatic deployment so every push to `main` publishes your software project to a live website. + +> [!NOTE] +> The URL of your {% data variables.product.prodname_pages %} site depends on which version of {% data variables.product.github %} you use. +> * On {% data variables.product.prodname_dotcom_the_website %}, your site is published at `YOUR-USERNAME.github.io/REPOSITORY`. +> * If you use {% data variables.product.github %} with data residency on {% data variables.enterprise.data_residency_site %}, your site is published at `pages.SUBDOMAIN.ghe.com/YOUR-USERNAME/REPOSITORY`, where `SUBDOMAIN` is your enterprise's subdomain. +> * On {% data variables.product.prodname_ghe_server %}, your site is published at `pages.HOSTNAME/YOUR-USERNAME/REPOSITORY`, where `HOSTNAME` is the hostname of your {% data variables.product.prodname_ghe_server %} instance. + +## Prerequisites + +* A `stargazers-log` repository with your merged feature. If you haven't merged it yet, see [AUTOTITLE](/get-started/start-your-journey/reviewing-your-proposed-changes). + +## Enabling {% data variables.product.prodname_pages %} + +Set up {% data variables.product.prodname_pages %} to host your site, and use {% data variables.product.prodname_actions %} to build and publish it. + +1. On {% data variables.product.github %}, navigate to your `stargazers-log` repository. +1. Under your repository name, click **Settings**. +1. In the sidebar, in the "Code and automation" section, click **Pages**. +1. Under "Build and deployment", from the **Source** dropdown, select **{% data variables.product.prodname_actions %}**. + +Leave the other settings at their defaults. Next, you'll create **your own workflow** to build and deploy your site automatically. + +## Creating a deployment workflow + +A workflow is a set of automated steps that {% data variables.product.prodname_actions %} runs for you. Add one that builds and deploys your site whenever you push to `main`. + +1. In your repository, create a file named `.github/workflows/deploy.yml`. + 1. On the main page of your `stargazers-log` repository above the list of files, click **{% octicon "plus" aria-hidden="true" aria-label="plus" %}**, then click **{% octicon "plus" aria-hidden="true" aria-label="plus" %} Create new file**. + 1. In the file name field, type `.github/workflows/deploy.yml`. +1. Add the following workflow content. + + ```yaml copy + name: Deploy to GitHub Pages + + on: + push: + branches: + - main + + permissions: + contents: read + pages: write + id-token: write + + jobs: + deploy: + runs-on: ubuntu-latest + environment: + name: github-pages + url: {% raw %}${{ steps.deployment.outputs.page_url }}{% endraw %} + steps: + - name: Checkout + uses: {% data reusables.actions.action-checkout %} + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + {%- ifversion fpt or ghec %} + uses: actions/upload-pages-artifact@v4 + {%- elsif ghes %} + uses: actions/upload-pages-artifact@v2 + {%- endif %} + with: + path: '.' + - name: Deploy to GitHub Pages + {%- ifversion fpt or ghec %} + id: deployment + uses: actions/deploy-pages@v4 + {%- elsif ghes %} + id: deployment + uses: actions/deploy-pages@v2 + {%- endif %} + ``` + +1. Commit the file directly to the `main` branch. + +## Understanding the workflow + +Each part of the workflow has a job to do: + +* **`on`** tells {% data variables.product.prodname_actions %} to run the workflow on every push to `main`. +* **`permissions`** grant the workflow the access it needs to publish to {% data variables.product.prodname_pages %}. +* **`environment`** connects the job to your {% data variables.product.prodname_pages %} site and exposes the published URL as {% raw %}`${{ steps.deployment.outputs.page_url }}`{% endraw %}. +* **`steps`** check out your code, prepare {% data variables.product.prodname_pages %}, upload your files as an artifact, and deploy them to your live site. + +## Viewing your live site + +After you commit the workflow, {% data variables.product.prodname_actions %} runs it automatically. + +1. In your repository, click the **Actions** tab to watch the workflow run. +1. Click the latest workflow run to see a summary of the job details. +1. When the run completes, open your published site at {% ifversion fpt or ghec %}`https://YOUR-USERNAME.github.io/stargazers-log/`{% elsif ghes %}`https://pages.HOSTNAME/YOUR-USERNAME/stargazers-log/`{% endif %}. Replace `YOUR-USERNAME` with your username{% ifversion ghes %}, and replace `HOSTNAME` with your {% data variables.product.prodname_ghe_server %} hostname{% endif %}. + * For example, if your {% data variables.product.github %} account username is `octocat`, your site is at {% ifversion fpt or ghec %}`https://octocat.github.io/stargazers-log/`{% elsif ghes %}`https://pages.HOSTNAME/octocat/stargazers-log/`{% endif %}. + +From now on, every push to `main` redeploys your site with your latest changes. + +## What you built + +Across this series, you built a complete software project and practiced the {% data variables.product.github %} workflow: + +| Stage | What you learned | +| ----- | ---------------- | +| Creating your software project | Repositories, README files | +| Planning your work | Issues, Projects (project boards) | +| Connecting locally | {% data variables.product.prodname_desktop %}, cloning | +| Writing and storing code | Branches, commits, pull requests, {% data variables.product.prodname_copilot_short %} | +| Reviewing changes | Pull request reviews, {% data variables.product.prodname_copilot_short %} | +| Deploying automatically | {% data variables.product.prodname_actions %}, {% data variables.product.prodname_pages %} | + +## Next steps + +* Expand your understanding of Git and {% data variables.product.github %}. For more information, see [AUTOTITLE](/get-started/start-your-journey/git-and-github-learning-resources). +* Explore {% data variables.copilot.copilot_chat_short %} to learn faster and get help as you code. For more information, see [AUTOTITLE]({% ifversion ghes %}/enterprise-cloud@latest/{% endif %}/copilot/concepts/chat){% ifversion ghes %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. +* Go deeper with AI and learn how agents can act like a practical coding partner by turning ideas into small actionable steps, generating examples, and handling repetitive work. For more information, see [AUTOTITLE]({% ifversion ghes %}/enterprise-cloud@latest/{% endif %}/copilot/concepts/agents){% ifversion ghes %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. +* Learn more about automating your software projects with {% data variables.product.prodname_actions %} workflows. For more information, see [AUTOTITLE](/actions/get-started/understand-github-actions). +* Add a custom domain or explore more ways to publish your website with {% data variables.product.prodname_pages %}. For more information, see [AUTOTITLE](/pages/getting-started-with-github-pages). diff --git a/content/get-started/start-your-journey/index.md b/content/get-started/start-your-journey/index.md index 7ece3a127f89..6ef3ba478a60 100644 --- a/content/get-started/start-your-journey/index.md +++ b/content/get-started/start-your-journey/index.md @@ -14,6 +14,12 @@ children: - /downloading-files-from-github - /uploading-a-project-to-github - /git-and-github-learning-resources + - /creating-a-repository-for-your-project-on-github + - /planning-your-work + - /connecting-to-your-code-locally + - /writing-and-storing-your-code + - /reviewing-your-proposed-changes + - /deploying-your-website-automatically redirect_from: - /github/getting-started-with-github/quickstart - /get-started/quickstart @@ -24,11 +30,11 @@ journeyTracks: description: 'Master the fundamentals of {% data variables.product.github %} and Git.' guides: - href: '/get-started/start-your-journey/what-is-github' - - href: '/get-started/start-your-journey/creating-an-account-on-github' - - href: '/get-started/start-your-journey/hello-world' - - href: '/get-started/start-your-journey/setting-up-your-profile' - - href: '/get-started/start-your-journey/finding-inspiration-on-github' - - href: '/get-started/start-your-journey/downloading-files-from-github' - - href: '/get-started/start-your-journey/uploading-a-project-to-github' + - href: '/get-started/start-your-journey/creating-a-repository-for-your-project-on-github' + - href: '/get-started/start-your-journey/planning-your-work' + - href: '/get-started/start-your-journey/connecting-to-your-code-locally' + - href: '/get-started/start-your-journey/writing-and-storing-your-code' + - href: '/get-started/start-your-journey/reviewing-your-proposed-changes' + - href: '/get-started/start-your-journey/deploying-your-website-automatically' - href: '/get-started/start-your-journey/git-and-github-learning-resources' --- diff --git a/content/get-started/start-your-journey/planning-your-work.md b/content/get-started/start-your-journey/planning-your-work.md new file mode 100644 index 000000000000..f2a5d2f69350 --- /dev/null +++ b/content/get-started/start-your-journey/planning-your-work.md @@ -0,0 +1,72 @@ +--- +title: 'Planning your work' +shortTitle: 'Plan your work' +intro: 'Organize your work and track your progress so you always know what to build next.' +category: + - Learn to code +contentType: get-started +versions: + fpt: '*' + ghes: '*' + ghec: '*' +--- + +Before you write code, capture what you want to build and track your progress. In this tutorial, you'll plan and organize work for your website's first feature using {% data variables.product.prodname_github_issues %} and {% data variables.product.prodname_projects_v2 %}. + +## Prerequisites + +* A `stargazers-log` repository. If you haven't created it yet, see [AUTOTITLE](/get-started/start-your-journey/creating-a-repository-for-your-project-on-github). + +## Creating an issue + +Issues track ideas, tasks, and bugs for your software project. Create one for the first feature you'll build: a list of starred repositories on your web page. + +1. On the main page of your `stargazers-log` repository, click **Issues**. +1. Click **New issue**. +1. In the **Add a title** field, type `Display a list of starred repositories`. +1. In the description field, add a few details about what you want to build, such as "Show a list of starred repositories on the home page." +1. Click **Create**. + +## Creating a project board and importing your issue + +{% data variables.product.prodname_projects_v2 %} give you visual tables, boards, and roadmaps to organize and track issues for your software projects. In this tutorial, you'll create a user project board for `stargazers-log`. + +1. On {% data variables.product.github %}, in the top right corner of {% data variables.product.prodname_dotcom %}, click your profile picture, then click **Profile**. +1. Click **Projects**. +1. Click **New project**. +1. Under **Templates**, select **Board**. +1. In the project name field, type `Stargazers log`. +1. Leave **Import items from a repository** checked, to import the issue you recently created to the board. +1. Click **Create project**. + +## Moving work across the board + +The board's columns represent stages of your work. As you make progress, move each item to show its status. + +1. On your project board, find the `Display a list of starred repositories` item in the **Todo** column. +1. Drag the item into the **In Progress** column to show that you've started the work. + +You'll return to the board later to move the item to **Done** once your feature is live. + +## Adding follow up issues + +Create one or more issues to describe ideas and features for your website that you want to work on later. For example, you might create an issue to: + +* Add a search feature to your website +* Improve the styling of the starred repositories list +* Allow filtering of starred repositories by programming language, such as JavaScript, Python, or Go + +Add each new issue to your project board, and move it into **In Progress** once you start working on it. + +## What you accomplished + +| Task | Outcome | +| ---- | ------- | +| Created an issue | You captured your first feature as a trackable task. | +| Created a project board | You set up a board to organize and track your work. | +| Tracked your progress | You added the issue to the board and moved it into progress. | +| Added more issues | You created new issues to capture future work for your website. | + +## Next steps + +* With your work planned, bring your repository to your computer so you can start writing, storing, and updating your website code. Continue to [AUTOTITLE](/get-started/start-your-journey/connecting-to-your-code-locally). diff --git a/content/get-started/start-your-journey/reviewing-your-proposed-changes.md b/content/get-started/start-your-journey/reviewing-your-proposed-changes.md new file mode 100644 index 000000000000..5f308592ac25 --- /dev/null +++ b/content/get-started/start-your-journey/reviewing-your-proposed-changes.md @@ -0,0 +1,104 @@ +--- +title: 'Reviewing your proposed changes' +shortTitle: 'Review changes' +intro: 'Review your own pull request before you merge to catch bugs and improve quality, with an optional AI assist from {% data variables.product.prodname_copilot_short %}.' +category: + - Learn to code +contentType: get-started +versions: + fpt: '*' + ghes: '*' + ghec: '*' +--- + +A pull request is a chance to look at your work with fresh eyes before it becomes part of `main`. In this tutorial, you'll review your own changes, apply improvements, and merge the first feature for your website. + +## Prerequisites + +* An open pull request for your `add-starred-list` branch. If you haven't opened one yet, see [AUTOTITLE](/get-started/start-your-journey/writing-and-storing-your-code). + +## Why review code? + +Reviewing changes before you merge helps you catch bugs, spot missing error handling, and improve readability while the work is still fresh. Even when you work alone, a deliberate review builds a habit that keeps your software projects healthy and makes collaboration easier later. + +## Reviewing your changes in the pull request + +The **Files changed** tab in a pull request on {% data variables.product.github %} shows a diff of everything your branch adds or modifies. Review it carefully. + +1. Click [View your pull requests](https://github.com/pulls?ref_product=github&ref_type=engagement&ref_style=button) to go to your pull requests inbox on {% data variables.product.github %}. Alternatively, navigate to your `stargazers-log` repository and click the **Pull requests** tab. +1. Click on the title to open your pull request for the `add-starred-list` branch. +1. Click the **Files changed** tab. +1. Read the diff for each file, looking for: + * Bugs or logic errors, such as a mismatched file name in `script.js`. + * Missing error handling, such as what happens if `events.json` fails to load. + * Accessibility issues, such as missing text alternatives or unclear labels. + * Anything unclear that a future reader might struggle with. +1. To note something you want to change, hover over a line, click {% octicon "plus" aria-label="Add a comment" %}, type a comment, then click **Comment**. + +## Optional: Getting an AI second opinion + +You can also ask {% data variables.copilot.copilot_chat_short %} in your editor to review the same changes and offer a second perspective. + +1. In your editor, open {% data variables.copilot.copilot_chat_short %}. +1. Ask it to review your changes with a prompt like the following. + + ```text copy + Review my changes for bugs, missing error handling, and accessibility issues. + ``` + +1. Read the suggestions and decide which ones improve your feature. You're always in control of which changes to make. + +> [!TIP] +> If you enjoyed using {% data variables.product.prodname_copilot_short %} to review your own code, you can [sign up for a paid plan](https://github.com/github-copilot/signup?ref_product=copilot&ref_type=purchase&ref_style=text&ref_plan=pro) to get additional AI credits and {% data variables.copilot.copilot_code-review_short %}, which can review your pull requests automatically when you add {% data variables.product.prodname_copilot_short %} as a reviewer. +> +> For more information, see [AUTOTITLE]({% ifversion ghes %}/enterprise-cloud@latest{% endif %}/copilot/how-tos/set-up/set-up-for-self) and [AUTOTITLE]({% ifversion ghes %}/enterprise-cloud@latest{% endif %}/copilot/concepts/agents/code-review){% ifversion ghes %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. + +## Applying feedback + +Turn your review notes and any {% data variables.copilot.copilot_chat_short %} suggestions you agree with into updates. + +1. In your editor, update the affected files to address what you found. +1. In {% data variables.product.prodname_desktop %}, enter a commit message such as `Address review feedback`, then click **Commit # files to add-starred-list**. +1. Click **Push origin** to update your pull request with the new commit. + +## Merging the pull request + +Once you're satisfied with your changes, merge them into `main`. + +1. On {% data variables.product.github %}, return to your pull request and refresh the page. +1. Click the **Conversation** tab. +1. Click **Merge pull request**, then click **Confirm merge**. +1. Click **Delete branch** to clean up your `add-starred-list` branch. + +## Checking your progress + +Update your project board to reflect the completed work. + +1. On {% data variables.product.github %}, navigate to your `Stargazers log` project board from the **Projects** tab in your repository. +1. Drag the `Display a list of starred repositories` item from **In Progress** to **Done**. + +If you have more features to build, create new issues and move them to **In Progress** when you start the next cycle. + +## The complete workflow + +You've now run through the full developer workflow: + +* Planned the work with an issue and a project board. +* Created a branch and built your feature. +* Opened a pull request. +* Reviewed your own changes (optionally with help from {% data variables.product.prodname_copilot_short %}). +* Merged your feature into `main`. +* Updated your project board to reflect your progress. + +## What you accomplished + +| Task | Outcome | +| ---- | ------- | +| Reviewed changes in the Files changed tab | You opened the pull request's Files changed tab and read the diff. | +| Applied feedback and got an optional AI assist | You applied changes, and possibly asked {% data variables.copilot.copilot_chat_short %} for a review. | +| Merged your feature | You merged your changes into `main`. | +| Updated your progress | You moved the issue to **Done** on your project board. | + +## Next steps + +* Publish your software project to a live URL that updates your website automatically. Continue to [AUTOTITLE](/get-started/start-your-journey/deploying-your-website-automatically). diff --git a/content/get-started/start-your-journey/what-is-github.md b/content/get-started/start-your-journey/what-is-github.md index 79c108f7667a..5cf776012297 100644 --- a/content/get-started/start-your-journey/what-is-github.md +++ b/content/get-started/start-your-journey/what-is-github.md @@ -51,7 +51,7 @@ Some of the most common reasons people use {% data variables.product.github %} a * Write code, review code, manage security vulnerabilities and updates. * Collaborate and socialize on projects. * Contribute to open source software. -* Issue tracking and project management. +* Track and manage projects. * Automate software development workflows like CI/CD, testing, and deployments. * Showcase and share work. * Publish and release software packages. @@ -63,9 +63,9 @@ Some of the most common reasons people use {% data variables.product.github %} a If you're new to {% data variables.product.github %} and unfamiliar with Git, we recommend working through the articles in the [AUTOTITLE](/get-started/start-your-journey) category. The articles show you how to perform common tasks software developers do using {% data variables.product.github %}, such as: -* **Create a project** and store the code on {% data variables.product.github %}. +* **Create a repository for your software project** and store the code on {% data variables.product.github %}, see [AUTOTITLE](/get-started/start-your-journey/creating-a-repository-for-your-project-on-github). * **Plan your work** by creating issues and tracking your project work. -* **Connect to your project on your local machine** and use the {% data variables.product.prodname_desktop %} application to manage code changes with Git. -* **Update your project code**, optionally pair with an AI assistant, and sync your changes with {% data variables.product.github %}. +* **Connect to your code on your local machine** and use the {% data variables.product.prodname_desktop %} application to manage code changes with Git. +* **Write and store your code**, optionally pair with an AI assistant, and sync your changes with {% data variables.product.github %}. * **Review your proposed code changes** by creating pull requests and reviewing your own changes before you merge. -* **Deploy your project** using automated deployment workflows, allowing you to publish a basic website. +* **Deploy your website** using automated deployment workflows, allowing you to publish a basic website for your software project. diff --git a/content/get-started/start-your-journey/writing-and-storing-your-code.md b/content/get-started/start-your-journey/writing-and-storing-your-code.md new file mode 100644 index 000000000000..5f4d4911e950 --- /dev/null +++ b/content/get-started/start-your-journey/writing-and-storing-your-code.md @@ -0,0 +1,156 @@ +--- +title: 'Writing and storing your code' +shortTitle: 'Write and store code' +intro: 'Follow the core developer workflow to create a branch, write code, and open a pull request using {% data variables.product.prodname_copilot_short %} and {% data variables.product.prodname_desktop %}.' +category: + - Learn to code +contentType: get-started +versions: + fpt: '*' + ghes: '*' + ghec: '*' +--- + +Now you'll build the website feature you planned: a page that lists starred repositories. Along the way, you'll follow the core developer workflow—setting up a space for your work, making and saving your changes, and proposing them for review—using branches, commits, and a pull request. + +## Prerequisites + +* A local clone of your `stargazers-log` repository. If you haven't set this up yet, see [AUTOTITLE](/get-started/start-your-journey/connecting-to-your-code-locally). + +## Creating a branch + +A branch lets you work on your feature in its own space, without changing the `main` copy of your code until you're ready. + +1. Open {% data variables.product.prodname_desktop %}. +1. At the top of the app, click **Current Branch**, then click **New Branch**. +1. Name the branch `add-starred-list`, then click **Create Branch**. +1. Click **Publish branch** to make the branch available on {% data variables.product.github %}. + +## Building the website's code + +Your feature needs a few files: sample data, a stylesheet, a script to display the data, and an updated home page. + +You can write these files yourself or ask {% data variables.product.prodname_copilot_short %}, an AI assistant, to generate them. Every {% data variables.product.github %} account includes access to {% data variables.copilot.copilot_free %} and an allowance of AI credits, so you can start using {% data variables.product.prodname_copilot_short %} right away. + +To learn about the {% data variables.product.prodname_copilot_short %} plans available and how usage works, see [AUTOTITLE]({% ifversion ghes %}/enterprise-cloud@latest{% endif %}/copilot/get-started/plans){% ifversion ghes %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %}. + +Open {% data variables.copilot.copilot_chat_short %} in your editor and ask it to create the files with a prompt like the following. + + +```text copy +Create a starred repositories page for my software project. Add: +- events.json with sample data for a few starred repositories +- style.css to style a simple list +- script.js to fetch events.json and render the list +- an update to index.html that links style.css and script.js + +Use the code written in https://docs.github.com/get-started/start-your-journey/creating-and-changing-your-code. +``` + + +
    +Open {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %} {% octicon "link-external" height:16 aria-label="link-external" %} +

    + +Review what {% data variables.product.prodname_copilot_short %} generates, then adjust the files to match the examples below. + +If you didn't use {% data variables.product.prodname_copilot_short %}, use your code editor to create the files below in the `add-starred-list` branch. + +1. Create a file named `events.json` with the following sample data. Save the file. + + ```json copy + [ + { "name": "octocat/Hello-World", "starred": "2024-01-15" }, + { "name": "github/docs", "starred": "2024-02-02" }, + { "name": "octo-org/octo-repo", "starred": "2024-03-21" } + ] + ``` + +1. Create a file named `style.css` with the following styles. Save the file. + + ```scss copy + body { + font-family: sans-serif; + margin: 2rem; + } + + ul { + list-style: none; + padding: 0; + } + + li { + padding: 0.5rem 0; + border-bottom: 1px solid #ddd; + } + ``` + +1. Create a file named `script.js` with the following code. Save the file. + + ```javascript copy + fetch("events.json") + .then((response) => response.json()) + .then((events) => { + const list = document.querySelector("#starred"); + events.forEach((event) => { + const item = document.createElement("li"); + item.textContent = `${event.name} — starred ${event.starred}`; + list.appendChild(item); + }); + }); + ``` + +1. Update `index.html` to link the new files and hold the list. Save the file. + + ```html copy + + + + + Stargazers log + + + +

    Stargazers log

    +

    A log of the repositories I've starred.

    +
      + + + + ``` + +## Committing and pushing your changes + +Committing saves a snapshot of your changes, and pushing sends them to {% data variables.product.github %} where they will be stored in your repository. + +1. In {% data variables.product.prodname_desktop %}, review your changed files in the left sidebar. +1. At the bottom of the sidebar, in the **Summary** field, type a commit message such as `Add starred repositories list`. +1. Click **Commit 4 files to add-starred-list**. +1. Click **Push origin** to send your commit to {% data variables.product.github %}. + +## Opening a pull request + +A pull request proposes your branch's changes for review before they merge into `main`. + +1. In {% data variables.product.prodname_desktop %}, click **Preview Pull Request**, then click **Create Pull Request**. Your browser opens to the pull request form on {% data variables.product.github %}. +1. Review the title and description, then add a note about what your feature does. +1. Click **Create pull request**. + +## What you accomplished + +| Task | Outcome | +| ---- | ------- | +| Created a branch | You made an isolated space for your feature with `add-starred-list`. | +| Wrote the code | You added the feature's files to your branch, with an optional assist from {% data variables.copilot.copilot_chat_short %}. | +| Pushed your changes | You stored your branch's changes on {% data variables.product.github %}. | +| Opened a pull request | You proposed your changes for review. | + +## Further reading + +* [AUTOTITLE]({% ifversion ghes %}/enterprise-cloud@latest{% endif %}/copilot/concepts/billing/individual-plans) +* [AUTOTITLE]({% ifversion ghes %}/enterprise-cloud@latest{% endif %}/copilot/concepts/billing/usage-based-billing-for-individuals) +* [AUTOTITLE]({% ifversion ghes %}/enterprise-cloud@latest{% endif %}/copilot/how-tos/manage-and-track-spending/monitor-ai-usage){% ifversion ghes %} in the {% data variables.product.prodname_ghe_cloud %} documentation{% endif %} + +## Next steps + +* Before you merge, review your own changes to catch issues early. Continue to [AUTOTITLE](/get-started/start-your-journey/reviewing-your-proposed-changes). diff --git a/data/reusables/enterprise/url-substitute-note.md b/data/reusables/enterprise/url-substitute-note.md new file mode 100644 index 000000000000..a98dbd77cfe4 --- /dev/null +++ b/data/reusables/enterprise/url-substitute-note.md @@ -0,0 +1,2 @@ +> [!NOTE] +> As you follow this series, if you use {% data variables.enterprise.data_residency %} or {% data variables.product.prodname_ghe_server %}, you will need to substitute references and links to {% data variables.product.prodname_dotcom_the_website %} with your enterprise's dedicated URL. From 680542d7c58400b0cc714752f76a3655246acc35 Mon Sep 17 00:00:00 2001 From: Laura Coursen Date: Wed, 22 Jul 2026 08:36:49 +0000 Subject: [PATCH 3/6] Make Copilot aware of the instruction-architecture doc when editing instruction and agent files (#62377) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8fa5a1bb-46b5-4ceb-8219-795bf8209e1f --- .../instruction-architecture.instructions.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/instructions/instruction-architecture.instructions.md diff --git a/.github/instructions/instruction-architecture.instructions.md b/.github/instructions/instruction-architecture.instructions.md new file mode 100644 index 000000000000..f379e18f4a01 --- /dev/null +++ b/.github/instructions/instruction-architecture.instructions.md @@ -0,0 +1,13 @@ +--- +applyTo: ".github/instructions/**,.github/agents/**" +--- + +# Editing Copilot content instruction and agent files + +This applies when you add, edit, or remove a Copilot instruction or shared agent file that guides how **content** (articles, data files) is written. It does **not** apply to code instructions or agents owned by the engineering team (for example `code.instructions.md`). + +When it applies, you **must** first read the instruction-architecture doc in full and follow it: + +https://github.com/github/docs-team/blob/main/contributing-to-docs/docs-work/copilot-instruction-architecture.md + +Read the current version every time (from a local `github/docs-team` checkout if you have one, otherwise fetch the URL); do not rely on your memory of it, because it changes. If you cannot access it, say so and stop rather than guessing. From ea7102971b6a53891f1e0db1e3e70c70b6795e39 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Jul 2026 12:19:35 +0000 Subject: [PATCH 4/6] Clarify stale repository contributor data after history changes (#62235) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: bot-digital-customer-success <121182491+bot-digital-customer-success@users.noreply.github.com> Co-authored-by: Daniel Klemm Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com> --- .../viewing-a-projects-contributors.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/repositories/viewing-activity-and-data-for-your-repository/viewing-a-projects-contributors.md b/content/repositories/viewing-activity-and-data-for-your-repository/viewing-a-projects-contributors.md index efc0b40fed88..48af4a4655e3 100644 --- a/content/repositories/viewing-activity-and-data-for-your-repository/viewing-a-projects-contributors.md +++ b/content/repositories/viewing-activity-and-data-for-your-repository/viewing-a-projects-contributors.md @@ -47,3 +47,9 @@ If you don't appear in a repository's contributors graph, it may be because: If all your commits in the repository are on non-default branches, you won't be in the contributors graph. For example, commits on the `gh-pages` branch aren't included in the graph unless `gh-pages` is the repository's default branch. To have your commits merged into the default branch, you can create a pull request. For more information, see [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests). If the email address you used to author the commits is not connected to your {% data variables.product.github %} account, your commits won't be linked to your account, and you won't appear in the contributors graph. For more information, see [AUTOTITLE](/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address) and [AUTOTITLE](/account-and-profile/how-tos/email-preferences/adding-an-email-address-to-your-github-account). + +### Contributor data is stale after history changes + +After force-pushing, rewriting history, or deleting commits, repository contributor displays and statistics can take about 24 hours to refresh. + +If you're a repository owner and contributor data is still incorrect after waiting about 24 hours, contact {% data variables.contact.github_support %}. For more information about creating a support ticket, see [AUTOTITLE](/support/contacting-github-support/creating-a-support-ticket). From 3fc31ead518eaa751df26ec0a535e65307308b84 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Jul 2026 14:44:38 +0000 Subject: [PATCH 5/6] Format repository-level Copilot usage schema example for readability (#62389) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- .../copilot-usage-metrics/example-schema.md | 99 ++++++++++++++++++- 1 file changed, 96 insertions(+), 3 deletions(-) diff --git a/content/copilot/reference/copilot-usage-metrics/example-schema.md b/content/copilot/reference/copilot-usage-metrics/example-schema.md index 9d2a996ed5b1..ee535d09ac00 100644 --- a/content/copilot/reference/copilot-usage-metrics/example-schema.md +++ b/content/copilot/reference/copilot-usage-metrics/example-schema.md @@ -323,7 +323,100 @@ The following user-teams report examples are returned by the `user-teams-1-day` The following repository-level report example is returned in the NDJSON files downloaded from the `repos-1-day` endpoints. Each row represents one repository with pull request activity on the requested day. Both enterprise- and organization-scoped rows populate `organization_id` (the organization that owns each repository). Enterprise-scoped rows also populate `enterprise_id`, and organization-scoped rows populate `enterprise_id` only for organizations owned by an enterprise. For the field reference, see [AUTOTITLE](/copilot/reference/copilot-usage-metrics/copilot-usage-metrics#repository-level-fields-api-only). ```json copy -{"day":"2026-07-14","enterprise_id":"1001","organization_id":"2002","repo_id":900000001,"repo_owner_name":"octodemo-metrics","repo_name":"example-service-alpha","repo_visibility":"INTERNAL","pull_requests":{"total_reviewed":1,"total_created":1,"total_created_by_copilot":1,"total_reviewed_by_copilot":1,"total_merged":1,"median_minutes_to_merge":372.62,"total_suggestions":0,"total_applied_suggestions":0,"total_merged_created_by_copilot":1,"median_minutes_to_merge_copilot_authored":372.62,"total_copilot_suggestions":0,"total_copilot_applied_suggestions":0,"total_merged_reviewed_by_copilot":1,"median_minutes_to_merge_copilot_reviewed":372.62,"copilot_suggestions_by_comment_type":[]}} -{"day":"2026-07-14","enterprise_id":"1001","organization_id":"2002","repo_id":900000003,"repo_owner_name":"octodemo-metrics","repo_name":"example-service-gamma","repo_visibility":"INTERNAL","pull_requests":{"total_reviewed":1,"total_created":0,"total_created_by_copilot":0,"total_reviewed_by_copilot":1,"total_merged":1,"median_minutes_to_merge":1020.53,"total_suggestions":0,"total_applied_suggestions":1,"total_merged_created_by_copilot":0,"total_copilot_suggestions":0,"total_copilot_applied_suggestions":1,"total_merged_reviewed_by_copilot":1,"median_minutes_to_merge_copilot_reviewed":1020.53,"copilot_suggestions_by_comment_type":[{"comment_type":"spelling","total_copilot_suggestions":0,"total_copilot_applied_suggestions":1}]}} -{"day":"2026-07-14","organization_id":"3003","enterprise_id":"","repo_id":900000010,"repo_owner_name":"octodemo-metrics","repo_name":"example-service-delta","repo_visibility":"PRIVATE","pull_requests":{"total_reviewed":1,"total_created":0,"total_created_by_copilot":0,"total_reviewed_by_copilot":1,"total_merged":2,"median_minutes_to_merge":1332.96,"total_suggestions":1,"total_applied_suggestions":2,"total_merged_created_by_copilot":1,"median_minutes_to_merge_copilot_authored":1329.47,"total_copilot_suggestions":1,"total_copilot_applied_suggestions":2,"total_merged_reviewed_by_copilot":2,"median_minutes_to_merge_copilot_reviewed":1332.96,"copilot_suggestions_by_comment_type":[{"comment_type":"documentation","total_copilot_suggestions":1,"total_copilot_applied_suggestions":1},{"comment_type":"spelling","total_copilot_suggestions":0,"total_copilot_applied_suggestions":1}]}} +[ + { + "day": "2026-07-14", + "enterprise_id": "1001", + "organization_id": "2002", + "repo_id": 900000001, + "repo_owner_name": "octodemo-metrics", + "repo_name": "example-service-alpha", + "repo_visibility": "INTERNAL", + "pull_requests": { + "total_reviewed": 1, + "total_created": 1, + "total_created_by_copilot": 1, + "total_reviewed_by_copilot": 1, + "total_merged": 1, + "median_minutes_to_merge": 372.62, + "total_suggestions": 0, + "total_applied_suggestions": 0, + "total_merged_created_by_copilot": 1, + "median_minutes_to_merge_copilot_authored": 372.62, + "total_copilot_suggestions": 0, + "total_copilot_applied_suggestions": 0, + "total_merged_reviewed_by_copilot": 1, + "median_minutes_to_merge_copilot_reviewed": 372.62, + "copilot_suggestions_by_comment_type": [] + } + }, + { + "day": "2026-07-14", + "enterprise_id": "1001", + "organization_id": "2002", + "repo_id": 900000003, + "repo_owner_name": "octodemo-metrics", + "repo_name": "example-service-gamma", + "repo_visibility": "INTERNAL", + "pull_requests": { + "total_reviewed": 1, + "total_created": 0, + "total_created_by_copilot": 0, + "total_reviewed_by_copilot": 1, + "total_merged": 1, + "median_minutes_to_merge": 1020.53, + "total_suggestions": 0, + "total_applied_suggestions": 1, + "total_merged_created_by_copilot": 0, + "total_copilot_suggestions": 0, + "total_copilot_applied_suggestions": 1, + "total_merged_reviewed_by_copilot": 1, + "median_minutes_to_merge_copilot_reviewed": 1020.53, + "copilot_suggestions_by_comment_type": [ + { + "comment_type": "spelling", + "total_copilot_suggestions": 0, + "total_copilot_applied_suggestions": 1 + } + ] + } + }, + { + "day": "2026-07-14", + "organization_id": "3003", + "enterprise_id": "", + "repo_id": 900000010, + "repo_owner_name": "octodemo-metrics", + "repo_name": "example-service-delta", + "repo_visibility": "PRIVATE", + "pull_requests": { + "total_reviewed": 1, + "total_created": 0, + "total_created_by_copilot": 0, + "total_reviewed_by_copilot": 1, + "total_merged": 2, + "median_minutes_to_merge": 1332.96, + "total_suggestions": 1, + "total_applied_suggestions": 2, + "total_merged_created_by_copilot": 1, + "median_minutes_to_merge_copilot_authored": 1329.47, + "total_copilot_suggestions": 1, + "total_copilot_applied_suggestions": 2, + "total_merged_reviewed_by_copilot": 2, + "median_minutes_to_merge_copilot_reviewed": 1332.96, + "copilot_suggestions_by_comment_type": [ + { + "comment_type": "documentation", + "total_copilot_suggestions": 1, + "total_copilot_applied_suggestions": 1 + }, + { + "comment_type": "spelling", + "total_copilot_suggestions": 0, + "total_copilot_applied_suggestions": 1 + } + ] + } + } +] ``` From f455adb9ecb48ec7212177af292758bb2f32c1d7 Mon Sep 17 00:00:00 2001 From: SURAJ KUMAR Date: Wed, 22 Jul 2026 21:19:16 +0530 Subject: [PATCH 6/6] Fix PAT required scopes for reclaiming mannequins (#45116) Co-authored-by: Sharra-writes --- .../enterprise-migration-tool/github-pat-required-scopes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/reusables/enterprise-migration-tool/github-pat-required-scopes.md b/data/reusables/enterprise-migration-tool/github-pat-required-scopes.md index 11420c06a13e..591a3d5cd2b8 100644 --- a/data/reusables/enterprise-migration-tool/github-pat-required-scopes.md +++ b/data/reusables/enterprise-migration-tool/github-pat-required-scopes.md @@ -8,4 +8,4 @@ Task | Organization owner | Migrator Assigning the migrator role for repository migrations | `admin:org` | {% octicon "dash" aria-label="Not applicable" %} Running a repository migration (destination organization) | `repo`, `admin:org`, `workflow` | `repo`, `read:org`, `workflow` Downloading a migration log | `repo`, `admin:org`, `workflow` | `repo`, `read:org`, `workflow` -Reclaiming mannequins | `admin:org` | {% octicon "dash" aria-label="Not applicable" %} +Reclaiming mannequins | `repo`, `admin:org`, `workflow` | {% octicon "dash" aria-label="Not applicable" %}