AI products & updatesPractical AI workflows

Test the new Copilot entry in Teams with a known issue, notification and PR

GitHub’s October 23 update brings Teams notifications and Copilot into one app. A useful trial is not simply whether a message can be sent. Can a known problem reach a PR with the correct repository, explicit acceptance criteria and reviewable changes? This article designs a small attachment-counting exercise without connecting your account, sending messages or changing a repository.

Laptop showing code on a dark desk, not a Teams product screenshot
Illustrative photo: AltumCode · Unsplash License

The workflow at a glance

Identify the consolidated GitHub app, then use a non-private practice repository and known answers to check notification, task, PR and tests. An app-migration date is separate from task success. A PR does not establish that review, merging or deployment has occurred.

Identify the app before debugging an old entry point

GitHub’s October 23 announcement says the former GitHub notifications app becomes the consolidated entry. Existing notification users should update it; notification capabilities continue. A separate legacy GitHub app will be labeled GitHub (deprecated) and is scheduled for retirement on November 16, with migration to the consolidated app required.

Follow the consolidated app’s prompts to connect your own GitHub account and choose a repository. Installation and execution still depend on your organization and actual access. This article does not infer universal availability, subscription benefits or quotas from the announcement.

Record the entry-point state
ItemEvidence to recordInsufficient substitute
App identityWhich GitHub app is actually installedA similar icon
Repository identityExplicit owner/repository and branchA channel nickname such as main repo
Task objectSpecific issue link and acceptance criteriaAn ambiguous notification
Result objectCorresponding PR and check resultsA chat response or completion label alone

Prepare a bug with independently checkable answers

The code and expected answers below are original editorial exercises, not an incident or a model’s output. The input contract is an array and the function returns its attachment count; it does not parse files or classify their contents. That narrow task lets you inspect identity, routing and code results separately.

The loop boundary skips the last element. An empty array happens to return the correct zero, so testing only that case hides the bug. Single-element and three-element cases expose the omission.

Original faulty function for a practice repository

function countAttachments(items) {
  let count = 0;
  for (let i = 0; i < items.length - 1; i++) count++;
  return count;
}

// Editorial reference cases:
// [] -> 0
// ['draft.pdf'] -> 1
// ['a.png', 'b.png', 'brief.pdf'] -> 3
Original code and human reference answers, not a Copilot run.

Fix the reference answers before requesting work
InputCorrect countFaulty resultWhat it checks
[]00Empty input cannot expose the omission
['draft.pdf']10Single-element boundary
['a.png','b.png','brief.pdf']32The skipped final element

Turn the notification into an explicit task

In a practice repository you are authorized to use, record the issue with the function location, three inputs and expected answers. When its notification arrives in the intended Teams location, verify the issue and repository before submitting a task through the new app. These are reader-operated steps; we have not executed them in Teams.

The prompt deliberately limits scope. It does not treat notification text as a complete specification; the issue and fixed reference cases remain the acceptance basis. If the issue, code or repository is missing, supply it rather than inviting the agent to guess a target.

Task description after receiving the notification

Investigate the linked practice issue in the selected repository.
The input contract of countAttachments is an array. Fix only the off-by-one counting error.
Reference results:
[] => 0
['draft.pdf'] => 1
['a.png', 'b.png', 'brief.pdf'] => 3
Add or update checks for these three cases. Explain which boundary was wrong.
Create a pull request for review. Do not merge or deploy.
If the issue, file or repository cannot be identified, stop and state the missing item.
An editorial task specimen, not an executed instruction or a generated PR.

Inspect three chains after a PR appears

First inspect identity: notification, issue, repository, branch and PR must describe the same task. Next inspect scope: the change should repair counting without altering parsing, upload behavior or unrelated functions. Finally inspect results: execute all three reference cases and record failed or unrun checks honestly.

For this array contract, returning items.length directly is a simple reference solution; correcting the loop boundary is also possible. Results and scope matter more than imposing one style. Quietly changing the contract to count only PDFs would solve a different problem.

A PR exists, but acceptance still fails

Editorial failure specimen

Patch the boundary, demonstrate only empty input, and also start ignoring PNG attachments.

Human reference check

Verify all three reference cases and preserve counting of every supplied array element.

The first case cannot expose this boundary error, while the contract change alters the task.

Record app migration separately from code repair

Before migration, retain the notification-subscription and target-repository records. Confirm that the same controlled issue arrives, remains identifiable and does not trigger duplicate work through the new entry, then handle the old entry under your normal administration process. This article changes no organizational installations or permissions.

For multiple repositories, use the Copilot investigation and repository-selection workflow. For scanning alerts rather than this practice issue, consult the agentic autofix PR-review boundaries. Do not merge the states of different entry points into one unsupported “everything works” label.

A trial record that supports a conclusion

  • App and repository identity and the actual date are recorded.
  • The practice issue and notification can be located from one another.
  • The PR belongs to the task and its scope can be reviewed.
  • All three inputs are checked; unrun items remain separate.
  • Merging, deployment and production acceptance remain distinct later steps.

Capabilities this exercise has not tested

This is not a performance comparison. We have not called a model, installed a Teams app or created a real issue or PR. The code and answers establish a human reference; they do not prove access for an account or guarantee that a model will fix the bug.

If the entry is unavailable to your tenant or repository, record the actual message and verified conditions and retain an existing reliable route. Expanding permissions or automatically merging is not a substitute for a successful trial.

Common questions

Must existing GitHub notifications users install another app?

The announcement asks existing notification users to update to the latest consolidated app. Identify the installed application before confusing it with the separate legacy GitHub app scheduled for retirement.

Should I begin with a production incident?

This exercise starts with a small known specimen to establish the complete acceptance chain. A production problem needs its own authorization, materials and review process.

Do three passing cases authorize automatic deployment?

No. They verify the array-counting contract here. Full project checks, human review, merging and deployment remain separate steps.

Further reading & sources

Newer articles on this topic

Continue with a newer article that refers to this guide or explainer.

Related articles