Skip to content

A tool to help you generate weekly reports from your Azure DevOps Kanban board

License

Notifications You must be signed in to change notification settings

digitaldias/KanbanReporter

Repository files navigation

KanbanReporter Solution Overview

KanbanReporter is an Azure Function originally designed to run every Sunday at 6AM to generate a report over delivered user stories, grouped by Sprints. The report is delivered in the form of a a markdown file.

The project is written in C#, it follows the DDD style of architecture and uses XUnit as it's test framework

Purpose

The purpose of the tool is to provide the reader with an overview of what the system as a whole is capable of after each sprint, in addition to inform the reader about the Lead Time on each user story as well as the total number of user stories delivered in each sprint.

Overall strategy

The program works by connecting to and utilizing the Azure Devops REST Api (version 5.0). It relies on a pre-written query that will list all closed user stories, as well as a source control repository that it utilizes to commit the latest report. In short:

  • Executes the "get all closed user stories" query to retrieve a detailed list of all closed work items in the project
  • Generates a markdown report in-memory which contains:
    • User stories grouped by Sprints
    • The number of items closed per sprint, as a sub-heading
    • The Lead Time for each user story
  • It commits the markdown file to source control under it's own branch
  • If no pull request exist, one will be created for the commit to be pulled into master.

Maintenance

In order to ensure KanbanReporter is healthy, ensure the following:

  • Ensure the Personal Access Token is valid and not expired. These can only be set to a full year
  • Monitor the Azure Function to verify that its alive. Verify that it actually ran every sunday at 6AM
  • The pull request needs to be manually approved by someone other than the owner of the Personal Access Token

Developer Notes

To maintain this project, the developer needs to create a local.settings.json file to give the program the necessary secrets during development runs.
Once deployed onto Azure, the settings will exist as part of the Azure Function settings, and this file will not be required or used.

DO NOT ADD local.settings.json TO SOURCE CONTROL
The file is already listed in the .gitignore file, and should only exist on the developer's computer

Sample local.settings.json file contents:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage "  : "UseDevelopmentStorage=true",
    "AdoOrgName"            : "myOrgName",
    "AdoProjectName"        : "My VSO Project",
    "AdoQueryGuid"          : "a8ef9b60-97db-4018-b6f7-688b60646c20",
    "AdoPersonalAccessToken": "------------------------------------",
    "AdoRepositoryName"     : "RepositoryName",
    "AdoBranchName"         : "refs/heads/KanbanReporter/Reports"
    "MarkdownFilePath"      : "/README.md"
  }
}

Settings explained

Setting Purpose
IsEncrypted This is a construct of Azure Functions and needs to be there for the program to work
Values.AzureWebJobsStorage Connection string to the Azure Storage that the Azure Function uses
Values.AdoOrgName The name of the Organization, used to construct the REST url
Values.AdoProjectName The name of the project within the organization for which the report will be generated
Values.AdoQueryGuid The id (GUID) of the query that lists closed User Stories
Valies.AdoPersonalAccessToken A Personal Access Token with rights to read and execute queries, commit to source control, and create pull requests
Values.AdoRepositoryName Name of the repository that will contain the pushed report
Values.AdoBranchName The branch to which KanbanReporter will submit code and create pull requests for
Values.MarkdownFilePath Complete path to the report filename within the relative source control tree

NOTES

  • The value of the Personal Access Token has been anonymized in this document

About

A tool to help you generate weekly reports from your Azure DevOps Kanban board

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages