Skip to content

Init DevTools Cli#4

Merged
sellakumaran merged 17 commits into
mainfrom
users/radevika/initCli
Nov 14, 2025
Merged

Init DevTools Cli#4
sellakumaran merged 17 commits into
mainfrom
users/radevika/initCli

Conversation

@rahuldevikar761
Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings November 13, 2025 06:40
@rahuldevikar761 rahuldevikar761 requested a review from a team as a code owner November 13, 2025 06:40
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request introduces initial CLI functionality for the Agent365 DevTools CLI, implementing core configuration management, service layer architecture, and comprehensive test coverage for the developer tools.

Key Changes:

  • Added configuration service with two-file model (static + generated state)
  • Implemented multi-platform deployment services (DotNet, Node.js, Python)
  • Created comprehensive test suite with 2,000+ lines of unit and integration tests
  • Added Azure service integrations (authentication, deployment, bot configuration)

Reviewed Changes

Copilot reviewed 76 out of 93 changed files in this pull request and generated 34 comments.

Show a summary per file
File Description
Microsoft.Agents.A365.DevTools.Cli.Tests.csproj Test project configuration with xUnit, Moq, and FluentAssertions dependencies
McpServerConfigTests.cs Unit tests for MCP server configuration model validation and serialization
Agent365ConfigTests.cs Tests for static/dynamic configuration properties and JSON serialization
ScopeIntegrationTests.cs Integration tests for MCP server scope and audience flow
ProjectSettingsSyncHelperTests.cs Tests for syncing settings across DotNet, Python, and Node.js projects
ManifestHelperTests.cs Tests for manifest creation and server object generation
TestConstants.cs Centralized test constants for consistent test data
AuthenticationConstantsTests.cs Validation tests for authentication constants
SetupCommandTests.cs Tests for setup command dry-run functionality
QueryEntraCommandTests.cs Tests for Entra query command structure
DevelopCommandTests.cs Tests for develop command with MCP server management
DeployCommandTests.cs Tests for deployment command structure
CreateInstanceCommandTests.cs Tests for instance creation command
ConfigCommandTests.cs Tests for configuration management commands
CleanupCommandTests.cs Tests for cleanup command with interactive confirmation
Directory.Build.props Test project build configuration
Service files (PythonBuilder.cs, NodeBuilder.cs, etc.) Platform-specific build and deployment implementations

Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Program.cs
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Models/ProjectPlatform.cs
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Models/EnumeratedScopes.cs
@rahuldevikar761 rahuldevikar761 changed the title Users/radevika/init cli Init DevTools Cli Nov 13, 2025
Copilot AI review requested due to automatic review settings November 13, 2025 06:53
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 76 out of 93 changed files in this pull request and generated 41 comments.

Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Program.cs
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Models/ProjectPlatform.cs
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Models/EnumeratedScopes.cs
Copilot AI review requested due to automatic review settings November 13, 2025 07:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 75 out of 93 changed files in this pull request and generated 3 comments.

Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Services/ConfigService.cs
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Services/ConfigService.cs
tmlsousa
tmlsousa previously approved these changes Nov 13, 2025
Comment thread manifest/manifest.json Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread docs/contributing/implementation-notes/config-init-mandatory-fields.md Outdated
Comment thread docs/commands/config-init.md Outdated
Comment thread scripts/cli/install-cli.ps1 Outdated
Comment thread scripts/cli/install-cli.ps1 Outdated
Comment thread scripts/cli/install-cli.ps1 Outdated
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Commands/ConfigCommand.cs Outdated
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Commands/ConfigCommand.cs Outdated
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Commands/CreateInstanceCommand.cs Outdated
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Commands/CreateInstanceCommand.cs Outdated
Comment thread src/DEVELOPER.md
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Commands/SetupCommand.cs Outdated
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Services/GraphApiService.cs Outdated
Copilot AI review requested due to automatic review settings November 13, 2025 19:25
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 75 out of 92 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

src/Microsoft.Agents.A365.DevTools.Cli/Services/GraphApiService.cs:1

  • Exception is logged with Debug level and generic message. When token cache read fails, this should be logged as a warning or info since it's a normal scenario (cache might not exist yet), and the message should clarify this is expected: 'Token cache file not found or unreadable - will acquire fresh token'.
// Copyright (c) Microsoft Corporation.

Copilot AI review requested due to automatic review settings November 13, 2025 20:13
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 75 out of 92 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

src/Tests/Microsoft.Agents.A365.DevTools.Cli.Tests/Commands/ConfigCommandTests.cs:1

  • The bullet character '�' appears to be a unicode character that may not render correctly. Consider using a standard ASCII character like '-' or '*' for better compatibility.
// Copyright (c) Microsoft Corporation.

Copilot AI review requested due to automatic review settings November 13, 2025 23:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 75 out of 92 changed files in this pull request and generated 1 comment.

Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Services/ConfigService.cs
pontemonti
pontemonti previously approved these changes Nov 13, 2025
Copy link
Copy Markdown
Contributor

Copilot AI commented Nov 13, 2025

@sellakumaran I've opened a new pull request, #5, to work on those changes. Once the pull request is ready, I'll request review from you.

@sellakumaran sellakumaran marked this pull request as draft November 13, 2025 23:58
@sellakumaran sellakumaran marked this pull request as ready for review November 14, 2025 00:11
Copilot AI review requested due to automatic review settings November 14, 2025 00:11
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 75 out of 92 changed files in this pull request and generated 2 comments.

Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Services/ConfigService.cs
Comment thread src/Microsoft.Agents.A365.DevTools.Cli/Services/ConfigService.cs
@sellakumaran sellakumaran merged commit ef4b54f into main Nov 14, 2025
2 checks passed
@pontemonti pontemonti deleted the users/radevika/initCli branch December 5, 2025 17:28
sellakumaran added a commit that referenced this pull request Feb 27, 2026
* Init Cli for Agent 365

* Remove build artifacts (bin, obj, .vs) from git tracking - these are now properly ignored by .gitignore

* Add .gitignore file to properly ignore build artifacts

* Use nbgv

* restore test dependencies

* Add header

* fix pack

* fix pack

* Address PR comments

* Addressed PR comments

* Handle PR comments.

* Handled PR comments.

* Handled pr comments

* another set of pr comments.

* Remove extra non-existent links

* Remove related documentation.

* Update ci.yml

---------

Co-authored-by: Rahul Devikar <radevika@microsoft.com>
Co-authored-by: Sellakumaran Kanagarathnam <sellak@microsoft.com>
sellakumaran added a commit that referenced this pull request Mar 11, 2026
- Delegate zip creation to ManifestTemplateService.CreateManifestZipAsync,
  removing duplicate inline implementation and aligning file list with the
  service's canonical set (fixes comments #1 and #2)
- Move per-file zip log entries to LogDebug in ManifestTemplateService so
  the command output remains terse
- Fix --dry-run option description: "without writing files or creating the zip"
  (fixes comment #3)
- Handle null/empty displayName in name.short guidance with explicit warning
  instead of printing currently: "" (fixes comment #4)
- Update test class summary to reflect current Console.In redirect approach
  (fixes comment #6)
- Fix CHANGELOG: interactive prompts occur only in interactive terminals;
  stdin redirect suppresses them in scripts (fixes comment #7)
- Comment #5 (PowerPlatformConstants summary) already resolved by prior rename

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sellakumaran added a commit that referenced this pull request Mar 11, 2026
… instructions (#315)

* fix: strip publish command to zip-only and remove internal MOS constants

- PublishCommand now only updates manifest files, creates manifest.zip,
  and prints manual upload instructions (Agents > All agents > Upload custom agent)
- Removed MOS Titles upload, token acquisition, and Graph API steps from publish
- Removed --mos-env, --mos-token, --skip-graph options
- Deleted AgentPublishService, MosTokenService, PublishHelpers (dead code)
- Stripped MosConstants to PowerPlatform-only; removed internal TPS/MOS Titles
  app IDs, scope GUIDs, and service URLs
- Removed dead MOS error message helpers from ErrorMessages
- Updated PublishCommandTests to match new simplified signature and added
  zip creation test

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor: address code review issues in publish command cleanup

- Remove unused agentBlueprintService parameter from CreateCommand signature
  and its callsite in Program.cs (CR-001)
- Replace magic-number zip cap (4) and arbitrary file padding loop with a
  clean LINQ expression over known candidate filenames (CR-002)
- Remove dead --verbose option binding in publish command handler; startup-
  level --verbose in Program.cs continues to work (CR-003)
- Add CHANGELOG [Unreleased] entry for the breaking behavior change (CR-004)
- Remove redundant Console.SetIn call inside zip creation test; constructor
  already sets it (CR-005)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: resolve post-merge build errors from main refactoring

- Update Program.cs to use AzureAuthValidator directly (replaces removed
  IAzureValidator/AzureValidator), remove AzureWebAppCreator resolution,
  and pass authValidator to CleanupCommand
- Delete MosPrerequisitesRequirementCheck and its test — this check wraps
  the deleted PublishHelpers and is no longer needed after the publish
  command was stripped to zip-only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor: clean up publish command output to follow az cli conventions

- Replace verbose section headers and wall-of-text guidance with a terse
  column-aligned field list (version, name.short, name.full, descriptions,
  developer.*, icons)
- Remove duplicate success messages; single 'Manifest updated: {path}' line
- Move per-file zip log entries to LogDebug
- Remove mixed Console.WriteLine / logger calls; output consistent through logger
- Add blank line after interactive prompt block before 'Package created:'
- Fix column alignment: replace 'color.png / outline.png' key with 'icons'
- Add name.short > 30 char warning
- Remove unused logger parameters from UpdateManifestFileAsync and
  UpdateAgenticUserManifestTemplateFileAsync
- Update tests: remove Console.SetIn workarounds that are no longer needed
  for early-exit paths; add WithDisplayNameExceeding30Chars_LogsWarning test

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* rename: MosConstants -> PowerPlatformConstants

File and class name no longer reflect their contents after MOS upload
infrastructure was removed. The remaining constants relate solely to the
Power Platform API (CopilotStudio permissions), so rename to match.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address PR #315 review comments

- Delegate zip creation to ManifestTemplateService.CreateManifestZipAsync,
  removing duplicate inline implementation and aligning file list with the
  service's canonical set (fixes comments #1 and #2)
- Move per-file zip log entries to LogDebug in ManifestTemplateService so
  the command output remains terse
- Fix --dry-run option description: "without writing files or creating the zip"
  (fixes comment #3)
- Handle null/empty displayName in name.short guidance with explicit warning
  instead of printing currently: "" (fixes comment #4)
- Update test class summary to reflect current Console.In redirect approach
  (fixes comment #6)
- Fix CHANGELOG: interactive prompts occur only in interactive terminals;
  stdin redirect suppresses them in scripts (fixes comment #7)
- Comment #5 (PowerPlatformConstants summary) already resolved by prior rename

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants