Merge branch 'MON-490_changelog_generator' into 'master'
Resolve MON-490 "Changelog generator" Closes MON-490 See merge request claranet/pt-monitoring/projects/datadog/terraform/monitors!91
This commit is contained in:
commit
20b61ae694
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
||||
.terraform
|
||||
main.tf
|
||||
terraform.tfvars
|
||||
/.env.sh
|
||||
|
||||
322
CHANGELOG.md
Normal file
322
CHANGELOG.md
Normal file
@ -0,0 +1,322 @@
|
||||
|
||||
# v3.0.0 (July 05, 2019)
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-476](https://claranet-morea.atlassian.net/browse/MON-476)] - check and update sets with more than 1 notify no data
|
||||
* [[MON-479](https://claranet-morea.atlassian.net/browse/MON-479)] - Upgrade datadog terraform provider to v2
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-460](https://claranet-morea.atlassian.net/browse/MON-460)] - Fix filter tags usage on keyvault and cosmos monitors
|
||||
* [[MON-461](https://claranet-morea.atlassian.net/browse/MON-461)] - Repair CI since it uses last 0.12 version image
|
||||
* [[MON-477](https://claranet-morea.atlassian.net/browse/MON-477)] - Fix wrong variable in query for kubernetes node inodes monitor
|
||||
* [[MON-478](https://claranet-morea.atlassian.net/browse/MON-478)] - Fix diff between CI and local env for sort command
|
||||
|
||||
## Epic
|
||||
|
||||
* [[MON-459](https://claranet-morea.atlassian.net/browse/MON-459)] - Upgrade to terraform 0.12 (HCL 2.0)
|
||||
|
||||
# v2.9.0 (May 09, 2019)
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-441](https://claranet-morea.atlassian.net/browse/MON-441)] - support extra tags for custom filtering
|
||||
* [[MON-446](https://claranet-morea.atlassian.net/browse/MON-446)] - Monitor Azure SQL Elastic Pool
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-182](https://claranet-morea.atlassian.net/browse/MON-182)] - Monitors structure and config examples / stack template
|
||||
* [[MON-236](https://claranet-morea.atlassian.net/browse/MON-236)] - Append optional custom field to name of monitor
|
||||
* [[MON-453](https://claranet-morea.atlassian.net/browse/MON-453)] - Monitors for kubernetes kubelet volume stats space and inodes
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-442](https://claranet-morea.atlassian.net/browse/MON-442)] - Do not notify nodata on node unschedulable monitor
|
||||
* [[MON-444](https://claranet-morea.atlassian.net/browse/MON-444)] - Kubernetes status_report count waiting should not trigger on containercreating
|
||||
* [[MON-451](https://claranet-morea.atlassian.net/browse/MON-451)] - Nodata alerts on Azure App Services downscale
|
||||
|
||||
## Epic
|
||||
|
||||
* [[MON-449](https://claranet-morea.atlassian.net/browse/MON-449)] - Datadog global CI
|
||||
|
||||
# v2.8.0 (April 23, 2019)
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-320](https://claranet-morea.atlassian.net/browse/MON-320)] - Prefer greater operator logic
|
||||
* [[MON-326](https://claranet-morea.atlassian.net/browse/MON-326)] - use multi line query and EOQ everywhere
|
||||
* [[MON-327](https://claranet-morea.atlassian.net/browse/MON-327)] - Fix warning name for load balancer
|
||||
* [[MON-328](https://claranet-morea.atlassian.net/browse/MON-328)] - Improve mysql Innodb pool monitors
|
||||
* [[MON-330](https://claranet-morea.atlassian.net/browse/MON-330)] - Fix grouping and counter on azure monitors
|
||||
* [[MON-331](https://claranet-morea.atlassian.net/browse/MON-331)] - Improve mysql throughput monitor
|
||||
* [[MON-429](https://claranet-morea.atlassian.net/browse/MON-429)] - Update reference from cloudnative to pt-mon
|
||||
* [[MON-437](https://claranet-morea.atlassian.net/browse/MON-437)] - Update CI to use new gitlab runner
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-114](https://claranet-morea.atlassian.net/browse/MON-114)] - Monitors for Kubernetes
|
||||
* [[MON-390](https://claranet-morea.atlassian.net/browse/MON-390)] - Monitors for Azure Functions
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-360](https://claranet-morea.atlassian.net/browse/MON-360)] - Feature enable/disable monitors creation does not work
|
||||
* [[MON-415](https://claranet-morea.atlassian.net/browse/MON-415)] - Remove Azure DBforMySQL Active connection query
|
||||
* [[MON-430](https://claranet-morea.atlassian.net/browse/MON-430)] - Use "instance" dimension on Azure App Service monitors metrics
|
||||
|
||||
# v2.7.0 (April 05, 2019)
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-385](https://claranet-morea.atlassian.net/browse/MON-385)] - Add Azure EventGrid Datadog monitors
|
||||
* [[MON-417](https://claranet-morea.atlassian.net/browse/MON-417)] - Monitors for Azure Virtual Machine
|
||||
* [[MON-418](https://claranet-morea.atlassian.net/browse/MON-418)] - Monitors for Azure Load Balancer
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-391](https://claranet-morea.atlassian.net/browse/MON-391)] - Monitors for Azure Search
|
||||
* [[MON-424](https://claranet-morea.atlassian.net/browse/MON-424)] - Monitors for GCE instance
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-405](https://claranet-morea.atlassian.net/browse/MON-405)] - Fix Azure CosmosDb monitors due to metrics changes
|
||||
* [[MON-425](https://claranet-morea.atlassian.net/browse/MON-425)] - Fix App Services response time monitor
|
||||
|
||||
# v2.6.0 (March 08, 2019)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-402](https://claranet-morea.atlassian.net/browse/MON-402)] - Fix Azure DBforMySQL Active connection monitor
|
||||
* [[MON-403](https://claranet-morea.atlassian.net/browse/MON-403)] - Fix apache perpetual diff on apache connect monitor
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-392](https://claranet-morea.atlassian.net/browse/MON-392)] - Update terraform-docs version in CI for DD monitors
|
||||
* [[MON-397](https://claranet-morea.atlassian.net/browse/MON-397)] - Exclude secretlist activity from Azure Key Vault latency monitor
|
||||
* [[MON-404](https://claranet-morea.atlassian.net/browse/MON-404)] - Make mysql Innodb buffer pool more tolerant
|
||||
|
||||
# v2.5.1 (January 24, 2019)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-387](https://claranet-morea.atlassian.net/browse/MON-387)] - Azure IotHub monitors triggers nodata alerts since 2.5.0
|
||||
|
||||
# v2.5.0 (January 23, 2019)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-335](https://claranet-morea.atlassian.net/browse/MON-335)] - Fix successful monitors false alarms
|
||||
* [[MON-383](https://claranet-morea.atlassian.net/browse/MON-383)] - Remove Azure Monitors using compute_consumption_percent
|
||||
* [[MON-386](https://claranet-morea.atlassian.net/browse/MON-386)] - Caas Nginx Ingress monitor fix and update for VTS
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-237](https://claranet-morea.atlassian.net/browse/MON-237)] - Add new Azure Monitors
|
||||
* [[MON-295](https://claranet-morea.atlassian.net/browse/MON-295)] - Remove Azure global feature
|
||||
* [[MON-317](https://claranet-morea.atlassian.net/browse/MON-317)] - Prefix all cloudprovider filter tag with
|
||||
* [[MON-332](https://claranet-morea.atlassian.net/browse/MON-332)] - Add filter_tags on IOTHub monitors
|
||||
* [[MON-344](https://claranet-morea.atlassian.net/browse/MON-344)] - add default to hit ratio monitors
|
||||
* [[MON-377](https://claranet-morea.atlassian.net/browse/MON-377)] - Monitor Azure SQL Server status with DD
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-336](https://claranet-morea.atlassian.net/browse/MON-336)] - Convert bitbucket pipeline to gitlab ci
|
||||
|
||||
# v2.4.0 (October 03, 2018)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-301](https://claranet-morea.atlassian.net/browse/MON-301)] - Manage exclude on the module for filters
|
||||
* [[MON-323](https://claranet-morea.atlassian.net/browse/MON-323)] - fix pipeline using terraform-docs version 0.4.0
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-309](https://claranet-morea.atlassian.net/browse/MON-309)] - Improve monitors using as_count() and division
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-246](https://claranet-morea.atlassian.net/browse/MON-246)] - Monitors for Azure MySQL
|
||||
* [[MON-310](https://claranet-morea.atlassian.net/browse/MON-310)] - Monitors for Azure Postgresql
|
||||
* [[MON-316](https://claranet-morea.atlassian.net/browse/MON-316)] - Monitors for Azure server farms
|
||||
|
||||
# v2.3.1 (September 27, 2018)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-313](https://claranet-morea.atlassian.net/browse/MON-313)] - elasticache memcached hit ratio miss multiplication by 100
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-306](https://claranet-morea.atlassian.net/browse/MON-306)] - Use system.load.norm.5 instead of system.load.5
|
||||
* [[MON-307](https://claranet-morea.atlassian.net/browse/MON-307)] - GCP CloudSQL failover monitor increase timeframe
|
||||
* [[MON-308](https://claranet-morea.atlassian.net/browse/MON-308)] - Improve load balancer healthly host monitor
|
||||
* [[MON-311](https://claranet-morea.atlassian.net/browse/MON-311)] - Generate modules.tf with dynamic path
|
||||
* [[MON-312](https://claranet-morea.atlassian.net/browse/MON-312)] - Update readme with terraform-docs 0.4.0
|
||||
* [[MON-315](https://claranet-morea.atlassian.net/browse/MON-315)] - Doc monitor / system / generic: free memory message
|
||||
|
||||
# v2.3.0 (September 20, 2018)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-273](https://claranet-morea.atlassian.net/browse/MON-273)] - service check query syntax does not work anymore
|
||||
* [[MON-304](https://claranet-morea.atlassian.net/browse/MON-304)] - Add default function to all latency based aws monitors
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-159](https://claranet-morea.atlassian.net/browse/MON-159)] - Split delay variable in two separate variables (evaluation and new host)
|
||||
* [[MON-162](https://claranet-morea.atlassian.net/browse/MON-162)] - Add possibilty to disable / enable monitors
|
||||
* [[MON-199](https://claranet-morea.atlassian.net/browse/MON-199)] - Advanced monitors for Mongodb
|
||||
* [[MON-275](https://claranet-morea.atlassian.net/browse/MON-275)] - manage diff on monitor type from terraform
|
||||
* [[MON-287](https://claranet-morea.atlassian.net/browse/MON-287)] - Update service check monitors and doc
|
||||
* [[MON-288](https://claranet-morea.atlassian.net/browse/MON-288)] - Update all monitors with new tagging convention
|
||||
* [[MON-293](https://claranet-morea.atlassian.net/browse/MON-293)] - Optimize ci pipeline
|
||||
* [[MON-294](https://claranet-morea.atlassian.net/browse/MON-294)] - handle specific example for readme auto generation
|
||||
* [[MON-300](https://claranet-morea.atlassian.net/browse/MON-300)] - Improve and sandardize thresholds on GCP LB
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-32](https://claranet-morea.atlassian.net/browse/MON-32)] - Monitors for AWS Elasticache
|
||||
* [[MON-92](https://claranet-morea.atlassian.net/browse/MON-92)] - Monitors for Mongodb
|
||||
* [[MON-105](https://claranet-morea.atlassian.net/browse/MON-105)] - Monitors for PostgreSQL
|
||||
* [[MON-122](https://claranet-morea.atlassian.net/browse/MON-122)] - Replication lag monitor for RDS
|
||||
* [[MON-142](https://claranet-morea.atlassian.net/browse/MON-142)] - Monitors for MySQL
|
||||
* [[MON-224](https://claranet-morea.atlassian.net/browse/MON-224)] - Monitors for GCP Cloud SQL
|
||||
* [[MON-226](https://claranet-morea.atlassian.net/browse/MON-226)] - Monitors for GCP PubSub
|
||||
* [[MON-227](https://claranet-morea.atlassian.net/browse/MON-227)] - Monitors for GCP LB
|
||||
* [[MON-228](https://claranet-morea.atlassian.net/browse/MON-228)] - Monitors for ElasticSearch
|
||||
* [[MON-230](https://claranet-morea.atlassian.net/browse/MON-230)] - Monitors for GCP BigQuery
|
||||
* [[MON-247](https://claranet-morea.atlassian.net/browse/MON-247)] - Monitors for Ark backups
|
||||
* [[MON-248](https://claranet-morea.atlassian.net/browse/MON-248)] - Monitors for Nginx Ingress Controller
|
||||
* [[MON-271](https://claranet-morea.atlassian.net/browse/MON-271)] - Monitors for Redis
|
||||
* [[MON-281](https://claranet-morea.atlassian.net/browse/MON-281)] - Monitor for disk forecast (system-generic)
|
||||
* [[MON-284](https://claranet-morea.atlassian.net/browse/MON-284)] - Add extra tags management to monitors
|
||||
* [[MON-286](https://claranet-morea.atlassian.net/browse/MON-286)] - Host Unreachable monitor on system generic
|
||||
* [[MON-289](https://claranet-morea.atlassian.net/browse/MON-289)] - Monitors for Nginx
|
||||
* [[MON-290](https://claranet-morea.atlassian.net/browse/MON-290)] - Monitors for Php-fpm
|
||||
|
||||
# v2.2.1 (August 08, 2018)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-272](https://claranet-morea.atlassian.net/browse/MON-272)] - php fpm has changed from port to ping_url for group by
|
||||
* [[MON-276](https://claranet-morea.atlassian.net/browse/MON-276)] - Fix ALB / ELB space aggregator
|
||||
|
||||
# v2.2.0 (July 23, 2018)
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-259](https://claranet-morea.atlassian.net/browse/MON-259)] - Improve readme generator
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-233](https://claranet-morea.atlassian.net/browse/MON-233)] - Update main readme automatically
|
||||
* [[MON-234](https://claranet-morea.atlassian.net/browse/MON-234)] - Automatically generate output for each monitor
|
||||
|
||||
# v2.1.1 (July 10, 2018)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-239](https://claranet-morea.atlassian.net/browse/MON-239)] - Fix alb no healthy instances thresholds
|
||||
|
||||
# v2.1.0 (June 29, 2018)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-168](https://claranet-morea.atlassian.net/browse/MON-168)] - Apache can connect fails on query error
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-160](https://claranet-morea.atlassian.net/browse/MON-160)] - Generalize the timeframe best practice
|
||||
* [[MON-170](https://claranet-morea.atlassian.net/browse/MON-170)] - Increase timeframe of ALB no healthy instances monitor
|
||||
* [[MON-179](https://claranet-morea.atlassian.net/browse/MON-179)] - No data events on Free disk inodes, Free disk space monitors
|
||||
* [[MON-184](https://claranet-morea.atlassian.net/browse/MON-184)] - no_data_timeframe should never be defined
|
||||
* [[MON-185](https://claranet-morea.atlassian.net/browse/MON-185)] - Monitors for Azure ServiceBus
|
||||
* [[MON-197](https://claranet-morea.atlassian.net/browse/MON-197)] - Ignore cache and buffer on memory monitor
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-191](https://claranet-morea.atlassian.net/browse/MON-191)] - variabilize aggregator and timeframe when needed
|
||||
* [[MON-231](https://claranet-morea.atlassian.net/browse/MON-231)] - Update readme for every monitors sets easily
|
||||
|
||||
## Documentation
|
||||
|
||||
* [[MON-181](https://claranet-morea.atlassian.net/browse/MON-181)] - update aws vpn readme to remove vpn_tunnel_address
|
||||
|
||||
# v2.0.1 (April 02, 2018)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-166](https://claranet-morea.atlassian.net/browse/MON-166)] - Fix apigateway latency notify on no data
|
||||
|
||||
# v2.0.0 (March 25, 2018)
|
||||
|
||||
## Bug
|
||||
|
||||
* [[MON-81](https://claranet-morea.atlassian.net/browse/MON-81)] - Fix basic monitors
|
||||
* [[MON-88](https://claranet-morea.atlassian.net/browse/MON-88)] - Treshold too high on aws_elb_latency
|
||||
* [[MON-108](https://claranet-morea.atlassian.net/browse/MON-108)] - typo monitor name apache middleware
|
||||
* [[MON-113](https://claranet-morea.atlassian.net/browse/MON-113)] - fix AWS ElasticSearch status monitor (aws.es.cluster_statusyellow)
|
||||
* [[MON-121](https://claranet-morea.atlassian.net/browse/MON-121)] - Fix ELB_backend_latency error
|
||||
* [[MON-127](https://claranet-morea.atlassian.net/browse/MON-127)] - Fix system tag in agent.yml
|
||||
* [[MON-128](https://claranet-morea.atlassian.net/browse/MON-128)] - [Datadog] Monitors for ELB issue with group by loadbalancer
|
||||
* [[MON-139](https://claranet-morea.atlassian.net/browse/MON-139)] - no data support for monitor name templating
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-66](https://claranet-morea.atlassian.net/browse/MON-66)] - Refactor monitors repo with directories
|
||||
* [[MON-96](https://claranet-morea.atlassian.net/browse/MON-96)] - Update old monitors with new best practices
|
||||
* [[MON-99](https://claranet-morea.atlassian.net/browse/MON-99)] - Azure App Service monitor : count 2xx & 3xx http status codes as successful
|
||||
* [[MON-102](https://claranet-morea.atlassian.net/browse/MON-102)] - Auto-recovery for no-data tolerant monitors
|
||||
* [[MON-124](https://claranet-morea.atlassian.net/browse/MON-124)] - Add message input per monitor
|
||||
* [[MON-134](https://claranet-morea.atlassian.net/browse/MON-134)] - RAM alerts are now in non-business hours alerting by default.
|
||||
* [[MON-135](https://claranet-morea.atlassian.net/browse/MON-135)] - Use default on Event Hub query and update the used metrics
|
||||
* [[MON-136](https://claranet-morea.atlassian.net/browse/MON-136)] - Use rates for Azure IoT Hub monitors
|
||||
* [[MON-137](https://claranet-morea.atlassian.net/browse/MON-137)] - Use min as aggregate for Azure app services response time monitor
|
||||
* [[MON-140](https://claranet-morea.atlassian.net/browse/MON-140)] - Add a default function for api gateway, elb and alb monitors
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-48](https://claranet-morea.atlassian.net/browse/MON-48)] - Monitors for API Gateway
|
||||
* [[MON-49](https://claranet-morea.atlassian.net/browse/MON-49)] - improve basic monitors
|
||||
* [[MON-82](https://claranet-morea.atlassian.net/browse/MON-82)] - Monitor message should be composed from variables
|
||||
* [[MON-91](https://claranet-morea.atlassian.net/browse/MON-91)] - Monitors for AWS VPN
|
||||
* [[MON-107](https://claranet-morea.atlassian.net/browse/MON-107)] - Monitors for AWS Elasticsearch Service
|
||||
* [[MON-110](https://claranet-morea.atlassian.net/browse/MON-110)] - Monitors for AWS Kinesis Firehose streams
|
||||
* [[MON-112](https://claranet-morea.atlassian.net/browse/MON-112)] - Monitors for AWS ALB
|
||||
|
||||
## Sub-task
|
||||
|
||||
* [[MON-30](https://claranet-morea.atlassian.net/browse/MON-30)] - Monitors for AWS RDS
|
||||
* [[MON-34](https://claranet-morea.atlassian.net/browse/MON-34)] - Monitors for AWS ELB
|
||||
* [[MON-74](https://claranet-morea.atlassian.net/browse/MON-74)] - Azure App Services monitors
|
||||
* [[MON-75](https://claranet-morea.atlassian.net/browse/MON-75)] - Azure SQL monitors
|
||||
* [[MON-76](https://claranet-morea.atlassian.net/browse/MON-76)] - Azure Redis monitors
|
||||
* [[MON-77](https://claranet-morea.atlassian.net/browse/MON-77)] - Azure Event Hub monitors
|
||||
* [[MON-78](https://claranet-morea.atlassian.net/browse/MON-78)] - Azure Stream Analytics monitors
|
||||
* [[MON-79](https://claranet-morea.atlassian.net/browse/MON-79)] - Azure Storage monitors
|
||||
* [[MON-80](https://claranet-morea.atlassian.net/browse/MON-80)] - Azure IOT Hub monitors
|
||||
* [[MON-90](https://claranet-morea.atlassian.net/browse/MON-90)] - API Management monitors
|
||||
|
||||
## Story
|
||||
|
||||
* [[MON-73](https://claranet-morea.atlassian.net/browse/MON-73)] - Azure managed services monitors
|
||||
|
||||
## Documentation
|
||||
|
||||
* [[MON-97](https://claranet-morea.atlassian.net/browse/MON-97)] - Update readme on terraform monitors repo
|
||||
|
||||
# v1.0.0 (December 24, 2017)
|
||||
|
||||
## Improvement
|
||||
|
||||
* [[MON-93](https://claranet-morea.atlassian.net/browse/MON-93)] - AWS ELB custom tags
|
||||
* [[MON-131](https://claranet-morea.atlassian.net/browse/MON-131)] - Replace comparator variable by a hardcode comparator in monitor name
|
||||
* [[MON-144](https://claranet-morea.atlassian.net/browse/MON-144)] - Default nodata message must be 24x7
|
||||
|
||||
## New Feature
|
||||
|
||||
* [[MON-43](https://claranet-morea.atlassian.net/browse/MON-43)] - Agent installation
|
||||
|
||||
## Story
|
||||
|
||||
* [[MON-27](https://claranet-morea.atlassian.net/browse/MON-27)] - Monitors for main middlewares
|
||||
122
scripts/changelog.sh
Executable file
122
scripts/changelog.sh
Executable file
@ -0,0 +1,122 @@
|
||||
#/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
source "$(dirname $0)/utils.sh"
|
||||
goto_root
|
||||
|
||||
## Check parameters and environment variables
|
||||
# PARAMETER: The next version to release (i.e. v3.0.0)
|
||||
# JIRA_API_TOKEN: the user api token to login jira
|
||||
# JIRA_LOGIN: the user email to login on jira
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Target tag is required as parameter"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z ${JIRA_API_TOKEN:-} ]; then
|
||||
echo "Environment variable JIRA_API_TOKEN needs to be defined: https://confluence.atlassian.com/cloud/api-tokens-938839638.html"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ -z ${JIRA_LOGIN:-} ]; then
|
||||
echo "Environment variable JIRA_LOGIN needs to be defined: jira user email"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
if ! command -v jira >/dev/null; then
|
||||
echo "go-jira command is required: https://github.com/go-jira/jira#install"
|
||||
fi
|
||||
|
||||
TAG_TARGET=$1
|
||||
TAG_SOURCE=${TAG_SOURCE:-$(git describe --tags --abbrev=0)}
|
||||
JIRA_ENDPOINT=${JIRA_ENDPOINT:-https://claranet-morea.atlassian.net}
|
||||
JIRA_STATUS=${JIRA_STATUS:-Done Closed}
|
||||
SAVEIFS=$IFS
|
||||
IFS=$(echo -en "\n\b")
|
||||
TMP=$(mktemp -d)
|
||||
|
||||
# Clean when exit
|
||||
err() {
|
||||
rm -fr ${TMP}
|
||||
IFS=$SAVEIFS
|
||||
}
|
||||
trap 'err $LINENO' ERR TERM EXIT INT
|
||||
|
||||
# Create the go-jira template with issue, status and summary as CSV
|
||||
mkdir -p ${HOME}/.jira.d/templates
|
||||
cat > ${HOME}/.jira.d/templates/changelog <<EOF
|
||||
{{ .fields.issuetype.name }};{{ .key }};{{if .fields.status -}}{{ .fields.status.name }}{{end -}};{{ .fields.summary }}
|
||||
EOF
|
||||
# Create the go-jira template to list allowed versions
|
||||
cat > ${HOME}/.jira.d/templates/versions <<EOF
|
||||
{{ range .fields.fixVersions.allowedValues }}{{.name}}
|
||||
{{end}}
|
||||
EOF
|
||||
# Create the go-jira template to edit issue fixing version
|
||||
cp -f ${HOME}/.jira.d/templates/edit ${HOME}/.jira.d/templates/fixversion
|
||||
cat >> ${HOME}/.jira.d/templates/fixversion <<EOF
|
||||
{{if .meta.fields.fixVersions -}}
|
||||
{{if .meta.fields.fixVersions.allowedValues}}
|
||||
fixVersions: # Values: {{ range .meta.fields.fixVersions.allowedValues }}{{.name}}, {{end}}{{if .overrides.fixVersions}}{{ range (split "," .overrides.fixVersions)}}
|
||||
- name: {{.}}{{end}}{{else}}{{range .fields.fixVersions}}
|
||||
- name: {{.name}}{{end}}{{end}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
EOF
|
||||
|
||||
# List all issues in commits from previous tag
|
||||
TMP_ISSUES=$TMP/issues.txt
|
||||
for commit in $(git log $(git describe --tags --abbrev=0)..HEAD --oneline); do
|
||||
[[ $commit =~ ^.*(MON-[0-9]+).*$ ]] && echo "${BASH_REMATCH[1]}"
|
||||
done | sort -u > $TMP_ISSUES
|
||||
|
||||
TMP_CHANGELOG=${TMP}/changelog.md
|
||||
TMP_ALLOWED_ISSUES=${TMP}/allowed-issues.txt
|
||||
# init changelog for next version
|
||||
echo -e "\n# $TAG_TARGET ($(LANG=eng date +"%B %d, %Y"))" >> $TMP_CHANGELOG
|
||||
for issue in $(cat $TMP_ISSUES); do
|
||||
# retrieve jira information from go-jira template
|
||||
IFS=';' read -r type issue status summary < <(jira --endpoint=${JIRA_ENDPOINT} --login=${JIRA_LOGIN} view $issue --template=changelog)
|
||||
# Ignore if issue is not in required status
|
||||
if [[ "$JIRA_STATUS" == *"$status"* ]]; then
|
||||
# add line for type only once
|
||||
if ! grep -q "^## $type" $TMP_CHANGELOG; then
|
||||
echo -e "\n## $type\n" >> $TMP_CHANGELOG
|
||||
fi
|
||||
# add jira issue line to changelog
|
||||
echo "* [[$issue](${JIRA_ENDPOINT}/browse/${issue})] - $summary" >> $TMP_CHANGELOG
|
||||
echo $issue >> $TMP_ALLOWED_ISSUES
|
||||
else
|
||||
echo "Ignore $issue with status \"$status\" not in [$JIRA_STATUS] ($summary)"
|
||||
fi
|
||||
done
|
||||
|
||||
cat $TMP_CHANGELOG
|
||||
# Ask for confirmation to update changelog
|
||||
read -p 'Update CHANGELOG.md with this ? (y/n): ' -r answer
|
||||
if [[ "$answer" == "y" ]]; then
|
||||
separator='\n'
|
||||
# Remove target tag changelog if already exist
|
||||
if grep -q $TAG_TARGET CHANGELOG.md; then
|
||||
prev_tag=$(grep '^# v' CHANGELOG.md | sed -n 2p)
|
||||
sed -i "/${prev_tag}/,\$!d" CHANGELOG.md
|
||||
separator="${separator}\n"
|
||||
fi
|
||||
# Add target tag changelog to final changelog
|
||||
echo -e "$(cat $TMP_CHANGELOG)${separator}$(cat CHANGELOG.md)" > CHANGELOG.md
|
||||
fi
|
||||
|
||||
read -p "Close all issues and fix version $TAG_TARGET ? (y/n): " -r answer
|
||||
if [[ "$answer" == "y" ]]; then
|
||||
# Create version if does not exists
|
||||
one_issue=$(head -n 1 $TMP_ALLOWED_ISSUES)
|
||||
auth_header=$(printf "${JIRA_LOGIN}:${JIRA_API_TOKEN}" | base64)
|
||||
if ! jira --endpoint=${JIRA_ENDPOINT} --login=${JIRA_LOGIN} editmeta $one_issue --template=versions | grep -q $TAG_TARGET; then
|
||||
curl -H "Authorization: Basic $auth_header" -H "Content-Type: application/json" -X POST -d "{\"name\": \"${TAG_TARGET}\",\"userReleaseDate\": \"$(echo -n $(LANG=eng date +'%-d/%b/%Y'))\",\"project\": \"$(echo -n $one_issue | cut -d'-' -f1)\",\"archived\": false,\"released\": true}" ${JIRA_ENDPOINT}/rest/api/latest/version
|
||||
fi
|
||||
for issue in $(cat $TMP_ALLOWED_ISSUES); do
|
||||
jira --endpoint=${JIRA_ENDPOINT} --login=${JIRA_LOGIN} transition Close $issue
|
||||
jira --endpoint=${JIRA_ENDPOINT} --login=${JIRA_LOGIN} edit $issue --template=fixversion --override fixVersions=${TAG_TARGET} --noedit
|
||||
done
|
||||
fi
|
||||
Loading…
x
Reference in New Issue
Block a user