![Logo](/joachimdalen/azdevops-auto-state/raw/master/extension-icon.png)
Auto State is an extension to automate state changes of parent work items.
Explore the docs »
View Extension
·
Changelog
·
Report Bug
·
Request Feature
Table of Contents
An 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.
Features:
- Create rules to manage state transitions
- Ability to check that all child work items also matches rules
- Ability to process rules from the current work item to the top of the tree
- Rule tester to see how rules work and what work items will be updated
- Get started easily by using preset rules. See preset rules
- This extension does not work when doing mass updates
- The state must be updated from the work item form for the update to trigger
Auto 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 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
When you open the modal with all the feature flags the dropdown should have three options
for me [Your name]
for this project [Project Name]
(This is the one you should select)for this organization [Organization Name]
-
A MarketPlace publisher Create a publisher
-
tfx-cli
installed. Due to issues with outdated dependencies this is not included inpackage.json
npm install -g tfx-cli
-
Pipelines uses the following extensions that needs to be installed in your organization in addition to default tasks:
- GitGuard - Used to verify changes to files, such as changelog.
- Azure DevOps Extension Tasks - Used to build and publish extension.
-
Clone the repo
git clone https://github.com/joachimdalen/azdevops-auto-state.git
-
Install dependencies
> npm install
-
Update publisher in
vss-extension-dev.json
-
Compile development version
npm run prepare:dev
-
Run extension
npm run serve:dev
Note: You might need to open 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.
See documenation for rule usage.
See the open issues for a full list of proposed features.
Contributions are welcome, both in the form of suggestions and code. Create
If you want to contribute code, I ask that you follow some guidelines.
- New and changed features should to the best ability be covered by tests
- Follow the branching policy:
feature/
for new featuresbugfix/
for bug fixesdocs/
for documentation changes
- 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
- Pull requests should target the
develop
branch
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
master
is only deployed toPROD
and tagged withv<extension_version>
- Pull requests are always squash merged into
master
master
is the only branch where GitHub releases are created for
- Pull requests are always squash merged into
feature/*
andbugfix/*
are deployed toQA
. For deployment toDEV
using local assets (only manifest changes are deployed to dev), theDeploy to DEV instead of QA
option needs to be checked when running the deployment pipeline.
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.
Note Access to these are not given for your local development. Please publish your own development release.
Distributed under the MIT License. See LICENSE
for more information.
If you have generic questions about the project or usage you can make contact in the following ways:
- Submit an issue with the
@type/question
label - New Issue - Submit a new question under the Marketplace Q&A section.