Skip to content

Workflow for new issues

Before creating a new issue, you'll likely want to review existing issues first. cd into your repository and use doing list for a quick view. If you need more detail you can use doing open to open relevant views in the azure devops web portal, for example doing open issues, doing open board or doing open sprint.

Planning multiple items

If you don't plan to start work on an issue immediately, you can use doing issue create to create a new (unassigned) work item with:

doing issue create "something that needs to be done"

You can specify more options (see doing issue create --help). Some examples:

doing issue create "something that needs to be done" --mine 
doing issue create "something that needs to be done" --assigned_to "john.doe@company.com" 
doing issue create "something that needs to be done" --a "john.doe@company.com" --type "Bug"
doing issue create "something that needs to be done" --parent "1234" --type "Task"

Starting work on a new issue

If you plan to start work on a new issue immediately, it is better to use doing workon instead. All you need to provide is the title:

$ doing workon "fixing a small typo"
> Created issue #146545 'fixing a small typo' (User Story)
        > added area-path '{your area path}'
        > added iteration-path '{your iteration path}'
        > added assignee '{your azure account}'
> Created remote branch '146545_fixing_a_small_typo'
> Created pull request #49281 'fixing a small typo'
        > linked work item #146545
        > marked as draft pull request
        > set auto-complete to True'
        > set to delete remote source branch after PR completion
        > added reviewers: '{your azure account}'
        $ Running command: git fetch origin
        $ Running command: git checkout -b 146545_fixing_a_small_typo origin/146545_fixing_a_small_typo

This automates a lot of clicking in the Azure Devops web portal and even runs git commands locally, so you can immediately start your normal git add, git commit and git push development workflow.

See also the workflow for starting work on an existing item

Using aliases

To avoid having to type the emailadresses of your teammates every time (which are case sensitive in Azure), you can setup aliases in your .doing-cli-config.yml (see also config file reference):

doing issue create "fix bug" -a john
# or
doing workon "fix bug" --reviewers "john jane"
# ... other config items ...
user_aliases:
   john: John.Doe@company.com
   jane: Jane.Doe@email.net

Starting work on a new child issue

Another common workflow is to work on tasks that are part of a user story. In azure devops, work items can be linked (parent/child relationship). doing workon has --parent and --type to accomodate the use case:

doing workon "some work" --type 'Task' --parent 1234

Setting default work item types

By default the work item is created with --type 'User Story'. There a lot of different work item types, the most common being "Bug", "Epic", "Feature", "Issue", "Task", "Test Case" and "User Story".

Setting a different default can by done via the config file. It makes sense to do this immediately for doing workon as well.

defaults:
    DOING_CREATE_ISSUE_TYPE: 'Bug'
    DOING_WORKON_TYPE: 'Bug'

Wrap up

When you're done you can view the:

  • pull request using doing open pr <pullrequest id>. Use doing list to find your PR id.
  • issue using doing open issue <issue id>. The git branch name has the issue id as a prefix, or alternatively you can use doing list to find the issue id.
  • active pull requests using doing open prs
  • pipeline runs using doing open pipe