{"id":15421378,"url":"https://github.com/coderunrepeat/adoautostatetransitions","last_synced_at":"2025-07-12T12:39:33.767Z","repository":{"id":166824089,"uuid":"198171977","full_name":"CodeRunRepeat/AdoAutoStateTransitions","owner":"CodeRunRepeat","description":"This project automates Azure DevOps to update work items from New to Active when a child becomes Active, and to close work items when all their children are closed (or removed).","archived":false,"fork":false,"pushed_at":"2020-02-10T11:40:59.000Z","size":187,"stargazers_count":6,"open_issues_count":1,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-29T09:05:08.661Z","etag":null,"topics":["azure-devops","azure-functions","azure-functions-v2","azure-service-bus","azure-servicebus","csharp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeRunRepeat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-22T07:37:20.000Z","updated_at":"2024-05-14T20:33:59.000Z","dependencies_parsed_at":"2023-07-02T14:16:47.272Z","dependency_job_id":null,"html_url":"https://github.com/CodeRunRepeat/AdoAutoStateTransitions","commit_stats":{"total_commits":12,"total_committers":2,"mean_commits":6.0,"dds":0.08333333333333337,"last_synced_commit":"6b044a6f4649ec841ef280ef00c53973bea10af2"},"previous_names":["coderunrepeat/adoautostatetransitions"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeRunRepeat%2FAdoAutoStateTransitions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeRunRepeat%2FAdoAutoStateTransitions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeRunRepeat%2FAdoAutoStateTransitions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeRunRepeat%2FAdoAutoStateTransitions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeRunRepeat","download_url":"https://codeload.github.com/CodeRunRepeat/AdoAutoStateTransitions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249718739,"owners_count":21315099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure-devops","azure-functions","azure-functions-v2","azure-service-bus","azure-servicebus","csharp"],"created_at":"2024-10-01T17:34:33.037Z","updated_at":"2025-04-19T14:55:53.054Z","avatar_url":"https://github.com/CodeRunRepeat.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Description\nThis project automates Azure DevOps to update work item state in two frequent scenarios:\n* When a work item transitions from New to Active, recursively walk parent links and update parent items from New to Active; \n  if parent items are in any other state, no change is made.\n* When the last child item of a work item transitions to Closed or Removed, change the work item itself to Closed (if at least one child is Closed)\n  or Removed (if all child items are Removed); if any of the child items is not in the Closed or Removed date, no change is made.\n  \n# How it's done\nA Service Hook in Azure DevOps sends a message to a ServiceBus topic every time a work item is updated (see configuration screenshots below).\nThis topic triggers an Azure function which connects to the Azure DevOps project and implements the logic above, using the ADO REST API (through\nthe respective C# SDK).\n\n![Overview.png](Overview.png)\n![Screenshot1.png](Screenshot1.png)\n![Screenshot2.png](Screenshot2.png)\n\n# How to reuse\n1. [Create a Personal Access Token](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops)\nin Azure Dev Ops with \"Work Items (Read, write, \u0026 manage)\" permissions\n1. Open AdoAutoStateTransitions.sln in Visual Studio\n1. Deploy the azuredeploy.json ARM template in the AdoAutoStateTransitionsAzure project\n1. Build and publish the Azure Functions project (AdoAutoStateTransitionsFunctions)\n1. Go to the Properties page for the Function App in the Azure portal and set the appropriate values for the AdoUrl, AdoPat\nand ServiceBusConnectionString settings\n\n# Contributing\nFeedback and pull requests welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderunrepeat%2Fadoautostatetransitions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoderunrepeat%2Fadoautostatetransitions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderunrepeat%2Fadoautostatetransitions/lists"}