Skip to content

TheKeyholdingCompany/action-update-azure-ticket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Update an Azure Boards' ticket's status

Usage

- name: Update ticket to "status"
  uses: TheKeyholdingCompany/action-update-azure-ticket@0.1.8
  with:
    pat: your-azure-pat-here
    project: your-project-name  # Project ID also works
    ticket-id: your-ticket-id  # (e.g. "1234" or "AB#1234" or "AB#1234,AB#4321" or "1234,4321")
    status: your-status-here  # case insensitive, but must match an existing state
    status-order-list: comma-separated-list-of-statuses  # optional, but recommended
    code-review-state: Your Code Review State  # optional, default is "Code Review"
    allow-backflow: true  # allow changing to previous statuses, optional, default is false

The default value for status-order-list is "New,In Progress,Code Review,Ready for QA,In QA,Ready for regression,Ready for Deploy,Done".

This is recommended in case you have rules that restrict the which statuses can flow to which other statuses.

Example

name: Move ticket development status
on:
  pull_request:
    types:
      - review_requested
      - ready_for_review
    branches:
      - main
  push:
    branches-ignore:
      - main

jobs:
  update-ticket:
    environment: testing
    timeout-minutes: 5
    runs-on: ubuntu-latest
    steps:
      - run: echo "Updating ticket..."

      - name: Find ticket ID (pull request)
        id: pr_find_ticket
        if: github.event_name == 'pull_request'
        run: |
          ticket=$(echo "${{ github.event.pull_request.body }}" | grep -o 'AB#[0-9]*' | awk -F 'AB#' '{print $2}')
          ticket_list=$(echo $(echo "${ticket}") | tr ' ' ',')
          echo "tickets=${ticket_list}" >> $GITHUB_OUTPUT

      - name: Update ticket to "Code Review"
        if: github.event_name == 'pull_request'
        uses: TheKeyholdingCompany/action-update-azure-ticket@0.1.7
        with:
          pat: ${{ secrets.AZURE_PAT }}
          project: Keystone
          ticket-id: ${{ steps.pr_find_ticket.outputs.tickets }}
          status: Code Review
          status-order-list: New,In Progress,Code Review,Ready for QA,In QA,Ready for regression,Ready for Deploy,Done

      - name: Find ticket ID (commit)
        id: commit_find_ticket
        if: github.event_name == 'push'
        run: |
          branch_name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
          ticket=$(echo "${{ github.event.head_commit.message }}" | grep -o 'AB#[0-9]*' | awk -F 'AB#' '{print $2}')
          if [ -z "${ticket}" ]; then ticket=$(echo "${branch_name}" | grep -o '[0-9]*-' | awk -F '-' '{print $1}'); fi
          if [ -z "${ticket}" ]; then ticket=$(echo "${branch_name}" | grep -o '[0-9]*_' | awk -F '_' '{print $1}'); fi
          ticket_list=$(echo $(echo "${ticket}") | tr ' ' ',')
          echo "tickets=${ticket_list}" >> $GITHUB_OUTPUT

      - name: Update ticket to "In Progress"
        if: github.event_name == 'push'
        uses: TheKeyholdingCompany/action-update-azure-ticket@0.1.7
        with:
          pat: ${{ secrets.AZURE_PAT }}
          project: Keystone
          ticket-id: ${{ steps.commit_find_ticket.outputs.tickets }}
          status: In Progress
          status-order-list: New,In Progress,Code Review,Ready for QA,In QA,Ready for regression,Ready for Deploy,Done

About

Update an Azure Boards' ticket's status

Resources

Stars

Watchers

Forks

Packages

No packages published