Metadata-Version: 2.1
Name: announcer
Version: 3.0.1
Summary: Announce changes in keepachangelog-style CHANGELOG.md files to Slack and Microsoft Teams
License: MIT
Keywords: slack,teams
Author: Max Dymond
Author-email: max.dymond@metaswitch.com
Requires-Python: >=3.5,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: mistletoe (>=0.7.1,<0.8.0)
Requires-Dist: requests (>=2.19,<3.0)
Requires-Dist: typing (>=3.6.4,<4.0.0)
Description-Content-Type: text/markdown

[![Github build](https://img.shields.io/github/workflow/status/metaswitch/announcer/Announcer)](https://github.com/Metaswitch/announcer)
[![pypi version](https://img.shields.io/pypi/v/announcer)](https://pypi.org/project/announcer/)
[![docker pulls](https://img.shields.io/docker/pulls/metaswitch/announcer)](https://hub.docker.com/r/metaswitch/announcer)

# announcer

This tool:
* takes an [keepachangelog](https://keepachangelog.com/en/1.0.0/)-style CHANGELOG.md file
* extracts all changes for a particular version
* and sends a formatted message to a Slack or Microsoft Teams webhook.

It is available as a Python package, or as a Docker container for use in CI.

## Installation

Install this tool using pip:

```
pip install announcer
```

## Tool usage

```
usage: announce [-h] (--webhook WEBHOOK | --slackhook WEBHOOK) [--target {slack,teams}] --changelogversion CHANGELOGVERSION --changelogfile CHANGELOGFILE --projectname PROJECTNAME [--username USERNAME] [--iconurl ICONURL | --iconemoji ICONEMOJI]

Announce CHANGELOG changes on Slack and Microsoft Teams

optional arguments:
  -h, --help            show this help message and exit
  --webhook WEBHOOK     The incoming webhook URL
  --slackhook WEBHOOK   The incoming webhook URL. (Deprecated)
  --target {slack,teams}
                        The type of announcement that should be sent to the webhook
  --changelogversion CHANGELOGVERSION
                        The changelog version to announce (e.g. 1.0.0)
  --changelogfile CHANGELOGFILE
                        The file containing changelog details (e.g. CHANGELOG.md)
  --projectname PROJECTNAME
                        The name of the project to announce (e.g. announcer)
  --username USERNAME   The username that the announcement will be made as (e.g. announcer). Valid for: Slack
  --iconurl ICONURL     A URL to use for the user icon in the announcement. Valid for: Slack
  --iconemoji ICONEMOJI
                        An emoji code to use for the user icon in the announcement (e.g. party_parrot). Valid for: Slack
```

## Gitlab Usage

Announcer builds and publishes a Docker image that you can integrate into your `.gitlab-ci.yml`:

```
announce:
  stage: announce
  image: metaswitch/announcer:3.0.1
  script:
   - announce --webhook <webhook address>
              --changelogversion $CI_COMMIT_REF_NAME
              --changelogfile <CHANGELOG.md file>
              --projectname <Project name>
              --iconemoji party_parrot
  only:
    - tags
```

