new: Programming language recommendations; First: Azure DevOps Pipeline.
This commit is contained in:
parent
786deb0e7d
commit
cf6223b80a
1 changed files with 89 additions and 0 deletions
89
programming-language-recommendations.md
Normal file
89
programming-language-recommendations.md
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
# Programming language recommendations
|
||||||
|
|
||||||
|
## Azure DevOps Pipeline
|
||||||
|
|
||||||
|
The following programming languages are included in the comparison:
|
||||||
|
|
||||||
|
- [C# (.NET)](https://learn.microsoft.com/dotnet/csharp/)
|
||||||
|
- Shell Scripting [Bash](https://www.gnu.org/software/bash/) / [Zsh](https://www.zsh.org)
|
||||||
|
- [Python](https://www.python.org)
|
||||||
|
- [JavaScript](https://ecma-international.org/publications-and-standards/standards/ecma-262/) / [TypeScript](https://www.typescriptlang.org)
|
||||||
|
- [Ruby](https://www.ruby-lang.org)
|
||||||
|
- [Go](https://go.dev)
|
||||||
|
- [PowerShell](https://learn.microsoft.com/powershell/)
|
||||||
|
- [Java](https://www.java.com)
|
||||||
|
|
||||||
|
### Comparsion of the most important points
|
||||||
|
|
||||||
|
| Point | C# | Shell | Python | JS | Ruby | Go | PS | Java |
|
||||||
|
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|
||||||
|
| Data processing (JSON) | Built-in | Built-in | Built-in | Built-in | Built-in | Built-in | Built-in | Libraries |
|
||||||
|
| Data presentation (PDF) | Libraries | Not natively | Libraries | Libraries | Libraries | Libraries | Libraries | Libraries |
|
||||||
|
| Other data processing | Libraries | Not natively | Libraries | Libraries | Libraries | Libraries | Libraries | Libraries |
|
||||||
|
| Availability of Extensions | Many | Few | Many | Many | Many | Few | Many | Many |
|
||||||
|
| Simplicity in YAML | Moderate | High | Moderate | Moderate | Moderate | High | High | Moderate |
|
||||||
|
| Must be Compiled | Yes | No | No | No | No | Yes | No | Yes |
|
||||||
|
| Cross-Platform | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||||
|
| Simple Installation of Dependencies | Moderate | High | High | High | Moderate | High | High | Moderate |
|
||||||
|
|
||||||
|
### Recommended Language: [Python](https://www.python.org)
|
||||||
|
|
||||||
|
Python wins in all categories. The most benefits compared to the other languages:
|
||||||
|
|
||||||
|
- **Data Handling**: pull data, parse it, and then format it.
|
||||||
|
- **Document Generation**: The libraries for data presentation are fast and simple.
|
||||||
|
- **Dependencies**: are easy handled with requirments.txt.
|
||||||
|
- **Virtual Environments**: allows different Python versions to be used in the same pipeline.
|
||||||
|
- **REST APIs**: can be simple used with the Pythons requests library.
|
||||||
|
|
||||||
|
### Example Workflows for Python
|
||||||
|
|
||||||
|
#### Install Dependencies
|
||||||
|
|
||||||
|
Use a pipeline task to install Python (if not already on the agent) and the required libraries.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- task: UsePythonVersion@0
|
||||||
|
inputs:
|
||||||
|
versionSpec: '3.x'
|
||||||
|
- script: |
|
||||||
|
pip install requests python-docx reportlab jinja2
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Fetch Work Items
|
||||||
|
|
||||||
|
Write a Python script to call the Azure DevOps REST API to retrieve Work Items.
|
||||||
|
|
||||||
|
```python
|
||||||
|
import requests
|
||||||
|
|
||||||
|
# Example: Get Work Items from Azure DevOps
|
||||||
|
devops_organization_url = "https://dev.azure.com/YOUR_ORG"
|
||||||
|
project = "YOUR_PROJECT"
|
||||||
|
api_version = "6.0"
|
||||||
|
query_id = "YOUR_QUERY_ID"
|
||||||
|
|
||||||
|
response = requests.get(
|
||||||
|
f"{devops_organization_url}/{project}/_apis/wit/wiql/{query_id}?api-version={api_version}",
|
||||||
|
auth=('PAT_USERNAME', 'PAT_TOKEN') # or use other Auth methods
|
||||||
|
)
|
||||||
|
work_items_data = response.json()
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Generate Compliance Documents
|
||||||
|
|
||||||
|
Convert the retrieved data into the document format of your choice.
|
||||||
|
|
||||||
|
```python
|
||||||
|
from docx import Document
|
||||||
|
from docx.shared import Inches
|
||||||
|
|
||||||
|
document = Document()
|
||||||
|
document.add_heading('Compliance Report', level=1)
|
||||||
|
|
||||||
|
for item in work_items_data["workItems"]:
|
||||||
|
document.add_heading(f'Work Item ID: {item["id"]}', level=2)
|
||||||
|
# Additional data insertion here...
|
||||||
|
|
||||||
|
document.save('ComplianceReport.docx')
|
||||||
|
```
|
||||||
Loading…
Add table
Add a link
Reference in a new issue