Bring Microsoft 365 features into your developer workflow. With custom skills, GitHub Copilot accesses SharePoint, Teams, and more.
Why M365 Integration?
Developers often need information from:
- SharePoint – Documentation, specifications
- Teams – Communication, decisions
- Planner – Tasks, deadlines
- Outlook – Emails, calendar
Architecture
Microsoft Graph API
[GitHub Copilot] → [Custom Skill] → [Microsoft Graph] → [M365]
↓
[Azure AD Auth]Authentication
- Azure AD App Registration
- Delegated or Application Permissions
- Secure Token Storage
SharePoint Skills
Document Search
export const searchDocs: SkillAction = async (params) => {
const { query, site } = params;
const results = await graphClient
.api(`/sites/${site}/drive/root/search(q='${query}')`)
.get();
return formatSearchResults(results);
};Usage in Copilot: "Search in SharePoint for API documentation for Project Alpha"
List Access
export const getListItems: SkillAction = async (params) => {
const { listName, filter } = params;
const items = await graphClient
.api(`/sites/root/lists/${listName}/items`)
.filter(filter)
.get();
return items;
};Usage: "Show all open bugs from the SharePoint list"
Document Preview
export const getDocPreview: SkillAction = async (params) => {
const { documentId } = params;
const preview = await graphClient
.api(`/me/drive/items/${documentId}/preview`)
.get();
return { previewUrl: preview.getUrl };
};Teams Integration
Channel Messages
export const searchMessages: SkillAction = async (params) => {
const { teamId, channelId, query } = params;
const messages = await graphClient
.api(`/teams/${teamId}/channels/${channelId}/messages`)
.search(query)
.get();
return messages;
};Usage: "Find discussions about the deployment process in the Dev Team"
Meeting Notes
export const getMeetingNotes: SkillAction = async (params) => {
const { meetingId } = params;
const transcript = await graphClient
.api(`/me/onlineMeetings/${meetingId}/transcripts`)
.get();
return summarize(transcript);
};Practical Use Cases
Finding Specifications
Developer asks: "Where are the API specifications for the Payment Service?"
Skill responds: "Found in SharePoint: /Docs/Architecture/payment-api-spec-v2.docx (Last modified: 01/15/2026)"
Tracing Decisions
Developer asks: "Why did we choose PostgreSQL?"
Skill searches Teams and finds: "In the meeting on 12/10/2025, PostgreSQL was chosen due to better JSON support. See minutes..."
Task Context
Developer asks: "What are the acceptance criteria for Task #1234?"
Skill retrieves from Planner: "Task: Implement user authentication. Criteria: OAuth2, MFA support, session timeout 30min..."
Security and Permissions
Minimum Permissions
Sites.Read.All - SharePoint access
Files.Read.All - Document access
ChannelMessage.Read - Teams messages
Tasks.Read - Planner accessConditional Access
- Only from trusted devices
- MFA requirement
- Geo-restrictions
CNEXT Expertise
We offer:
- 1Skill Development – Custom M365 skills
- 2Graph API Integration – Technical implementation
- 3Security Review – Permissions optimization
- 4Deployment – Enterprise rollout
Conclusion
M365 skills turn GitHub Copilot into a bridge-builder between development and business. All information in one place.
Further Links & Sources
Internal:
External:

