An Azure DevOps cli tool
Project description
AzDevOps CLI
I.Continuous integration
Branch | Build | Quality Gate |
---|---|---|
main | ||
develop |
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for azdevops_cli-0.3.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6be5a3067429c237850a9bf45f8a6ab37257dfe78b8b0aa2e946014cd5a6cc4 |
|
MD5 | 31608b2fcb1a292864acab9b2729a9f9 |
|
BLAKE2b-256 | 016b069ef1ff8ba330095238dccaaaa4b29ca5b8a371a3526b5a420e0f2e8aab |