{"id":40870854,"url":"https://github.com/joachimdalen/azdevops-auto-state","last_synced_at":"2026-01-22T00:40:01.224Z","repository":{"id":38303295,"uuid":"432702134","full_name":"joachimdalen/azdevops-auto-state","owner":"joachimdalen","description":"Auto State is an extension to automate state changes of parent work items.","archived":false,"fork":false,"pushed_at":"2022-10-22T05:49:02.000Z","size":3080,"stargazers_count":6,"open_issues_count":16,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-07-30T17:11:26.014Z","etag":null,"topics":["auto-update","azure-boards","azure-devops","azure-devops-extension","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=joachimdalen.auto-state","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joachimdalen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-28T12:09:18.000Z","updated_at":"2023-11-04T13:58:36.000Z","dependencies_parsed_at":"2022-09-22T02:13:42.281Z","dependency_job_id":null,"html_url":"https://github.com/joachimdalen/azdevops-auto-state","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/joachimdalen/azdevops-auto-state","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joachimdalen%2Fazdevops-auto-state","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joachimdalen%2Fazdevops-auto-state/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joachimdalen%2Fazdevops-auto-state/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joachimdalen%2Fazdevops-auto-state/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joachimdalen","download_url":"https://codeload.github.com/joachimdalen/azdevops-auto-state/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joachimdalen%2Fazdevops-auto-state/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28648460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["auto-update","azure-boards","azure-devops","azure-devops-extension","hacktoberfest"],"created_at":"2026-01-22T00:40:00.467Z","updated_at":"2026-01-22T00:40:01.215Z","avatar_url":"https://github.com/joachimdalen.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/joachimdalen/azdevops-auto-state\"\u003e\n    \u003cimg src=\"extension-icon.png\" alt=\"Logo\" width=\"100\" height=\"100\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eAuto State\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Auto State is an extension to automate state changes of parent work items.\n    \u003cbr /\u003e\n    \u003ca href=\"https://devops-extensions.dev/docs/extensions/auto-state\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=joachimdalen.auto-state\"\u003eView Extension\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/joachimdalen/azdevops-auto-state/blob/master/CHANGELOG.md\"\u003eChangelog\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/joachimdalen/azdevops-auto-state/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/joachimdalen/azdevops-auto-state/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Azure DevOps builds\" src=\"https://img.shields.io/azure-devops/build/dalenapps/6531387f-baea-443c-a284-0d0e786e56c3/43?color=0078d7\u0026label=Master%20Build\u0026logo=azure-devops\u0026style=flat-square\"\u003e\n  \u003cimg alt=\"Issues\" src=\"https://img.shields.io/github/issues/joachimdalen/azdevops-auto-state.svg?style=flat-square\"\u003e\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/joachimdalen/azdevops-auto-state?style=flat-square\"\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n\n  \u003cimg alt=\"Visual Studio Marketplace Installs - Azure DevOps Extension\" src=\"https://img.shields.io/visual-studio-marketplace/azure-devops/installs/total/joachimdalen.auto-state?label=Marketplace%20Installs\u0026style=flat-square\"\u003e\n  \u003cimg alt=\"Visual Studio Marketplace Last Updated\" src=\"https://img.shields.io/visual-studio-marketplace/last-updated/joachimdalen.auto-state?style=flat-square\"\u003e\n\u003cimg alt=\"Visual Studio Marketplace Rating\" src=\"https://img.shields.io/visual-studio-marketplace/r/joachimdalen.auto-state?style=flat-square\"\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#limitations\"\u003eLimitations\u003c/a\u003e\u003cli\u003e   \n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#post-install-activation\"\u003ePost Install Activation\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#release-and-merge-strategy\"\u003eRelease and merge strategy\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n---\n\n## About The Project\n\n![Product Name Screen Shot][product-screenshot]\n\nAn issue I often face is forgetting to update the state of a parent workitem when starting a new Task. This extension aims to auto update parent workitems based on a set of rules when the child workitem is started.\n\n**Features:**\n\n- Create rules to manage state transitions\n  - Ability to check that all child work items also matches rules\n  - Ability to process rules from the current work item to the top of the tree\n- Rule tester to see how rules work and what work items will be updated\n- Get started easily by using preset rules. See [preset rules](./docs/PRESETS.md)\n\n### Limitations\n\n- This extension does not work when doing mass updates\n- The state **must** be updated from the work item form for the update to trigger\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Post Install Activation\n\nAuto State is hidden behind a feature flag for several reasons. After installing the extension a Project or Organization administrator will need to toggle the feature flag to `On` in the [Preview Features](https://docs.microsoft.com/en-us/azure/devops/project/navigation/preview-features?view=azure-devops\u0026tabs=new-account-enabled#enable-features-for-your-use) menu. This feature flag is scoped to individual projects, that means you need to be inside a project for the feature flag to appear. The url should look something like `https://dev.azure.com/ORGANIZATION/PROJECT`\n\nWhen you open the modal with all the feature flags the dropdown should have three options\n\n- `for me [Your name]`\n- `for this project [Project Name]` (This is the one you should select)\n- `for this organization [Organization Name]`\n\n![Feature Toggle][feature-toggle-screenshot]\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting Started\n\n### Prerequisites\n\n- A MarketPlace publisher [Create a publisher](https://docs.microsoft.com/en-us/azure/devops/extend/publish/overview?view=azure-devops#create-a-publisher)\n- `tfx-cli` installed. Due to issues with outdated dependencies this is not included in `package.json`\n\n  ```sh\n  npm install -g tfx-cli\n  ```\n\n- Pipelines uses the following extensions that needs to be installed in your organization in addition to default tasks:\n  - [GitGuard](https://marketplace.visualstudio.com/items?itemName=joachimdalen.gitguard) - Used to verify changes to files, such as changelog.\n  - [Azure DevOps Extension Tasks](https://marketplace.visualstudio.com/items?itemName=ms-devlabs.vsts-developer-tools-build-tasks) - Used to build and publish extension.\n\n### Installation\n\n1. Clone the repo\n\n   ```sh\n   git clone https://github.com/joachimdalen/azdevops-auto-state.git\n   ```\n\n2. Install dependencies\n\n   ```sh\n   \u003e npm install\n   ```\n\n3. Update publisher in `vss-extension-dev.json`\n4. Compile development version\n\n   ```sh\n   npm run prepare:dev\n   ```\n\n5. [Publish extension](https://docs.microsoft.com/en-us/azure/devops/extend/publish/overview?view=azure-devops#publish-an-extension)\n6. [Share](https://docs.microsoft.com/en-us/azure/devops/extend/publish/overview?view=azure-devops#share-an-extension) and [install](https://docs.microsoft.com/en-us/azure/devops/extend/publish/overview?view=azure-devops#install-an-extension) extension\n7. Run extension\n\n   ```sh\n   npm run serve:dev\n   ```\n\n   **Note:** You might need to open [https://localhost:3000/](https://localhost:3000/) in your browser from time to time to accept the unsecure certificate to have the extension load properly from your local environment.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- USAGE EXAMPLES --\u003e\n\n## Usage\n\nSee [documenation](./docs/index.md) for rule usage.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- ROADMAP --\u003e\n\n## Roadmap\n\nSee the [open issues](https://github.com/joachimdalen/azdevops-auto-state/issues?q=is%3Aopen+is%3Aissue+label%3A%40type%2Ffeature) for a full list of proposed features.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## Contributing\n\nContributions are welcome, both in the form of suggestions and code. Create\n\nIf you want to contribute code, I ask that you follow some guidelines.\n\n- New and changed features should to the best ability be covered by tests\n- Follow the branching policy:\n  - `feature/` for new features\n  - `bugfix/` for bug fixes\n  - `docs/` for documentation changes\n- If your change is related to an issue, use the id as the first part of the branch e.g `bugfix/12-fix-crash-when-updating-rule`\n- Pull requests should target the `develop` branch\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Release and merge strategy\n\n- `master` is only deployed to `PROD` and tagged with `v\u003cextension_version\u003e`\n  - Pull requests are always squash merged into `master`\n  - `master` is the only branch where GitHub releases are created for\n- `feature/*` and `bugfix/*` are deployed to `QA`. For deployment to `DEV` using local assets (only manifest changes are deployed to dev), the `Deploy to DEV instead of QA` option needs to be checked when running the deployment pipeline.\n\n`QA` and `DEV` are private development and verfication environments (publications of the extensions.) Submit a new issue if you for some reason wish access to either of these.\n\n**Note** Access to these are not given for your local development. Please publish your own development release.\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\nIf you have generic questions about the project or usage you can make contact in the following ways:\n\n- Submit an issue with the `@type/question` label - [New Issue](https://github.com/joachimdalen/azdevops-auto-state/issues/new)\n- Submit a new question under the [Marketplace Q\u0026A section](https://marketplace.visualstudio.com/items?itemName=joachimdalen.auto-state\u0026ssr=false#qna).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n[product-screenshot]: marketplace/docs/images/rule-editor.png\n[feature-toggle-screenshot]: marketplace/docs/images/feature-toggle.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoachimdalen%2Fazdevops-auto-state","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoachimdalen%2Fazdevops-auto-state","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoachimdalen%2Fazdevops-auto-state/lists"}