feat(esrp): configure ADO pipelines with Client ID and team contacts#359
Merged
imran-siddique merged 22 commits intomicrosoft:mainfrom Mar 24, 2026
Merged
feat(esrp): configure ADO pipelines with Client ID and team contacts#359imran-siddique merged 22 commits intomicrosoft:mainfrom
imran-siddique merged 22 commits intomicrosoft:mainfrom
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add EU AI Act, Colorado AI Act, and GPAI obligations timeline with AGT coverage mapping. Reference Microsoft Purview DSPM for AI as complementary data governance layer. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Scorecard API rejects workflows with write permissions at the workflow level. id-token: write and security-events: write must be scoped to the job level only. Restores permissions: read-all at workflow level while keeping job-level write permissions intact. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ft#324) Add Google-style docstrings with Args, Returns, Raises, Attributes, and Example sections to MCPMessageType, MCPAdapter, and MCPServer classes. Also enhances docstrings for key methods including handle_message, _handle_tools_call, _handle_resources_read, and _map_tool_to_action. Fixes microsoft#316
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
…s (dependency confusion) (microsoft#325) - Replace !pip install agent-os with !pip install -e ../.. in all 6 notebooks; agent-os is not on PyPI and installing it from PyPI is a dependency confusion vector - Replace zendesk-sdk/freshdesk-sdk with zenpy/freshdesk (the real published SDKs) in customer-service/requirements.txt - Remove hashlib-compat from healthcare-hipaa/requirements.txt; hashlib is stdlib and hashlib-compat is not a real PyPI package
…stall agent-os with agent-os-kernel Replace all remaining instances of `pip install agent-os` (unregistered on PyPI) with `pip install agent-os-kernel` (the actual package) across docs, examples, TypeScript extensions, CLI source, tests, and SVG assets. Also fixes `pip install emk` references to point to `agent-os-kernel[full]` since emk is a submodule, not a standalone PyPI package. Completes the fix started in PR microsoft#325 which only covered notebooks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Dify 65K→133K, AutoGen 42K→55K, CrewAI 28K→46K, Semantic Kernel 24K→27K, LangGraph 24K→27K, Haystack 22K→24K, Agent Framework 7.6K→8K. Added star counts for OpenAI Agents SDK (20K) and Google ADK (18K). Sorted by stars descending. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…it CI - scripts/check_dependency_confusion.py: Pre-commit hook that scans for pip install commands referencing unregistered PyPI packages. Maintains an allowlist of known registered packages. - .github/workflows/weekly-security-audit.yml: Weekly CI job running dependency confusion scan, security skills scan, and weak crypto check. Uploads reports as artifacts with 90-day retention. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…icrosoft#349) * docs: add testing guide for external testers and customers Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: add regulatory alignment table and Purview positioning to README Add EU AI Act, Colorado AI Act, and GPAI obligations timeline with AGT coverage mapping. Reference Microsoft Purview DSPM for AI as complementary data governance layer. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix(ci): restore read-all at workflow level for Scorecard verification The Scorecard API rejects workflows with write permissions at the workflow level. id-token: write and security-events: write must be scoped to the job level only. Restores permissions: read-all at workflow level while keeping job-level write permissions intact. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: add comprehensive docstrings to mcp_adapter.py classes (microsoft#324) Add Google-style docstrings with Args, Returns, Raises, Attributes, and Example sections to MCPMessageType, MCPAdapter, and MCPServer classes. Also enhances docstrings for key methods including handle_message, _handle_tools_call, _handle_resources_read, and _map_tool_to_action. Fixes microsoft#316 * ci: add markdown link checker workflow (microsoft#323) Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> * feat: add policy evaluation heatmap to SRE dashboard (microsoft#309) (microsoft#326) * fix: remove unregistered PyPI packages from notebooks and requirements (dependency confusion) (microsoft#325) - Replace !pip install agent-os with !pip install -e ../.. in all 6 notebooks; agent-os is not on PyPI and installing it from PyPI is a dependency confusion vector - Replace zendesk-sdk/freshdesk-sdk with zenpy/freshdesk (the real published SDKs) in customer-service/requirements.txt - Remove hashlib-compat from healthcare-hipaa/requirements.txt; hashlib is stdlib and hashlib-compat is not a real PyPI package * fix(security): complete dependency confusion fix — replace all pip install agent-os with agent-os-kernel Replace all remaining instances of `pip install agent-os` (unregistered on PyPI) with `pip install agent-os-kernel` (the actual package) across docs, examples, TypeScript extensions, CLI source, tests, and SVG assets. Also fixes `pip install emk` references to point to `agent-os-kernel[full]` since emk is a submodule, not a standalone PyPI package. Completes the fix started in PR microsoft#325 which only covered notebooks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: update framework star counts to current values Dify 65K→133K, AutoGen 42K→55K, CrewAI 28K→46K, Semantic Kernel 24K→27K, LangGraph 24K→27K, Haystack 22K→24K, Agent Framework 7.6K→8K. Added star counts for OpenAI Agents SDK (20K) and Google ADK (18K). Sorted by stars descending. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Parsa Faraji Alamouti <165321600+parsa-faraji@users.noreply.github.com> Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com> Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Zeel Desai <72783325+zeel2104@users.noreply.github.com> Co-authored-by: Xavier Garceau-Aranda <xavier.garceau-aranda@posteo.net>
- agentmesh → agentmesh-platform (5 files) - agentmesh-governance → agent-governance-toolkit - agent-os-observability → agent-os-kernel[observability] - hashlib.md5 → hashlib.sha256 (3 files) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fill ESRP pipeline placeholders with: - Client ID: a458522c-0359-4e92-9887-5fee1607c0c7 - Service connection: agt-esrp-release - Owners/Approvers: agt@microsoft.com TODO remaining (this week): - Key Vault name (pending PRSS cert generation) - Auth/Sign cert names (pending SAW access) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🤖 AI Agent: code-reviewer
Code Review for PR: feat(esrp): configure ADO pipelines with Client ID and team contacts
🔴 CRITICAL
-
Hardcoded Client ID and Service Connection
- The
esrpClientId(a458522c-0359-4e92-9887-5fee1607c0c7) andesrpServiceConnection(agt-esrp-release) are hardcoded in the pipeline configuration. This introduces a security risk if the repository is public or if the pipeline logs are accessible to unauthorized users. - Actionable Fix: Use Azure DevOps pipeline secrets or environment variables to securely store and retrieve sensitive values like
esrpClientIdandesrpServiceConnection. For example:variables: esrpClientId: $(ESRP_CLIENT_ID) esrpServiceConnection: $(ESRP_SERVICE_CONNECTION)
- The
-
Key Vault Name and Certificate Names
- The
esrpKeyVaultNameandesrpSignCertNameare placeholders (agt-esrp-kvandesrp-sign) with aTODOcomment indicating they will be updated later. If these values are not updated before deployment, the pipeline could fail or expose sensitive data. - Actionable Fix: Ensure that these values are securely retrieved from Azure Key Vault or other secret management solutions before merging this PR. Add validation steps in the pipeline to verify that these values are correctly set.
- The
-
Potential Exposure of Sensitive Data
- The pipeline configuration includes sensitive information like
esrpClientIdandesrpServiceConnection. If this repository is public or if logs are not properly secured, these values could be exposed. - Actionable Fix: Audit the repository's access controls and ensure that sensitive data is not exposed in logs. Use Azure DevOps secure files or secret variables for sensitive configurations.
- The pipeline configuration includes sensitive information like
🟡 WARNING
- Backward Compatibility
- The changes in this PR modify the pipeline configuration files (
npm-publish.ymlandpypi-publish.yml) by replacing placeholders with actual values. If these pipelines are already in use, the changes could potentially break existing workflows if the new values are incorrect or incomplete. - Actionable Fix: Test the updated pipelines in a staging environment before merging to ensure they work as expected. Additionally, communicate these changes to all stakeholders to avoid disruptions.
- The changes in this PR modify the pipeline configuration files (
💡 SUGGESTIONS
-
Add Validation for Required Variables
- To prevent pipeline failures due to missing or incorrect values, add validation steps to check that all required variables (e.g.,
esrpKeyVaultName,esrpSignCertName,esrpClientId) are set correctly before proceeding with the pipeline. - Example:
- script: | if [ -z "$esrpKeyVaultName" ] || [ -z "$esrpSignCertName" ] || [ -z "$esrpClientId" ]; then echo "Error: Required ESRP variables are not set." exit 1 fi displayName: "Validate ESRP Variables"
- To prevent pipeline failures due to missing or incorrect values, add validation steps to check that all required variables (e.g.,
-
Document Remaining TODOs
- The PR mentions that the Key Vault name and certificate names will be updated after PRSS cert generation. However, there is no clear indication of who is responsible for this or when it will be completed.
- Actionable Suggestion: Add a follow-up task or issue to track the completion of these TODOs. This will ensure that these placeholders are not forgotten.
-
Use Descriptive Variable Names
- The variable names like
esrpSignCertNameandesrpKeyVaultNameare somewhat generic. Consider using more descriptive names that indicate their specific purpose, such asesrpPrssKeyVaultNameoresrpPrssSignCertName.
- The variable names like
-
Add Comments for Future Developers
- Add comments to explain the purpose of each variable and how they are used in the pipeline. This will help future developers understand the configuration and avoid accidental misconfigurations.
-
Automate Key Vault Integration
- Instead of manually updating the Key Vault name and certificate names, consider automating the process using Azure CLI or ARM templates. This will reduce the risk of human error and streamline the deployment process.
Summary of Actions
- 🔴 Use secure methods (e.g., Azure DevOps secrets) to store sensitive values like
esrpClientIdandesrpServiceConnection. - 🔴 Ensure
esrpKeyVaultNameandesrpSignCertNameare updated before merging. - 🟡 Test the updated pipelines in a staging environment to ensure backward compatibility.
- 💡 Add validation steps for required variables in the pipeline.
- 💡 Document and track the remaining TODOs for Key Vault and certificate updates.
- 💡 Use more descriptive variable names for clarity.
- 💡 Consider automating Key Vault integration to reduce manual steps.
Let me know if you need further clarification or assistance!
🤖 AI Agent: security-scanner — Security Analysis of the Pull RequestSecurity Analysis of the Pull Request🔴 CRITICAL: Credential Exposure
🟠 HIGH: Key Vault Name and Certificate Name Placeholder
🟠 HIGH: Policy Engine Circumvention
🟡 MEDIUM: Trust Chain Weakness
🟡 MEDIUM: Supply Chain Risk
Summary of Findings
Recommendations
Let me know if you need further assistance! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fill ESRP pipeline placeholders:
Remaining TODOs (marked in code):