You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

AzureGenie.cs 2.6 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Copyright (c) Microsoft Corporation. All rights reserved.
  2. // AzureGenie.cs
  3. using DevTeam.Backend.Services;
  4. using Microsoft.AutoGen.Contracts;
  5. using Microsoft.AutoGen.Core;
  6. namespace DevTeam.Backend.Agents;
  7. [TopicSubscription(Consts.TopicName)]
  8. public class AzureGenie([FromKeyedServices("AgentsMetadata")] AgentsMetadata typeRegistry, IManageAzure azureService)
  9. : Agent(typeRegistry),
  10. IHandle<ReadmeCreated>,
  11. IHandle<CodeCreated>
  12. {
  13. public async Task Handle(ReadmeCreated item, CancellationToken cancellationToken = default)
  14. {
  15. // TODO: Not sure we need to store the files if we use ACA Sessions
  16. // //var data = item.ToData();
  17. // // await Store(data["org"], data["repo"], data.TryParseLong("parentNumber"), data.TryParseLong("issueNumber"), "readme", "md", "output", data["readme"]);
  18. // await PublishEventAsync(new Event
  19. // {
  20. // Namespace = item.Namespace,
  21. // Type = nameof(EventTypes.ReadmeStored),
  22. // Data = item.Data
  23. // });
  24. // break;
  25. await Task.CompletedTask;
  26. }
  27. public async Task Handle(CodeCreated item, CancellationToken cancellationToken = default)
  28. {
  29. // TODO: Not sure we need to store the files if we use ACA Sessions
  30. // //var data = item.ToData();
  31. // // await Store(data["org"], data["repo"], data.TryParseLong("parentNumber"), data.TryParseLong("issueNumber"), "run", "sh", "output", data["code"]);
  32. // // await RunInSandbox(data["org"], data["repo"], data.TryParseLong("parentNumber"), data.TryParseLong("issueNumber"));
  33. // await PublishEventAsync(new Event
  34. // {
  35. // Namespace = item.Namespace,
  36. // Type = nameof(EventTypes.SandboxRunCreated),
  37. // Data = item.Data
  38. // });
  39. // break;
  40. await Task.CompletedTask;
  41. }
  42. public async Task Store(string org, string repo, long parentIssueNumber, long issueNumber, string filename, string extension, string dir, string output)
  43. {
  44. await azureService.Store(org, repo, parentIssueNumber, issueNumber, filename, extension, dir, output);
  45. }
  46. public async Task RunInSandbox(string org, string repo, long parentIssueNumber, long issueNumber)
  47. {
  48. await azureService.RunInSandbox(org, repo, parentIssueNumber, issueNumber);
  49. }
  50. }