Skip to main content

An Azure DevOps cli tool

Project description

AzDevOps CLI

License: MIT Pypi

I.Continuous integration

Branch Build Quality Gate
main Build Status
develop Build Status

II.Introduction

This project is used to update all selected repositories in one single script define by a config.yml file. The python script will automatically clone the repositories, modify it and propose a pull request on each repository inside Azure DevOps.

III. Getting Started

Create a dev environment for the project:

python3 -m venv .venv

Activate the dev environment for Linux:

source .venv/bin/activate

Activate the dev environment for Windows:

.\.venv\Scripts\activate

Install python packages for the project:

pip install -r requirements.txt

Save the packages used in the project into the requirements.txt:

pip freeze > requirements.txt

Export credentials as environment variable to be able to run the API calls:

export AZDEVOPS_ORGANIZATION_URL='<your_azure_devops_organisation_url>'
export AZDEVOPS_PAT_TOKEN='<your_pat>'

IV - Models generation

Transform the config.yml into json with this website for instance: https://jsonformatter.org/yaml-to-json

Then copy the generated json and paste it inside this other website: https://app.quicktype.io/

Choose default settings with the Python language.

V - Install locally for testing only

python3 -m pip install --editable .

VI - Run the CLI

azdevops repo-updater run --configuration-file <path-to>/config.yml -o <output-path>
azdevops release-manager changelog -p <your-project-path> -o <output-path>

VII - Unit tests

Run unit tests:

python3 -m unittest

or

coverage run -m unittest discover

Generate covrage locally

coverage report

Generate a changelog

azdevops release-manager changelog (-p <project-path>) (-o <output>)

Using Docker:

docker run -v $(Build.SourcesDirectory):/app \ 
           -t aichehda/azdevops-cli:latest \
                   release-manager changelog \
                   (-p <project-path>) \
                   (-o <output>) \

Generate a summary

azdevops release-manager summary -pn <project-name> (-r <regex>)

azdevops release-manager summary -pn 'MyProject' -r '^digital(.*)_apply'

Using Docker:

docker run -v $(Build.SourcesDirectory):/app \ 
           -e AZDEVOPS_ORGANIZATION_URL=$AZDEVOPS_ORGANIZATION_URL \
           -e AZDEVOPS_PAT_TOKEN=$AZDEVOPS_PAT_TOKEN \
           -t aichehda/azdevops-cli:latest \
                   release-manager summary \
                   -r '^digital(.*)_apply' \
                   -pn MyProject \
                   (-p <project-path>) \
                   (-o <output>) \

Generate manifest

azdevops release-manager manifest -an <application-name>

Using Docker on Azure DevOps:

docker run  -v $(Build.SourcesDirectory):/app \
                -e BUILD_DEFINITIONNAME=$BUILD_DEFINITIONNAME \
                -e BUILD_BUILDID=$BUILD_BUILDID \
                -e BUILD_BUILDNUMBER=$BUILD_BUILDNUMBER \
                -e BUILD_SOURCEBRANCHNAME=$BUILD_SOURCEBRANCHNAME \
                -e BUILD_REPOSITORY_NAME=$BUILD_REPOSITORY_NAME \
                -t aichehda/azdevops-cli:latest \
                        release-manager manifest \
                        -an my_app
                        (-p <project-path>) \
                        (-o <output>) \

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

azdevops_cli-0.3.2-py3-none-any.whl (35.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page