Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/damienaicheh/azdevops-cli


https://github.com/damienaicheh/azdevops-cli

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# AzDevOps CLI

[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/gwendallg/rsql4net/blob/develop/LICENSE) [![Pypi](https://img.shields.io/pypi/v/PACKAGE?label=azdevops-cli)]()

## I.Continuous integration

| Branch | Build | Quality Gate |
| ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
| main | [![Build Status](https://dev.azure.com/damienaicheh0990/azdevops-cli/_apis/build/status/damienaicheh.azdevops-cli?branchName=main)](https://dev.azure.com/damienaicheh0990/azdevops-cli/_build/latest?definitionId=95&branchName=main) | |
| develop | [![Build Status](https://dev.azure.com/damienaicheh0990/azdevops-cli/_apis/build/status/damienaicheh.azdevops-cli?branchName=develop)](https://dev.azure.com/damienaicheh0990/azdevops-cli/_build/latest?definitionId=95&branchName=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:

```sh
python3 -m venv .venv
```

Activate the dev environment for Linux:

```sh
source .venv/bin/activate
```

Activate the dev environment for Windows:

```sh
.\.venv\Scripts\activate
```

Install python packages for the project:
```sh
pip install -r requirements.txt
```

Save the packages used in the project into the `requirements.txt`:
```sh
pip freeze > requirements.txt
```

Export credentials as environment variable to be able to run the API calls:
```
export AZDEVOPS_ORGANIZATION_URL=''
export AZDEVOPS_PAT_TOKEN=''
```

## 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 /config.yml -o
```

```
azdevops release-manager changelog -p -o
```

## 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 ) (-o )
```

Using Docker:

```shell
docker run -v $(Build.SourcesDirectory):/app \
-t aichehda/azdevops-cli:latest \
release-manager changelog \
(-p ) \
(-o ) \
```

### Generate a summary

```
azdevops release-manager summary -pn (-r )
```

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

Using Docker:

```shell
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 ) \
(-o ) \
```

### Generate manifest

```
azdevops release-manager manifest -an
```

Using Docker on Azure DevOps:

```shell
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 ) \
(-o ) \
```