azure-devops-cli-extension icon indicating copy to clipboard operation
azure-devops-cli-extension copied to clipboard

[Bug] Different Behavior on "az repos pr create" and web interface

Open gyssels opened this issue 5 years ago • 4 comments

Describe the bug When creating a merge from the interface ALL work-items from the git commit command are linked to the PR. while doing the command line the work-items need to be enumerated with the switch "--work-items" otherwise we need to do manually on the web interface afterward. It upset my team as we carefully enlist our work-items on commits. Some of my developers are stoping to link on commits... intruding bad behavior. please fix it soon.

To Reproduce -Azure-Devops extension version: azure-cli 2.0.81 * -Extensions: azure-devops 0.17.0

Steps to reproduce the behavior:

  1. login using az login...
  2. Commit changes to az git repos, link by adding the '#'+Work-item. Az DevOps website form will automatically link to the work-item
  3. c:[project git directorie]>az repos pr create -t develop

gyssels avatar Aug 10 '20 11:08 gyssels

This is still an issue. Please fix this. It makes the az repos pr create command useless if you want the work items associated.

ToddRopog avatar Mar 08 '21 02:03 ToddRopog

Here is a workaround I came up with. It searches through all commit messages in the current branch looking for messages that have included a work item number. It then validates it's a valid work item and produces an array WORKITEM_LIST that can be passed to the --work-items parameter of the az repos pr create command. For example az repos pr create --title myPR ... --work-items "${WORKITEM_LIST[@]}"

# Get list of all possible work items contained within commit messages by searching all commit messages in this branch that match the pattern #number(s)
POSSIBLE_WORKITEM_LIST=$(git log origin/master.. --grep='#[0-9]' --pretty=format:'%B' | grep -o '#[0-9]\+' | tr -d '#' | sort -f | uniq -i | tr '\n' ' ')
echo "Possible work item numbers are... $POSSIBLE_WORKITEM_LIST"
WORKITEM_LIST=()
# Loop thorugh the list of possible work items and confirm they are in fact valid work item numbers
for WORKITEM in $POSSIBLE_WORKITEM_LIST; do
  echo "Checking if $WORKITEM is a valid work item number ..."
  if az boards work-item show --id "$WORKITEM"; then
    echo "$WORKITEM is a valid work item number"
    WORKITEM_LIST+=("${WORKITEM}")
  else
    echo "$WORKITEM is not a valid work item number"
  fi
done

darrenswart avatar Aug 09 '21 17:08 darrenswart

Looking for this to either happen automatically, or a workaround. We are using a pipeline to create develop -> main PRs for multiple different repositories at the same time, but work items don't get linked.

FrancisEgan avatar May 11 '23 17:05 FrancisEgan