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>) \
Release files for azdevops-cli 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| azdevops_cli-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / azdevops_cli-0.3.2-py3-none-any.whl
| Download URL | azdevops_cli-0.3.2-py3-none-any.whl |
|---|---|
| Size | 35.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a6be5a3067429c237850a9bf45f8a6ab37257dfe78b8b0aa2e946014cd5a6cc4
|
|
BLAKE2b-256 checksum How to use checksums |
016b069ef1ff8ba330095238dccaaaa4b29ca5b8a371a3526b5a420e0f2e8aab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.8.16
|