Up to here, the question was what Copilot can do and how you check its result. This lesson answers the question that comes up in every company before Copilot is open to all developers: Where does our code go, what must never go there, and who decides that? At the end you write an exclusion list for a repository and a page of prompt rules for a team, both using the Kladde from K2 as the example.

A note on the honesty of this lesson. Copilot and its settings change quickly. Everything that is stated here as a fact comes from GitHub's documentation as it was read when this was written. What was not read is listed in a section of its own as open and points to the source that has to settle it. No example in this lesson was run against Copilot: The lists and texts are drafts that you check yourself in your environment.

Part What you produce
Data flow a sketch of your own: what goes to whom
Content exclusions an exclusion list for the Kladde's repository
Prompts rules for secrets and personal data in the team
Organization a list of the decisions that are not yours
Rollout a checklist that the data protection office can read

What Copilot sends

When you submit a prompt in the editor or request a suggestion, the model does not stay on your machine. According to the documentation, the editor sends the prompt to the model together with context. The context includes the open files, the name of the repository, the chat history and the instruction file. A web search through Bing exists only if the administration has approved it. Content filters sit on the input and on the output.

For privacy, a simple rule follows from this: What is in the context can be sent. A file that is open is part of it, even if you only looked at it briefly. A text that you paste into the chat is part of it and stays in the chat history until the session ends. The instruction file is part of it and lives in the repository, so nothing may be in it that does not belong in the repository.

What the pages you read do not say

Every data protection office asks two questions first, and both are open here:

  • Are prompts and answers used to train models? This lesson claims nothing about it. The answer may depend on the plan and on settings; whether and how is not stated in the pages this lesson is based on.
  • How long are chats kept, and where? This, too, is not stated in the pages that were read.

GitHub's Trust Center answers both questions (see "Further reading"). Write the answer, with the date on which you read it, into your own document, and read it again before the rollout. An answer from a course that is older than the page is not a basis for a company's decision.