Draft a CHANGELOG from Gitlab releases
We are moving our release history from Git[lab|hub] releases to CHANGELOG.md format.
In order to draft a history from Gitlab releases, we can consume gitlab's api and print to a CHANGELOG file picking only the info we are interested in.
import requests
import json
# Get this id form the "details" or "project overview" page of the web ui.
PROJECT_ID="123456"
HEADER = """# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
"""
RELEASE_T="""## [{}] - {}
### Changed
{}
"""
r = requests.get("https://gitlab.com/api/v4/projects/" + PROJECT_ID + "/releases")
j = json.loads(r.text)
f = open("CHANGELOG.md", "w")
f.write(HEADER)
for release in j:
f.write(RELEASE_T.format(release['name'], release['released_at'][:10], release['description']))
f.flush()
f.close()
As you may see, we just dump all the description into "Changed" section. For a proper changelog, you need to manually distribute changes to Added, Changed or Removed. In a dash-style list.
In vim, you may want to adapt the description of each release
They appear as @M
in vim
:%s/\r//g
Convert from !72
to [!72](https://gitlab.com/coopdevs/PROJECT_NAME/merge_requests/72)
. Please change PROJECT_NAME
.
:%s;!\([0-9]\+\);[!\1](https://gitlab.com/coopdevs/PROJECT_NAME/merge_requests/\1);g
In case you used asterysk style, you may should conform to the keepachangelog dash-style. Replace with a dash all asterisks that begin a line and are followed by a space:
:%s/^* /- /
Katuma
- Planificació
- Retrospectives
- Gestió del temps: Toggl
- Editar contingut de la guia
- Integració de Katuma amb Mailchimp
- Comunicació projecte PLUS
- Katuma en una diapositiva
- Onboarding a Katuma
- Guàrdies durant vacances
- Canals de comunicació interna i externa
- Vies de comunicació amb OFN
- Procés de formalització de sòcies
- Suport a usuàries
Gestió Coopdevs
- Procés de facturació
- Emetre una factura de venda
- Registrar factures de proveïdors
- Introduir una despesa
- Pagaments SEPA
- Contractes
- Crear un projecte a Toggl
- Gestió del temps: Toggl
- Processos de treball
- Solicitar vacances i informar de dies de baixa
Recursos Humans
- Procés de contractació
- Fer un contracte nou per una empleada
- Procés d'onboarding
- Procés d'onboarding: Eines
- Permís de maternitat i paternitat
PostgreSQL
- Investigar queries lentas
- Postgresql Tuning Tools
- Postgres configuration for humans
- Secure TCP IP Connections with SSL
- How to clean dead rows
- Useful queries
- PostgreSQL Cheat Sheet
Ansible
- Publish a new module in Ansible Galaxy
- Useful Ansible cli options
- Uso de Ansible en Coopdevs
- Ansible vault
Odoo
Funcional - català
- Passos configurar nova empresa a Odoo
- Configurar el compte SMTP per Odoo amb Mandrill i Cdmon
- Configurar correo saliente y entrante catchall en Odoo
- Traduccions de plantilles de correu a Odoo
- Com traduir un mòdul d'Odoo
Sysadmin - english
- How to install modules for Odoo
- Add backups to Odoo instance
- How to restore an Odoo backup
- How to extract the list of Odoo modules from a running instance
- How to recover Odoo users permissions
- How to import postal codes for a country
- Add new DB to a multi db odoo instance
- How to create a new Odoo instance
- Packaging Odoo addons
- How to add easy my coop to an Odoo instance
- Funcionamiento de colas y jobs en Odoo
- How to upgrade python version on an Odoo Server
Sysadmin
- Create/Delete a server
- How to manage fail2ban
- Virtualization with libvirt, qemu and kvm
- Loki, Promtail and Grafana Cloud
- Grafana cloud credentials
- Grafana Cloud Glossary
- Adding alerts in Grafana
- Alerting from Grafana on events of log entries managed by Loki
- Add monitoring to a new host
- Monitoring alarms
- Useful commands
- Recuperar una máquina Hetzner sin acceso por SSH
- On duty alerting
Discourse
Misc