Extension for Microsoft Teams to integrate data from Azure DevOps Server into teams conversations. As for now supports only messaging extension to search work items and send result into conversation as Adaptive Card.
This is a pet project where were two main goals: 1) add support for search of work items from Local Azure DevOps Server to MS Teams; 2) try new ways and approaches with bot framework, .net core, etc.
So do not expect clean nice code, there is no one:) But it works ;)
Basically this project relies on, so please read it first:
- Getting started with Teams apps: https://docs.microsoft.com/en-us/microsoftteams/platform/get-started/get-started-dotnet-app-studio
- "How to" article about developing messaging extension: https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/messaging-extensions/search-extensions
- Bot Framework v4, project templates for Visual Studio and Bot Builder MS Teams Extension preview with .Net Core support
Also there are some prerequisites:
- app uses PAT to access Azure devOps Server API, so you need to get one as described here: https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops, PAT should have ability to read workitems
To set up your local dev env basically you should use steps from https://docs.microsoft.com/en-us/microsoftteams/platform/get-started/get-started-dotnet-app-studio:
- Host bot web service with ngrok locally or in Azure (see details here: https://docs.microsoft.com/en-us/microsoftteams/platform/get-started/get-started-dotnet-app-studio)
- Register your bot and add app to Teams using manifest template file placed here, just insert correct ID for your registered bot
- Add your appsettings.json file with parameters as below
{
"MicrosoftAppId": "Your App Id here",
"MicrosoftAppPassword": "Your App Password here",
"ADOSBaseUri": "Url to your Azure DevOps Server here",
"ADOSSecret": "Secret for authorization on Azure DevOps Server",
"ADOSCollection": "Name of Azure DevOps Server collection where to search"
}
- If you want to use automated tests add *.runsettings file to store params like this:
<RunSettings>
<TestRunParameters>
<Parameter name="ADOSUrl" value="URL to Azure DevOps Collection like https://ados.domain.com/collectionname" />
<Parameter name="basicQuery" value="query string to find something" />
<Parameter name="epicId" value="id of the epic to check that we found appropriate image" />
</TestRunParameters>
</RunSettings>
Please see Getting started with Teams apps: https://docs.microsoft.com/en-us/microsoftteams/platform/get-started/get-started-dotnet-app-studio about deployment options
Icons made by GraphicsBay from Flaticon is licensed by Creative Commons BY 3.0
Please read CONTRIBUTING.md for details on.