Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cwshugg/plado
Azure DevOps Event Monitoring and Program Launching at the Command-Line
https://github.com/cwshugg/plado
Last synced: 9 days ago
JSON representation
Azure DevOps Event Monitoring and Program Launching at the Command-Line
- Host: GitHub
- URL: https://github.com/cwshugg/plado
- Owner: cwshugg
- Created: 2023-08-30T14:32:44.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-09-15T21:34:08.000Z (over 1 year ago)
- Last Synced: 2024-10-18T06:15:32.750Z (3 months ago)
- Language: Python
- Homepage:
- Size: 169 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PLADO - Program Launcher for Azure DevOps
This is a command-line utility I created to serve as an event monitoring daemon
for Azure DevOps. It accepts a single configuration file and monitors the
specified events. When an event is detected, it forks processes to run the jobs
you specify in the config file.I created this as a way to automate certain DevOps-related processes at work.
(I created this during the 2023 Microsoft Hackathon.)To communicate with Azre DevOps, this uses the official Python API found
[here](https://github.com/microsoft/azure-devops-python-api).## Getting Started
To get started, clone the repository and install all requirements in the
requirements file:```bash
git clone https://github.com/cwshugg/plado
cd ./plado
python3 -m pip install -r ./requirements.txt
```Then, to run, simply invoke the `main.py` Python script. You'll need to specify
configuration file via `-c`/`--config` to begin using the script.```bash
python3 src/main.py -c ./my_config.json
```You can also use `-h`/`--help` to see all available command-line arguments:
```bash
python3 src/main.py -h
```Once you've set up your configuration file to track events, invoke the program
with the `-m`/`--monitor` option to enable event-monitoring mode:```bash
python3 src/main.py -c ./my_config.json -m
```## Documentation
* TODO
## To Do List
* Documentation
* Write markdown documentation
* Write Linux man page
* Example config file(s)
* Implement more events
* `Event_WI`
* `Event_WI_Create`
* `Event_WI_Assigned`
* `Event_WI_State_Change`
* `Event_WI_Comment_Add`
* `Event_WI_Comment_Edit`
* ...
* `Event_Pipeline`
* `Event_Pipeline_Run_Start`
* `Event_Pipeline_Run_End`
* ...* Update `--show-config` to find *all* objects that extend the base `Config`
class and print out their options. (Add a `description` field to the `Config`
class, to be printed for each different Config subclass to help describe
where it's used)
* Add JSON versions of all `--show` arguments (i.e. `--show-pullreqs-json`),
which performs the same operations, but dumps out the raw JSON from ADO