microsoft/ProjectRetireabot
C#
Captured source
source ↗microsoft/ProjectRetireabot
Description: Repository for Project Retireabot source code, documentation and samples
Language: C#
License: MIT
Stars: 1
Forks: 0
Open issues: 8
Created: 2026-05-11T14:59:24Z
Pushed: 2026-06-08T10:40:15Z
Default branch: main
Fork: no
Archived: no
README:
RetireaBot
This is the repository contains the source code to RetireaBot, an under-development proof-of-concept to help customers be on top of their resource migrations of EoL Azure services and or SKUs.
How it works (with GitHub)
1. Retrieves all Azure Advisor advisories for your deployed resources in the subscriptions it has access to 2. Fetches the full advisory and extracts the key information from it 3. Checks if the advisory already has an issue, if not creates it as an issue on a specified repository and assign GitHub CoPilot to the issue 4. GitHub CoPilot attempts to resolve the issue and create a PR to review
Requirements
- Azure Subscription(s)
- GitHub CoPilot Licenses (if assigning feature is enabled)
Usage
By default this function will run every Monday at 00:00 UTC (0 0 0 * * 1). This can be tweaked by setting the timerTrigger parameter when deploying with azd, or by setting the App__TimerTrigger app setting on the deployed Function App.
Deployment
The preferred way to deploy this program is using the Azure Developer CLI, which handles both provisioning of the architecture and the deployment of the application to a target resource group.
Before provisioning the architecture, you need to specify parameters to define the behaviour of RetireaBot, copy the example json, and remove .example.
There are some key parameters you need to specify:
| Name | Required | Description | | ---------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | location | true | The location where the resources are deployed | | targetRepository1 | true | Target project or repository to create work items on from advisories | | workItemBackend | true | What work item backend RetireaBot should use to create work items in (Valid options: 'GitHub', 'AzureDevOps') | | targetResourceGroup | false | The resource group RetireaBot should create issues for, leave blank any resource group | | advisoryLabel | false | What label should be attached to all work items to identify it was created by RetireaBot. Default: advisor | | advisoryParentLabel | false | What label should be attached to parent work items to identify them. Default: tracking | | advisoryLabelPrefix | false | What prefix should be applied to label that uniquely identifies a work item based on their advisory. Default: advisor- | | parentLabelPrefix | false | What prefix should be applied to label that uniquely identifies a parent work item based on their advisory. Default: advisor-type- | | createParentWorkItems | false | Whether parent work items should be created when processing advisories to track child work items | | createChildWorkItems | false | Whether child work items should be created when processing advisories | | deploymentName | false | A unique application/solution name for all resources in this deployment | | deploymentUniqueText | false | Unique text value for the solution. This is used to ensure resource names are unique for global resource | | httpEndpointEnable | false | Whether the manual HTTP endpoint should be enabled. Default: false | | httpEndpointOutput | false | Whether the manual HTTP endpoint should display extended information about its run Default: false | | httpEndpointWhatIf | false | Whether the manual HTTP endpoint should allow users to run dry-runs Default: false | | timerTrigger | false | NCRONTAB expression for the scheduled timer trigger. Default: 0 0 0 * * 1 (every Monday at 00:00 UTC) | | gitHubCoPilotAssign | false | Whether GitHub CoPilot should be assigned to try and mitigate issues (requires a GitHub CoPilot license) Default: false | | resourceGroupRepositoryMap | false | If "perResourceGroup" mode is being used, these mappings decide which repositories issues are created based on their resource groups | | useTriageRepoForUnmapped | false | Should unmapped resources have their work items created in the triage repository/target repository in perResourceGroup mode. Default: true | | unmappedRepository | false | The repository work items should be created in when they are not mapped in perResourceGroup mode. | | workItemScope | false | Whether issues should be created in one "triage" repository or should be shared across multiple repositories with a parent issue in the repository. Default "monolithic" |
1 When workItemScope is set to "perResourceGroup", the repository specified here will be treated as the parent repository
GitHub
When workItemBackend is set to GitHub, you have some additional properties you can set.
| Name | Required | Description | | -------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------- | | gitHubPAT | true1 | Personal access token for GitHub | | gitHubAppId | true2 | AppId of the App Registration on GitHub | | gitHubInstallId | true2 | InstallId for the installation of the App registration to use | | gitHubPrivateKeyId | true2 | The id of the stored GitHub App's Private Key in KeyVault | | gitHubPrivateKeyPath | true2 | The path to the private key to be used to authenticate and be stored in KeyVault (path is relative to the root of this repository). |
1 Only required if no App Registration authentication is defined
2 Only required if no PAT is defined and if another GitHub App Registration field is defined
Note: A deployment can have both a PAT and App Registration defined, the app with run in a 'Hybrid' mode, where PAT is used a secondary method to interact with GitHub.
Once you have configured RetireaBot with ensure your parameters file is called main.parameters.json, and run azd up at the root of the project directory, which it will then provision the architecture and deploy the application.
Azure DevOps
When workItemBackend is set to AzureDevOps, you have some additional properties to configure how RetireaBot…
Excerpt shown — open the source for the full document.
Notability
notability 1.0/10Low traction, new repo