GitHub Copilot 101Intermediate16 min

Privacy, Plans, and the GH-300 Path

The judgment layer: treat every Copilot output as a proposal, tell content exclusions apart from public-code filtering, understand what your plan and AI credits buy, and map a route to the GH-300 certification.


What you'll learn

  • Treat every Copilot output as a proposal and classify its claims before acting
  • Separate content exclusions from public-code filtering
  • Distinguish plan entitlement, allowance, and consumption
  • Choose a model or automatic selection by plan availability and task
  • Map the GH-300 domains and decide when you're ready to register
On this page

An agent edits the two files you allowed and reports "all requirements satisfied, all tests pass." The diff also adds a dependency and disables an authorization setting so a test can pass. The summary sounds complete. The work crossed two boundaries you never approved.

Output is a proposal, not proof

Treat a generated response as a candidate. Its confidence doesn't prove the code's behavior, and a generated test may repeat the implementation's own mistake. A passing test covers only the cases it ran. An agent's completion report also can't prove that every action stayed in scope. Before you rely on an important claim, place it in one of four groups:

  • Established: directly supported by the requirement, the code, or the docs. Cite the source and continue.
  • Testable: checkable with an executable test or probe. Run it and record the result.
  • Unestablished: depends on information that isn't present. Find the missing source or log the open decision.
  • Suspicious: conflicts with the evidence or creates a plausible correctness or safety risk. Stop and investigate.

Apply the labels claim by claim. One response can contain all four. Increase the depth of review with the amount of autonomy involved. Read an inline suggestion beside its function. For a chat edit, inspect the full diff and run focused tests. Give an agent explicit allowed files, prohibited actions, commands, and stop conditions. Automation doesn't grant approval. The ability to edit a repository is separate from permission to approve, merge, or deploy a change.

Classify each claim, not the whole answer

Don't accept or reject a response wholesale. Walk through its claims and tag each one Established, Testable, Unestablished, or Suspicious. The Suspicious and Unestablished ones are where the bugs and the risks hide, and naming them is what turns a plausible answer into a reviewed one.

The six responsible AI principles, applied

Microsoft's responsible AI principles give you a review checklist that's more than a slogan: fairness, reliability and safety, privacy and security, inclusiveness, transparency, and accountability. They overlap, but each asks a different question. A test that satisfies one does not satisfy the others.

Take an authorization function that decides whether a user may download a document, where the rule is same-tenant ownership (with administrators limited to their own tenant). A same-tenant owner test supports reliability. It says nothing about privacy across tenants (whether a user in another tenant could reach the document), nor about transparency of your review, nor about accountability for who approved the change. Each principle demands its own evidence: reliability wants the cross-tenant and boundary tests executed. Privacy wants a data-flow and endpoint check. Transparency wants the diff, commands, and known limitations recorded. Accountability wants a named human who decides accept, revise, or reject.

Ask for a skeptical review, then classify the claims· github-copilot
Bad example

Review this code and tell me if it looks safe and correct.

Good example

Review the provided code as a skeptical software reviewer. Do not edit files. Return: what the code directly establishes, its assumptions, requirements it appears to satisfy, boundary cases it doesn't handle, and any correctness, security, privacy, or fairness risks. For any claim not supported by the provided code or requirement, write "Not established by the available evidence." Do not guess.

Why this works: A structured review you then tag claim by claim as Established, Testable, Unestablished, or Suspicious. Unsupported statements are flagged rather than presented as fact.

Content exclusion and public-code filtering

These safeguards are often grouped under privacy, but they address different concerns. A content exclusion identifies a file or repository to exclude from a supported Copilot configuration. Public-code filtering deals with suggestions that match public code. If the concern names one of your files or repositories, investigate content exclusion. If the suggestion resembles public code, inspect the public-code filtering setting. Troubleshoot any saved control that behaves differently from what you expected.

Be careful about what a setting proves. Seeing a saved exclusion entry after you reopen the configuration tells you that you observed a saved configuration. Whether content is unavailable across every Copilot surface, or anything about retention or telemetry, stays a separate and unconfirmed question. Likewise, an ordinary prompt that produces no sensitive text proves only that the response followed your source constraint. It does not prove that exclusion or public-code filtering operated. Keep those as separate conclusions. The exact menus and labels for these controls change between editor releases, so don't memorize a click path. Follow GitHub's current content-exclusion guide, and for the ownership and data-handling terms of Copilot output, check GitHub's official documentation rather than any course summary.

A passing agent summary is a claim, not a clearance

If an agent edits allowed files but also adds a dependency or disables a safety setting, a passing test doesn't excuse it. Reject the out-of-scope changes, restore the boundary, rerun the tests against the scoped code, and decide revise or reject if the result depended on the unauthorized change.

Plans, credits, and models

Keep three concepts separate. A plan is the entitlement that controls which features and models you can use. An allowance is the included AI-credit usage. Consumption is the usage recorded by a particular model-based session. The subscription price doesn't estimate the cost of one session, and a larger allowance doesn't change that. The July-2026 plan map, as of mid-2026:

Plan Price Included AI credits Code completions
Copilot Free $0 Allowance included Up to 2,000/month
Copilot Pro $10/month 1,500/month Unlimited
Copilot Pro+ $39/month 7,000/month Unlimited
Copilot Max $100/month 20,000/month Unlimited
Copilot Business $19/seat/month Shared monthly pool Unlimited
Copilot Enterprise $39/seat/month Larger shared pool Unlimited

One rule saves a lot of confusion: code completions and next-edit suggestions are not billed in AI Credits. They stay unlimited on paid plans, and Free has its own separate completion limit. Don't subtract accepted autocompletions from your credit allowance. Keep completion activity separate from model-based work like chat prompts and agent sessions.

On models, as of mid-2026 three are named: Luna (lightweight and fast), Terra (balanced, everyday coding), and Sol (highest reasoning ceiling for complex work). Luna and Terra appear on the paid individual and organization plans. Sol is available from Pro+ upward. Copilot Free uses automatic selection rather than a direct picker. Keep automatic selection when your plan or surface doesn't expose a picker. Start with the smallest available model that can do the job, then escalate if the task fails your acceptance criteria. Never claim you selected a model your plan doesn't expose.

The GH-300 path

If you want the credential, GH-300 tests whether you can operate Copilot responsibly, not just name its features. You have to explain why a control fits a scenario and how you'd validate the result. The exam spans six weighted domains: using Copilot responsibly, using its features (the largest slice), understanding its data and architecture, prompt engineering and context crafting, improving developer productivity, and configuring privacy and safeguards. Every lesson in this module has fed one or more of those domains.

The logistics, as of mid-2026: the exam runs 100 minutes, costs $99 USD, is delivered through Pearson VUE, and the certificate is valid for 24 months. The passing score is 700 out of 1,000.

Build a readiness packet with an artifact for each objective. That might be a prompt beside its reviewed diff, a data-flow trace, an exclusion-versus-filtering decision, or a passing test paired with the original failing reproduction. Take the official practice assessment cold and mark each answer as certain, uncertain, or a guess. Revisit every missed or shaky concept with a fresh scenario before trying again. Exam objectives can change, so read the current study guide once more before you register. For more practice with the prompt-engineering domain, return to Prompting 101.

Give an agent a boundary it can't cross· github-copilot
Bad example

Fix the tenant-isolation bug, run the tests, and finish the task.

Good example

Implement only the documented tenant-isolation fix. Allowed: modify src/access.py, add or update tests/test_access.py, run the existing test command. Not allowed: change dependencies or deployment configuration, access production systems or secrets, merge or deploy, modify unrelated files. Stop and report if the requirement is ambiguous or a test fails for an unrelated reason. Finish by listing files changed, commands run, observed results, and unresolved risks.

Why this works: A scoped change plus an evidence report you can audit. Any dependency, config, or unrelated edit is a boundary breach to reject regardless of whether tests passed.

Try it yourself

Validate an authorization function you didn't write

Practice the "output is a proposal" discipline on a security-sensitive function from the capstone scenario. Budget about nine minutes.

  1. 01

    Create src/access.py with a can_export(user, report) that returns user.is_admin or report.owner_id == user.id, plus three passing tests (same-tenant owner, same-tenant non-owner denied, same-tenant admin). Run them for a green baseline.

  2. 02

    Reproduce the uncovered defect directly: call can_export for a user in tenant "southridge" and a report in tenant "northwind" with a matching owner id. It returns True: a cross-tenant leak the passing tests never covered.

    Hint: The starter never compares tenant_id, so ownership alone authorizes export.

  3. 03

    In a non-editing (Ask) review, ask Copilot what the code establishes, which requirements it violates, and which boundary tests are missing.

  4. 04

    Classify four claims yourself: "owners can export their reports" (Established but incomplete), "admins can export in any tenant" (Suspicious), "another layer checks tenants" (Unestablished), "a cross-tenant owner test will fail" (Testable).

  5. 05

    Write the one-sentence fix in words: require equal tenant_id before ownership or admin status can authorize. Don't implement it. Only name it and the test that would prove it.

A reproduced cross-tenant defect, a claim-classification table, and a precise fix statement. The habit of trusting evidence over a confident answer.

Key takeaways

  • Every Copilot output is a proposal. Classify each claim Established, Testable, Unestablished, or Suspicious before acting.
  • Content exclusion targets your files. Public-code filtering targets suggestions matching public code. A saved setting isn't behavioral proof.
  • A plan is entitlement, an allowance is included usage, and consumption is what a session records. They're three different things.
  • Code completions and next-edit suggestions aren't billed in AI Credits. Keep them separate from model-based work.
  • GH-300 is 100 minutes, $99, and passes at 700/1,000. Prepare with artifacts and verification, not completion badges.

Check your understanding

  1. 1. Your team wants to keep internal/pricing-rules.md out of Copilot's reach. Which safeguard applies?

  2. 2. Which of these is NOT one of Microsoft's six responsible AI principles?

  3. 3. Reconciling AI-credit usage, how should accepted inline code completions be counted?

  4. 4. An agent edited only the allowed files but also added a dependency and disabled an auth setting, reporting that all tests passed. What should the reviewer do?

  5. 5. A content-exclusion entry is still visible after you reopen the configuration. What does that prove?

  6. 6. Your Free plan shows automatic model selection and no picker, but a worksheet says "select Terra." What should you do?

Frequently asked questions

Terms used in this lesson

content exclusion
A configured safeguard that identifies a specific file or repository to exclude from a supported Copilot configuration.
public-code filtering
A setting that addresses suggestions matching public code, a different concern from excluding your own repository files.
entitlement
What a plan grants: which Copilot features and models you're allowed to use, distinct from how much usage is included.
AI Credits
The included allowance for model-based work such as chat and agent sessions. Code completions and next-edit suggestions aren't billed against it.
GH-300
The GitHub Copilot certification exam: six weighted domains, 100 minutes, $99 USD, and a 700-of-1,000 passing score as of mid-2026.

Further reading