Skip to content

GH-300 · Domain 3: Understand GitHub Copilot data and architecture · 13% of the exam

Task 3.1: Describe data handling and flow

What data Copilot uses, keeps and shares, how a prompt is built from context, and the proxy filtering and post-processing applied to responses.

Study it

Sample questions

Try each one before opening the answer. Every option is explained, with the GitHub documentation page that proves it.

Question 1 · choose 1

A freelancer on Copilot Pro does not want her prompts, code snippets and Copilot's outputs used to train AI models. What should she do?

  1. ANothing, because GitHub never uses data from any Copilot plan for model training
  2. BTurn off Copilot Memory in her personal Copilot settings
  3. CSet Allow GitHub to use my data for AI model training to Disabled in her Copilot settings
  4. DAsk an organization owner to add her repositories to a content exclusion
Show the answer and why
  • ANothing, because GitHub never uses data from any Copilot plan for model training

    Incorrect

    Since April 24, 2026, interactions on Free, Pro, Pro+ and Max may be used for training unless the user opts out.

  • BTurn off Copilot Memory in her personal Copilot settings

    Incorrect

    Copilot Memory stores repository facts and preferences for her own sessions; it isn't the training setting.

  • CSet Allow GitHub to use my data for AI model training to Disabled in her Copilot settings

    Correct

    Individual plan users can opt out in their personal Copilot settings by disabling this setting.

  • DAsk an organization owner to add her repositories to a content exclusion

    Incorrect

    Content exclusion is a Business and Enterprise feature for what Copilot can read, not a training opt-out.

Starting on April 24, 2026, for Copilot Free, Pro, Pro+ and Max plans, GitHub may use interactions, including inputs, outputs, code snippets and associated context, to train and improve models. Users can opt out with the "Allow GitHub to use my data for AI model training" setting.

Question 2 · choose 1

In Microsoft Learn's description of how Copilot processes a prompt, what happens right after the context is gathered and the prompt is built, before toxicity filtering and generation?

  1. AThe prompt is stored for 28 days so that later suggestions can reuse it
  2. BThe prompt is compared with the public code index and blocked whenever it matches existing public code
  3. CIt passes through a proxy in a GitHub-owned Azure tenant that blocks prompt hacking attempts
  4. DIt is sent directly to the language model so that latency stays low
Show the answer and why
  • AThe prompt is stored for 28 days so that later suggestions can reuse it

    Incorrect

    Storage is not the step described; the next step is the proxy filter.

  • BThe prompt is compared with the public code index and blocked whenever it matches existing public code

    Incorrect

    The public code check is an optional post-processing step on responses.

  • CIt passes through a proxy in a GitHub-owned Azure tenant that blocks prompt hacking attempts

    Correct

    The proxy filters traffic and blocks attempts to manipulate the system into revealing how the model generates suggestions.

  • DIt is sent directly to the language model so that latency stays low

    Incorrect

    The prompt is filtered before it reaches the model.

The inbound flow starts with secure transmission over HTTPS and context gathering. The prompt then passes to a proxy server hosted in a GitHub-owned Microsoft Azure tenant, which filters traffic and blocks attempts to hack the prompt. Toxicity filtering follows, then code generation with the LLM. On the way out, post-processing checks quality and, optionally, matches with public code.

Question 3 · choose 1

A defense contractor configures Copilot CLI to use a model running on its own isolated servers and sends no GitHub token. Its security team wants no network traffic to GitHub at all. What else must be set?

  1. ANothing, because without a GitHub token the CLI never contacts GitHub
  2. BCOPILOT_OFFLINE=true, which disables telemetry so the CLI only contacts the configured provider
  3. C--deny-url=github.com, which blocks every request the CLI itself sends to GitHub, telemetry included
  4. DCOPILOT_PROVIDER_TYPE=azure, which routes the CLI's telemetry through the company's own tenant
Show the answer and why
  • ANothing, because without a GitHub token the CLI never contacts GitHub

    Incorrect

    Without offline mode, telemetry is still sent normally even with BYOK and no GitHub authentication.

  • BCOPILOT_OFFLINE=true, which disables telemetry so the CLI only contacts the configured provider

    Correct

    Offline mode disables all telemetry and limits network requests to the configured BYOK provider.

  • C--deny-url=github.com, which blocks every request the CLI itself sends to GitHub, telemetry included

    Incorrect

    URL permissions apply to the web_fetch tool and network shell commands such as curl and wget; they don't govern the CLI's own telemetry, which offline mode turns off.

  • DCOPILOT_PROVIDER_TYPE=azure, which routes the CLI's telemetry through the company's own tenant

    Incorrect

    The provider type selects the API format; it does not reroute telemetry.

With your own model provider, prompts, code context and responses go directly to that provider, not through GitHub. Telemetry with usage metadata (not prompts or code) is still sent to GitHub unless COPILOT_OFFLINE is set to true, which disables all telemetry so that the CLI only makes network requests to the provider. Offline mode is fully air-gapped only if the provider itself is local.

Question 4 · choose 2

A developer is surprised that a suggestion in one file reuses a helper function from another file she never mentioned. Which items does Copilot gather as context when building a prompt for a code suggestion? (Choose TWO.)

  1. AThe full history of every repository she has ever opened on the machine
  2. BCode before and after the cursor position
  3. CInformation about adjacent open tabs in the editor
  4. DHer browser history from the documentation sites she visited
  5. EEvery pull request comment written in the repository
Show the answer and why
  • AThe full history of every repository she has ever opened on the machine

    Incorrect

    Context is gathered from the current editing situation, not the machine's history.

  • BCode before and after the cursor position

    Correct

    Code before and after the cursor is gathered to understand the immediate context.

  • CInformation about adjacent open tabs in the editor

    Correct

    Copilot gathers information about adjacent open tabs so suggestions align with other code in the project.

  • DHer browser history from the documentation sites she visited

    Incorrect

    Browser history is not part of the prompt context.

  • EEvery pull request comment written in the repository

    Incorrect

    Pull request comments are not part of the context gathered for an inline suggestion.

When building a prompt, Copilot collects code before and after the cursor, the file name and type, information about adjacent open tabs, project structure and file paths, and languages and frameworks, and uses Fill-in-the-Middle pre-processing to consider code on both sides. Open tabs explain how a helper in another file can shape a suggestion.

Question 5 · choose 1

A company on Copilot Business asks whether its developers' prompts and code are used to train AI models. What do GitHub's docs say?

  1. AThey are not used; GitHub's Data Protection Agreement covers them
  2. BThey are used unless each developer opts out in settings
  3. CThey are used only when public code matching is allowed
  4. DThey are used for 28 days and then deleted
Show the answer and why
  • AThey are not used; GitHub's Data Protection Agreement covers them

    Correct

    GitHub does not use Copilot Business or Enterprise customer data to train AI models; the DPA prohibits it without authorization.

  • BThey are used unless each developer opts out in settings

    Incorrect

    For Business and Enterprise, the data isn't used for training at all, so there is nothing to opt out of.

  • CThey are used only when public code matching is allowed

    Incorrect

    The public code setting is unrelated to model training.

  • DThey are used for 28 days and then deleted

    Incorrect

    Business and Enterprise data is not used for training at all.

GitHub does not use Copilot Business or Copilot Enterprise customer data to train AI models; that data is protected under GitHub's Data Protection Agreement, which prohibits such use without customer authorization.

Question 6 · choose 1

In Microsoft Learn's description of Copilot's inbound flow, what does the toxicity filtering step screen out before the prompt reaches the model?

  1. ACode that matches public repositories on GitHub
  2. BFiles that are covered by content exclusion
  3. CRequests that exceed the user's AI credit budget
  4. DHate speech and personal data such as names or ID numbers
Show the answer and why
  • ACode that matches public repositories on GitHub

    Incorrect

    Matching public code is an optional check on responses in post-processing.

  • BFiles that are covered by content exclusion

    Incorrect

    Content exclusion is applied by settings, not by the toxicity filter.

  • CRequests that exceed the user's AI credit budget

    Incorrect

    Budgets are a billing control, not a content filter.

  • DHate speech and personal data such as names or ID numbers

    Correct

    The step prevents hate speech and inappropriate content and filters out personal data to protect privacy.

On the inbound side, Copilot applies toxicity filtering before intent extraction and code generation. It detects and prevents hate speech, offensive language and inappropriate content, and filters out personal data such as names, addresses or identification numbers. On the way out, the toxicity filter also removes harmful generated content.

Question 7 · choose 1

Copilot Chat automatically creates a semantic code search index of a private repository when a developer asks about it on GitHub. The repository owner worries about model training. What do the docs say?

  1. AThe index is shared with model providers to improve models
  2. BCopilot will not use the indexed repository for model training
  3. CThe index is used for training only on Copilot Free
  4. DThe index is public, so anyone can query the code
Show the answer and why
  • AThe index is shared with model providers to improve models

    Incorrect

    The docs say Copilot will not use the indexed repository for model training.

  • BCopilot will not use the indexed repository for model training

    Correct

    The indexing documentation states plainly that Copilot will not use your indexed repository for model training.

  • CThe index is used for training only on Copilot Free

    Incorrect

    No plan exception is given for the index.

  • DThe index is public, so anyone can query the code

    Incorrect

    The index improves context for permitted users; it doesn't make code public.

Copilot's answers in a repository context improve when the semantic code search index is up to date. Starting a Copilot Chat conversation with a repository context indexes the repository automatically, and the index can be used by Copilot Chat in GitHub and VS Code and by Copilot cloud agent. Copilot will not use your indexed repository for model training.

Question 8 · choose 1

A developer wants to find a Copilot Chat conversation on github.com/copilot from five weeks ago. What does the documentation say about conversation history there?

  1. AConversations are kept forever unless the user deletes them
  2. BUp to 100 conversations; messages are kept for 28 days
  3. COnly the current conversation is kept; history is never stored
  4. DConversations are kept for one year for audit purposes
Show the answer and why
  • AConversations are kept forever unless the user deletes them

    Incorrect

    Messages are permanently deleted after 28 days.

  • BUp to 100 conversations; messages are kept for 28 days

    Correct

    Copilot Chat stores up to 100 recent conversations, and messages within each are kept for 28 days before permanent deletion.

  • COnly the current conversation is kept; history is never stored

    Incorrect

    Copilot Chat does store recent conversations.

  • DConversations are kept for one year for audit purposes

    Incorrect

    Messages are kept for 28 days, not a year.

Copilot Chat on GitHub.com stores up to 100 of your most recent conversations. Messages within each conversation are kept for 28 days before being permanently deleted, and a conversation with no messages left is removed from your history. A five-week-old conversation's messages are therefore gone.

Practise domain 3 →Practise all domains →