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 details)

Uploaded Python 3

File details

Details for the file azdevops_cli-0.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for azdevops_cli-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a6be5a3067429c237850a9bf45f8a6ab37257dfe78b8b0aa2e946014cd5a6cc4
MD5 31608b2fcb1a292864acab9b2729a9f9
BLAKE2b-256 016b069ef1ff8ba330095238dccaaaa4b29ca5b8a371a3526b5a420e0f2e8aab

See more details on using hashes here.

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