-
Notifications
You must be signed in to change notification settings - Fork 8k
feat: add Azure DevOps enterprise integration support #11667
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: add Azure DevOps enterprise integration support #11667
Conversation
17058e1 to
14b9c54
Compare
95fd5c4 to
e90b397
Compare
neubig
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy to take a look at this when merge conflicts are resolved and tests are passing, please re-request review then!
Resolved merge conflicts between enterprise Azure DevOps integration (PR OpenHands#11667) and the base Azure DevOps integration that was merged into main (PR OpenHands#11243). Key conflict resolutions: - Kept X-VSS-UserData header parsing for subject ID extraction (needed for work item assignment matching in enterprise webhooks) - Kept Markdown to HTML conversion for Azure DevOps comment formatting - Kept get_work_item method (used by enterprise webhook code) - Kept selected_branch handling for linked development branches - Kept users/openhands/{id} branch naming format - Added add_work_item_reaction method from main branch All enterprise-specific features have been preserved while incorporating updates from the main branch. Co-authored-by: openhands <[email protected]>
Resolved merge conflicts between enterprise Azure DevOps integration (PR OpenHands#11667) and the base Azure DevOps integration that was merged into main (PR OpenHands#11243). Key conflict resolutions: - Kept X-VSS-UserData header parsing for subject ID extraction (needed for work item assignment matching in enterprise webhooks) - Kept Markdown to HTML conversion for Azure DevOps comment formatting - Kept get_work_item method (used by enterprise webhook code) - Kept selected_branch handling for linked development branches - Kept users/openhands/{id} branch naming format - Added add_work_item_reaction method from main branch All enterprise-specific features have been preserved while incorporating updates from the main branch. Co-authored-by: openhands <[email protected]>
f6bcc5b to
acfb349
Compare
87c19b8 to
9c09ccd
Compare
7647ce1 to
38170e5
Compare
|
Fix: Mainly to rename Azure DevOps webhook table migration (083 -> 084). New migration file took over 83 & merged to main before this one.
|
4f13bfd to
1f25ce7
Compare
This commit adds enterprise-grade Azure DevOps support with webhook-based automation and service principal authentication for multi-tenant SaaS deployments. Key changes: - Implemented webhook event processing for work items and pull requests - Added service principal authentication for automated operations - Implemented Azure DevOps manager for handling webhook events - Added work item and PR comment support with @mention detection - Created callback processor for asynchronous webhook responses - Added webhook registration and management endpoints - Implemented Azure DevOps user enrichment and token management - Added database schema for webhook storage - Fixed API response format handling for comments and field values - Removed linter suppressions for cleaner code The implementation enables: - Automated responses to work item assignments and @mentions - Pull request comment handling with inline code review support - Service principal-based API operations for scalability - Multi-organization support with webhook deduplication - Integration with Keycloak for user management - Webhook-driven conversation creation and management
1f25ce7 to
bf7aaa8
Compare
|
Hi, just a note, I'll circle back to reviewing this next week after we (hopefully) finish with shipping OpenHands v1 to the OpenHands cloud. |

End-user friendly description
This PR adds enterprise/SaaS support for Azure DevOps integration. It builds on top of /pull/11243 PR by adding SSO authentication, user identity mapping, and webhook security features required for multi-tenant SaaS deployment.
Summary
This PR extends the base Azure DevOps integration PR with enterprise-specific features.
What This PR Adds
azure_devops_id)(organization, subscriptionId, api_key)lookupAzureDevOpsServiceImplwith SaaS-specific featuresPrerequisite
Please follow the README.md in All-Hands-AI/OpenHands-Cloud/pull/238
Azure DevOps (Client side - unfortunately this can't be automated based on my research)
Create an API key. Have this ready for the next step
Create the webhook, since it is at project level, this pair needs to be created in every project. In HTTP headers paste the API key like so:
To-do
Related Issues