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
File details
Details for the file azdevops_cli-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: azdevops_cli-0.3.2-py3-none-any.whl
- Upload date:
- Size: 35.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6be5a3067429c237850a9bf45f8a6ab37257dfe78b8b0aa2e946014cd5a6cc4 |
|
MD5 | 31608b2fcb1a292864acab9b2729a9f9 |
|
BLAKE2b-256 | 016b069ef1ff8ba330095238dccaaaa4b29ca5b8a371a3526b5a420e0f2e8aab |