.
diff --git a/git-cliff/git-cliff-0.5.0/README.md b/git-cliff/git-cliff-0.5.0/README.md
new file mode 100644
index 00000000..541a39d6
--- /dev/null
+++ b/git-cliff/git-cliff-0.5.0/README.md
@@ -0,0 +1,1242 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## About
+
+**git-cliff** can generate [changelog](https://en.wikipedia.org/wiki/Changelog) files from the [Git](https://git-scm.com/) history by utilizing [conventional commits](#conventional_commits) as well as regex-powered [custom parsers](#commit_parsers). The [changelog template](#templating) can be customized with a [configuration file](#configuration-file) to match the desired format.
+
+![preview](https://user-images.githubusercontent.com/24392180/128637997-5713ba25-d8f3-40c7-8ba8-ea7f333ead88.png)
+
+
+ Table of Contents
+
+- [About](#about)
+- [Installation](#installation)
+ - [From crates.io](#from-cratesio)
+ - [Using pacman](#using-pacman)
+ - [Binary releases](#binary-releases)
+ - [Build from source](#build-from-source)
+- [Usage](#usage)
+ - [Command Line Arguments](#command-line-arguments)
+ - [Examples](#examples)
+- [Docker](#docker)
+- [GitHub Action](#github-action)
+- [GitLab CI/CD](#gitlab-cicd)
+- [Configuration File](#configuration-file)
+ - [changelog](#changelog)
+ - [header](#header)
+ - [body](#body)
+ - [trim](#trim)
+ - [footer](#footer)
+ - [git](#git)
+ - [conventional_commits](#conventional_commits)
+ - [filter_unconventional](#filter_unconventional)
+ - [commit_parsers](#commit_parsers)
+ - [filter_commits](#filter_commits)
+ - [tag_pattern](#tag_pattern)
+ - [skip_tags](#skip_tags)
+ - [ignore_tags](#ignore_tags)
+ - [topo_order](#topo_order)
+ - [sort_commits](#sort_commits)
+- [Templating](#templating)
+ - [Context](#context)
+ - [Conventional Commits](#conventional-commits)
+ - [Breaking Changes](#breaking-changes)
+ - [Non-Conventional Commits](#non-conventional-commits)
+ - [Syntax](#syntax)
+ - [Examples](#examples-1)
+ - [Basic](#basic)
+ - [Detailed](#detailed)
+ - [Scoped](#scoped)
+ - [Scoped (Sorted)](#scoped-sorted)
+ - [Keep a Changelog](#keep-a-changelog)
+ - [Unconventional](#unconventional)
+- [Similar Projects](#similar-projects)
+- [License](#license)
+- [Copyright](#copyright)
+
+
+
+## Installation
+
+
+ Packaging status
+
+[![Packaging status](https://repology.org/badge/vertical-allrepos/git-cliff.svg)](https://repology.org/project/git-cliff/versions)
+
+
+
+### From crates.io
+
+[git-cliff](crates.io/crates/git-cliff) can be installed from crates.io:
+
+```sh
+cargo install git-cliff
+```
+
+### Using pacman
+
+If you are using Arch Linux, **git-cliff** can be installed from the [community repository](https://archlinux.org/packages/community/x86_64/git-cliff/):
+
+```sh
+pacman -S git-cliff
+```
+
+### Binary releases
+
+See the available binaries for different operating systems/architectures from the [releases page](https://github.com/orhun/git-cliff/releases).
+
+\* Release tarballs are signed with the following PGP key: [1D2D410A741137EBC544826F4A92FA17B6619297](https://keyserver.ubuntu.com/pks/lookup?search=0x4A92FA17B6619297&op=vindex)
+
+### Build from source
+
+* Linux dependencies: [zlib](https://zlib.net/)
+
+```sh
+# binary will be located at `target/release/git-cliff`
+CARGO_TARGET_DIR=target cargo build --release
+```
+
+## Usage
+
+### Command Line Arguments
+
+```
+git-cliff [FLAGS] [OPTIONS] [RANGE]
+```
+
+**Flags:**
+
+```
+-v, --verbose Increases the logging verbosity
+-i, --init Writes the default configuration file to cliff.toml
+-l, --latest Processes the commits starting from the latest tag
+ --current Processes the commits that belong to the current tag
+-u, --unreleased Processes the commits that do not belong to a tag
+ --topo-order Sorts the tags topologically
+-h, --help Prints help information
+-V, --version Prints version information
+```
+
+**Options:**
+
+```
+-c, --config Sets the configuration file [env: CONFIG=] [default: cliff.toml]
+-w, --workdir Sets the working directory [env: WORKDIR=]
+-r, --repository Sets the git repository [env: REPOSITORY=]
+ --include-path ... Sets the path to include related commits [env: INCLUDE_PATH=]
+ --exclude-path ... Sets the path to exclude related commits [env: EXCLUDE_PATH=]
+ --with-commit ... Sets custom commit messages to include in the changelog [env: WITH_COMMIT=]
+-p, --prepend Prepends entries to the given changelog file [env: PREPEND=
+-o, --output Writes output to the given file [env: OUTPUT=]
+-t, --tag Sets the tag for the latest version [env: TAG=]
+-b, --body Sets the template for the changelog body [env: TEMPLATE=]
+-s, --strip Strips the given parts from the changelog [possible values: header, footer, all]
+ --sort Sets sorting of the commits inside sections [default: oldest] [possible values: oldest, newest]
+```
+
+**Args:**
+
+```
+ Sets the commit range to process
+```
+
+### Examples
+
+The default [configuration file](#configuration-file) (`cliff.toml`) can be generated using the `--init` flag:
+
+```sh
+# create cliff.toml
+git cliff --init
+```
+
+Then simply create a changelog at your projects git root directory:
+
+```sh
+# same as running `git-cliff --config cliff.toml --repository .`
+# same as running `git-cliff --workdir .`
+git cliff
+```
+
+Set a tag for the "unreleased" changes:
+
+```sh
+git cliff --tag 1.0.0
+```
+
+Generate a changelog for a certain part of git history:
+
+```sh
+# only takes the latest tag into account
+# (requires at least 2 tags)
+git cliff --latest
+
+# only takes the current tag into account
+# useful if you checkout a specific tag (e.g. `git checkout v0.0.1`)
+# (requires a tag to be present for the current commit (i.e. HEAD))
+git cliff --current
+
+# generate changelog for unreleased commits
+git cliff --unreleased
+git cliff --unreleased --tag 1.0.0
+
+# generate changelog for a specific commit range
+git cliff 4c7b043..a440c6e
+git cliff 4c7b043..HEAD
+git cliff HEAD~2..
+```
+
+Generate a changelog scoped to a specific directory (useful for monorepos):
+
+```sh
+git cliff --include-path "**/*.toml" --include-path "*.md"
+git cliff --exclude-path ".github/*"
+```
+
+Generate a changelog that includes yet unexisting commit messages:
+
+```sh
+commit_msg="chore(release): update CHANGELOG.md for 1.0.0"
+
+# You might need to include the commit messages that do not exist
+# for testing purposes or solving the chicken-egg problem.
+git cliff --with-commit "$commit_msg" -o CHANGELOG.md
+
+git add CHANGELOG.md && git commit -m "$commit_msg"
+```
+
+Sort the commits inside sections:
+
+```sh
+# The oldest commit will be on top.
+# (default)
+git cliff --sort oldest
+
+# The newest commit will be on top.
+git cliff --sort newest
+```
+
+Sort the tags in topological order:
+
+```sh
+# Process in topological order instead of chronological.
+git cliff --topo-order
+```
+
+Save the changelog file to the specified file:
+
+```sh
+git cliff --output CHANGELOG.md
+```
+
+Prepend new changes to an existing changelog file:
+
+```sh
+# 1- changelog header is removed from CHANGELOG.md
+# 2- new entries are prepended to CHANGELOG.md without footer part
+git cliff --unreleased --tag 1.0.0 --prepend CHANGELOG.md
+```
+
+Set/remove the changelog parts:
+
+```sh
+git cliff --body $template --strip footer
+```
+
+Also, see the [release script](./release.sh) of this project which sets the changelog as a message of an annotated tag.
+
+## Docker
+
+The easiest way of running **git-cliff** (in the git root directory with [configuration file](#configuration-file) present) is to use the [available tags](https://hub.docker.com/repository/docker/orhunp/git-cliff/tags) from [Docker Hub](https://hub.docker.com/repository/docker/orhunp/git-cliff):
+
+```sh
+docker run -t -v "$(pwd)/.git":/app/ orhunp/git-cliff:latest
+```
+
+Or you can use the image from the [GitHub Package Registry](https://github.com/orhun/git-cliff/packages/841947):
+
+```sh
+docker run -t -v "$(pwd)/.git":/app/ docker.pkg.github.com/orhun/git-cliff/git-cliff:latest
+```
+
+Also, you can build the image yourself using `docker build -t git-cliff .` command.
+
+## GitHub Action
+
+It is possible to generate changelogs using [GitHub Actions](https://docs.github.com/en/actions) via [git-cliff-action](https://github.com/orhun/git-cliff-action).
+
+```yml
+- name: Generate a changelog
+ uses: orhun/git-cliff-action@v1
+ with:
+ config: cliff.toml
+ args: --verbose
+ env:
+ OUTPUT: CHANGELOG.md
+```
+
+See the [repository](https://github.com/orhun/git-cliff-action) for other [examples](https://github.com/orhun/git-cliff-action#examples).
+
+Also, see the [continuous deployment workflow](./.github/workflows/cd.yml) of this project which sets the release notes for GitHub releases using this action.
+
+## GitLab CI/CD
+
+It is possible to generate changelogs using [GitLab CI/CD](https://docs.gitlab.com/ee/ci/).
+
+This minimal example creates artifacts that can be used on another job.
+
+```yml
+- changelog:
+ image:
+ name: orhunp/git-cliff:latest
+ entrypoint: [""]
+ variables:
+ GIT_STRATEGY: clone # clone entire repo instead of reusing workspace
+ GIT_DEPTH: 0 # avoid shallow clone to give cliff all the info it needs
+ stage: doc
+ script:
+ - git-cliff -r . > CHANGELOG.md
+ artifacts:
+ paths:
+ - CHANGELOG.md
+```
+
+Please note that the stage is `doc` and has to be changed accordingly to your need.
+
+## Configuration File
+
+**git-cliff** configuration file supports [TOML](https://github.com/toml-lang/toml) (preferred) and [YAML](https://yaml.org) formats.
+
+The configuration file is read from `$HOME/git-cliff/cliff.toml` if the file exists. This location depends on the platform, for example:
+
+- on Linux: `/home//.config/git-cliff/cliff.toml`
+- on Windows: `C:\Users\\AppData\Roaming\git-cliff\cliff.toml`
+- on macOS: `/Users//Library/Application Support/git-cliff/cliff.toml`
+
+See [config/cliff.toml](./config/cliff.toml) for the default configuration values.
+
+### changelog
+
+This section contains the configuration options for changelog generation.
+
+```toml
+[changelog]
+header = "Changelog"
+body = """
+{% for group, commits in commits | group_by(attribute="group") %}
+ ### {{ group | upper_first }}
+ {% for commit in commits %}
+ - {{ commit.message | upper_first }}
+ {% endfor %}
+{% endfor %}
+"""
+trim = true
+footer = ""
+```
+
+#### header
+
+Header text that will be added to the beginning of the changelog.
+
+#### body
+
+Body template that represents a single release in the changelog.
+
+See [templating](#templating) for more detail.
+
+#### trim
+
+If set to `true`, leading and trailing whitespaces are removed from the [body](#body).
+
+It is useful for adding indentation to the template for readability, as shown [in the example](#changelog).
+
+#### footer
+
+Footer text that will be added to the end of the changelog.
+
+### git
+
+This section contains the parsing and git related configuration options.
+
+```toml
+[git]
+conventional_commits = true
+filter_unconventional = true
+commit_parsers = [
+ { message = "^feat", group = "Features"},
+ { message = "^fix", group = "Bug Fixes"},
+ { message = "^doc", group = "Documentation"},
+ { message = "^perf", group = "Performance"},
+ { message = "^refactor", group = "Refactor"},
+ { message = "^style", group = "Styling"},
+ { message = "^test", group = "Testing"},
+]
+filter_commits = false
+tag_pattern = "v[0-9]*"
+skip_tags = "v0.1.0-beta.1"
+ignore_tags = ""
+topo_order = false
+sort_commits = "oldest"
+```
+
+#### conventional_commits
+
+If set to `true`, commits are parsed according to the [Conventional Commits specifications](https://www.conventionalcommits.org).
+
+> The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with SemVer, by describing the features, fixes, and breaking changes made in commit messages.
+
+> The commit message should be structured as follows:
+
+```
+[optional scope]:
+
+[optional body]
+
+[optional footer(s)]
+```
+
+e.g. `feat(parser): add ability to parse arrays`
+
+#### filter_unconventional
+
+If set to `true`, commits that are not conventional are excluded. This option can be used to generate changelogs with conventional and unconvential commits mixed together. For example:
+
+```toml
+conventional_commits = true
+filter_unconventional = false
+commit_parsers = [
+ { message = ".*", group = "Other", default_scope = "other"},
+]
+```
+
+With the configuration above, conventional commits are parsed as usual and unconventional commits will be also included in the changelog as "Other".
+
+To completely exclude unconventional commits from the changelog:
+
+```toml
+# default behaviour
+conventional_commits = true
+filter_unconventional = true
+```
+
+To include any type of commit in the changelog without parsing:
+
+```toml
+conventional_commits = false
+filter_unconventional = false
+```
+
+#### commit_parsers
+
+An array of commit parsers for determining the commit groups by using regex.
+
+Examples:
+
+- `{ message = "^feat", group = "Features"}`
+ - Group the commit as "Features" if the commit message (description) starts with "feat".
+- `{ body = ".*security", group = "Security"}`
+ - Group the commit as "Security" if the commit body contains "security".
+- `{ message = ".*deprecated", body = ".*deprecated", group = "Deprecation"}`
+ - Group the commit as "Deprecation" if the commit body and message contains "deprecated".
+- `{ message = "^revert", skip = true}`
+ - Skip processing the commit if the commit message (description) starts with "revert".
+- `{ message = "^doc", group = "Documentation", default_scope = "other"},`
+ - If the commit starts with "doc", group the commit as "Documentation" and set the default scope to "other". (e.g. `docs: xyz` will be processed as `docs(other): xyz`)
+
+#### filter_commits
+
+If set to `true`, commits that are not matched by [commit parsers](#commit_parsers) are filtered out.
+
+#### tag_pattern
+
+A glob pattern for matching the git tags.
+
+e.g. It processes the same tags as the output of the following git command:
+
+```sh
+git tag --list 'v[0-9]*'
+```
+
+#### skip_tags
+
+A regex for skip processing the matched tags.
+
+#### ignore_tags
+
+A regex for ignore processing the matched tags.
+
+While `skip_tags` drop commits from the changelog, `ignore_tags` include ignored commits into the next tag.
+
+#### topo_order
+
+If set to `true`, tags are processed in topological order instead of chronological.
+
+This can also be achieved by using the `--topo-order` command line flag.
+
+#### sort_commits
+
+Sort the commits inside sections by specified order.
+
+Possible values:
+
+- `oldest`
+- `newest`
+
+This can also be achieved by specifying the `--sort` command line argument.
+
+## Templating
+
+A template is a text where variables and expressions get replaced with values when it is rendered.
+
+### Context
+
+Context is the model that holds the required data for a template rendering. The [JSON](https://en.wikipedia.org/wiki/JSON) format is used in the following examples for the representation of a context.
+
+#### Conventional Commits
+
+> conventional_commits = **true**
+
+For a [conventional commit](#conventional_commits) like this,
+
+```
+[scope]:
+
+[body]
+
+[footer(s)]
+```
+
+following context is generated to use for templating:
+
+```json
+{
+ "version": "v0.1.0-rc.21",
+ "commits": [
+ {
+ "id": "e795460c9bb7275294d1fa53a9d73258fb51eb10",
+ "group": " (overrided by commit_parsers)",
+ "scope": "[scope]",
+ "message": "",
+ "body": "[body]",
+ "footers": ["[footer]", "[footer]"],
+ "breaking_description": "",
+ "breaking": false,
+ "conventional": true
+ }
+ ],
+ "commit_id": "a440c6eb26404be4877b7e3ad592bfaa5d4eb210 (release commit)",
+ "timestamp": 1625169301,
+ "previous": {
+ "version": "previous release"
+ }
+}
+```
+
+##### Breaking Changes
+
+`breaking` flag is set to `true` when the commit has an exclamation mark after the commit type and scope, e.g.:
+
+```
+feat(scope)!: this is a breaking change
+```
+
+Or when the `BREAKING CHANGE:` footer is defined:
+
+```
+feat: add xyz
+
+BREAKING CHANGE: this is a breaking change
+```
+
+`breaking_description` is set to the explanation of the breaking change. This description is expected to be present in the `BREAKING CHANGE` footer. However, if it's not provided, the `message` is expected to describe the breaking change.
+
+#### Non-Conventional Commits
+
+> conventional_commits = **false**
+
+If [conventional_commits](#conventional_commits) is set to `false`, then some of the fields are omitted from the context or squashed into the `message` field:
+
+```json
+{
+ "version": "v0.1.0-rc.21",
+ "commits": [
+ {
+ "id": "e795460c9bb7275294d1fa53a9d73258fb51eb10",
+ "group": "(overrided by commit_parsers)",
+ "scope": "(overrided by commit_parsers)",
+ "message": "(full commit message including description, footers, etc.)",
+ "conventional": false,
+ }
+ ],
+ "commit_id": "a440c6eb26404be4877b7e3ad592bfaa5d4eb210 (release commit)",
+ "timestamp": 1625169301,
+ "previous": {
+ "version": "previous release"
+ }
+}
+```
+
+### Syntax
+
+**git-cliff** uses [Tera](https://github.com/Keats/tera) as the template engine. It has a syntax based on [Jinja2](http://jinja.pocoo.org/) and [Django](https://docs.djangoproject.com/en/3.1/topics/templates/) templates.
+
+There are 3 kinds of delimiters and those cannot be changed:
+
+- `{{` and `}}` for expressions
+- `{%` or `{%-` and `%}` or `-%}` for statements
+- `{#` and `#}` for comments
+
+See the [Tera Documentation](https://tera.netlify.app/docs/#templates) for more information about [control structures](https://tera.netlify.app/docs/#control-structures), [built-ins filters](https://tera.netlify.app/docs/#built-ins), etc.
+
+Custom built-in filters that **git-cliff** uses:
+
+- `upper_first`: Converts the first character of a string to uppercase.
+
+### Examples
+
+Examples are based on the following Git history:
+
+```log
+* df6aef4 (HEAD -> master) feat(cache): use cache while fetching pages
+* a9d4050 feat(config): support multiple file formats
+* 06412ac (tag: v1.0.1) chore(release): add release script
+* e4fd3cf refactor(parser): expose string functions
+* ad27b43 (tag: v1.0.0) docs(example)!: add tested usage example
+* 9add0d4 fix(args): rename help argument due to conflict
+* a140cef feat(parser): add ability to parse arrays
+* 81fbc63 docs(project): add README.md
+* a78bc36 Initial commit
+```
+
+See [examples](./examples/) directory for example configuration files.
+
+If you have a custom configuration file that you are using for your project(s), consider sharing it with us by [submitting a pull request](./CONTRIBUTING.md)!
+
+#### [Basic](./config/cliff.toml)
+
+
+ Raw Output
+
+```
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+- Support multiple file formats
+- Use cache while fetching pages
+
+## [1.0.1] - 2021-07-18
+
+### Miscellaneous Tasks
+
+- Add release script
+
+### Refactor
+
+- Expose string functions
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+- Rename help argument due to conflict
+
+### Documentation
+
+- Add README.md
+- Add tested usage example
+
+### Features
+
+- Add ability to parse arrays
+
+
+```
+
+
+
+
+ Rendered Output
+
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+- Support multiple file formats
+- Use cache while fetching pages
+
+## [1.0.1] - 2021-07-18
+
+### Miscellaneous Tasks
+
+- Add release script
+
+### Refactor
+
+- Expose string functions
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+- Rename help argument due to conflict
+
+### Documentation
+
+- Add README.md
+- Add tested usage example
+
+### Features
+
+- Add ability to parse arrays
+
+
+
+
+
+#### [Detailed](./examples/detailed.toml)
+
+
+ Raw Output
+
+```
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+- Support multiple file formats ([a9d4050](a9d4050212a18f6b3bd76e2e41fbb9045d268b80))
+- Use cache while fetching pages ([df6aef4](df6aef41292f3ffe5887754232e6ea7831c50ba5))
+
+## [1.0.1] - 2021-07-18
+
+[ad27b43](ad27b43e8032671afb4809a1a3ecf12f45c60e0e)...[06412ac](06412ac1dd4071006c465dde6597a21d4367a158)
+
+### Miscellaneous Tasks
+
+- Add release script ([06412ac](06412ac1dd4071006c465dde6597a21d4367a158))
+
+### Refactor
+
+- Expose string functions ([e4fd3cf](e4fd3cf8e2e6f49c0b57f66416e886c37cbb3715))
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+- Rename help argument due to conflict ([9add0d4](9add0d4616dc95a6ea8b01d5e4d233876b6e5e00))
+
+### Documentation
+
+- Add README.md ([81fbc63](81fbc6365484abf0b4f4b05d384175763ad8db44))
+- Add tested usage example ([ad27b43](ad27b43e8032671afb4809a1a3ecf12f45c60e0e))
+
+### Features
+
+- Add ability to parse arrays ([a140cef](a140cef0405e0bcbfb5de44ff59e091527d91b38))
+
+
+```
+
+
+
+
+ Rendered Output
+
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+- Support multiple file formats ([a9d4050](a9d4050212a18f6b3bd76e2e41fbb9045d268b80))
+- Use cache while fetching pages ([df6aef4](df6aef41292f3ffe5887754232e6ea7831c50ba5))
+
+## [1.0.1] - 2021-07-18
+
+[ad27b43](ad27b43e8032671afb4809a1a3ecf12f45c60e0e)...[06412ac](06412ac1dd4071006c465dde6597a21d4367a158)
+
+### Miscellaneous Tasks
+
+- Add release script ([06412ac](06412ac1dd4071006c465dde6597a21d4367a158))
+
+### Refactor
+
+- Expose string functions ([e4fd3cf](e4fd3cf8e2e6f49c0b57f66416e886c37cbb3715))
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+- Rename help argument due to conflict ([9add0d4](9add0d4616dc95a6ea8b01d5e4d233876b6e5e00))
+
+### Documentation
+
+- Add README.md ([81fbc63](81fbc6365484abf0b4f4b05d384175763ad8db44))
+- Add tested usage example ([ad27b43](ad27b43e8032671afb4809a1a3ecf12f45c60e0e))
+
+### Features
+
+- Add ability to parse arrays ([a140cef](a140cef0405e0bcbfb5de44ff59e091527d91b38))
+
+
+
+
+
+#### [Scoped](./examples/scoped.toml)
+
+
+ Raw Output
+
+```
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+#### Cache
+
+- Use cache while fetching pages
+
+#### Config
+
+- Support multiple file formats
+
+## [1.0.1] - 2021-07-18
+
+### Miscellaneous Tasks
+
+#### Release
+
+- Add release script
+
+### Refactor
+
+#### Parser
+
+- Expose string functions
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+#### Args
+
+- Rename help argument due to conflict
+
+### Documentation
+
+#### Example
+
+- Add tested usage example
+
+#### Project
+
+- Add README.md
+
+### Features
+
+#### Parser
+
+- Add ability to parse arrays
+
+
+```
+
+
+
+
+ Rendered Output
+
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+#### Cache
+
+- Use cache while fetching pages
+
+#### Config
+
+- Support multiple file formats
+
+## [1.0.1] - 2021-07-18
+
+### Miscellaneous Tasks
+
+#### Release
+
+- Add release script
+
+### Refactor
+
+#### Parser
+
+- Expose string functions
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+#### Args
+
+- Rename help argument due to conflict
+
+### Documentation
+
+#### Example
+
+- Add tested usage example
+
+#### Project
+
+- Add README.md
+
+### Features
+
+#### Parser
+
+- Add ability to parse arrays
+
+
+
+
+
+#### [Scoped (Sorted)](./examples/scopesorted.toml)
+
+
+ Raw Output
+
+```
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+- *(cache)* Use cache while fetching pages
+- *(config)* Support multiple file formats
+
+## [1.0.1] - 2021-07-18
+
+### Miscellaneous Tasks
+
+- *(release)* Add release script
+
+### Refactor
+
+- *(parser)* Expose string functions
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+- *(args)* Rename help argument due to conflict
+
+### Documentation
+
+- *(example)* Add tested usage example
+ - **BREAKING**: add tested usage example
+- *(project)* Add README.md
+
+### Features
+
+- *(parser)* Add ability to parse arrays
+
+
+```
+
+
+
+
+ Rendered Output
+
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+- *(cache)* Use cache while fetching pages
+- *(config)* Support multiple file formats
+
+## [1.0.1] - 2021-07-18
+
+### Miscellaneous Tasks
+
+- *(release)* Add release script
+
+### Refactor
+
+- *(parser)* Expose string functions
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+- *(args)* Rename help argument due to conflict
+
+### Documentation
+
+- *(example)* Add tested usage example
+ - **BREAKING**: add tested usage example
+- *(project)* Add README.md
+
+### Features
+
+- *(parser)* Add ability to parse arrays
+
+
+
+
+
+#### [Keep a Changelog](./examples/keepachangelog.toml)
+
+
+ Raw Output
+
+```
+# 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]
+
+### Added
+
+- Support multiple file formats
+
+### Changed
+
+- Use cache while fetching pages
+
+## [1.0.1] - 2021-07-18
+
+### Added
+
+- Add release script
+
+### Changed
+
+- Expose string functions
+
+## [1.0.0] - 2021-07-18
+
+### Added
+
+- Add README.md
+- Add ability to parse arrays
+- Add tested usage example
+
+### Fixed
+
+- Rename help argument due to conflict
+
+
+```
+
+
+
+
+ Rendered Output
+
+# 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]
+
+### Added
+
+- Support multiple file formats
+
+### Changed
+
+- Use cache while fetching pages
+
+## [1.0.1] - 2021-07-18
+
+### Added
+
+- Add release script
+
+### Changed
+
+- Expose string functions
+
+## [1.0.0] - 2021-07-18
+
+### Added
+
+- Add README.md
+- Add ability to parse arrays
+- Add tested usage example
+
+### Fixed
+
+- Rename help argument due to conflict
+
+
+
+
+
+#### [Unconventional](./examples/unconventional.toml)
+
+
+ Raw Output
+
+```
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+- Support multiple file formats ✔️
+- Use cache while fetching pages ✔️
+
+## [1.0.1] - 2021-07-18
+
+### Miscellaneous Tasks
+
+- Add release script ✔️
+
+### Refactor
+
+- Expose string functions ✔️
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+- Rename help argument due to conflict ✔️
+
+### Documentation
+
+- Add README.md ✔️
+- Add tested usage example ✔️
+
+### Features
+
+- Add ability to parse arrays ✔️
+
+### Other (unconventional)
+
+- Initial commit ❌
+
+
+```
+
+
+
+
+ Rendered Output
+
+# Changelog
+All notable changes to this project will be documented in this file.
+
+## [unreleased]
+
+### Features
+
+- Support multiple file formats ✔️
+- Use cache while fetching pages ✔️
+
+## [1.0.1] - 2021-07-18
+
+### Miscellaneous Tasks
+
+- Add release script ✔️
+
+### Refactor
+
+- Expose string functions ✔️
+
+## [1.0.0] - 2021-07-18
+
+### Bug Fixes
+
+- Rename help argument due to conflict ✔️
+
+### Documentation
+
+- Add README.md ✔️
+- Add tested usage example ✔️
+
+### Features
+
+- Add ability to parse arrays ✔️
+
+### Other (unconventional)
+
+- Initial commit ❌
+
+
+
+
+
+## Similar Projects
+
+- [git-journal](https://github.com/saschagrunert/git-journal) - The Git Commit Message and Changelog Generation Framework
+- [clog-cli](https://github.com/clog-tool/clog-cli) - Generate beautiful changelogs from your Git commit history
+- [relnotes](https://crates.io/crates/relnotes) - A tool to automatically generate release notes for your project.
+- [cocogitto](https://github.com/oknozor/cocogitto) - A set of CLI tools for the conventional commit
+and semver specifications.
+
+## License
+
+GNU General Public License ([v3.0](https://www.gnu.org/licenses/gpl.txt))
+
+## Copyright
+
+Copyright © 2021, [git-cliff contributors](mailto:git-cliff@protonmail.com)
diff --git a/git-cliff/git-cliff-0.5.0/completions/_git-cliff b/git-cliff/git-cliff-0.5.0/completions/_git-cliff
new file mode 100644
index 00000000..fed35968
--- /dev/null
+++ b/git-cliff/git-cliff-0.5.0/completions/_git-cliff
@@ -0,0 +1,65 @@
+#compdef git-cliff
+
+autoload -U is-at-least
+
+_git-cliff() {
+ typeset -A opt_args
+ typeset -a _arguments_options
+ local ret=1
+
+ if is-at-least 5.2; then
+ _arguments_options=(-s -S -C)
+ else
+ _arguments_options=(-s -C)
+ fi
+
+ local context curcontext="$curcontext" state line
+ _arguments "${_arguments_options[@]}" \
+'-c+[Sets the configuration file]' \
+'--config=[Sets the configuration file]' \
+'-w+[Sets the working directory]' \
+'--workdir=[Sets the working directory]' \
+'-r+[Sets the git repository]' \
+'--repository=[Sets the git repository]' \
+'*--include-path=[Sets the path to include related commits]' \
+'*--exclude-path=[Sets the path to exclude related commits]' \
+'*--with-commit=[Sets custom commit messages to include in the changelog]' \
+'-p+[Prepends entries to the given changelog file]' \
+'--prepend=[Prepends entries to the given changelog file]' \
+'-o+[Writes output to the given file]' \
+'--output=[Writes output to the given file]' \
+'-t+[Sets the tag for the latest version]' \
+'--tag=[Sets the tag for the latest version]' \
+'-b+[Sets the template for the changelog body]' \
+'--body=[Sets the template for the changelog body]' \
+'-s+[Strips the given parts from the changelog]: :(header footer all)' \
+'--strip=[Strips the given parts from the changelog]: :(header footer all)' \
+'--sort=[Sets sorting of the commits inside sections]: :(oldest newest)' \
+'*-v[Increases the logging verbosity]' \
+'*--verbose[Increases the logging verbosity]' \
+'-i[Writes the default configuration file to cliff.toml]' \
+'--init[Writes the default configuration file to cliff.toml]' \
+'-l[Processes the commits starting from the latest tag]' \
+'--latest[Processes the commits starting from the latest tag]' \
+'--current[Processes the commits that belong to the current tag]' \
+'-u[Processes the commits that do not belong to a tag]' \
+'--unreleased[Processes the commits that do not belong to a tag]' \
+'--topo-order[Sorts the tags topologically]' \
+'-h[Prints help information]' \
+'--help[Prints help information]' \
+'-V[Prints version information]' \
+'--version[Prints version information]' \
+'::range -- Sets the commit range to process:_files' \
+&& ret=0
+
+}
+
+(( $+functions[_git-cliff_commands] )) ||
+_git-cliff_commands() {
+ local commands; commands=(
+
+ )
+ _describe -t commands 'git-cliff commands' commands "$@"
+}
+
+_git-cliff "$@"
\ No newline at end of file
diff --git a/git-cliff/git-cliff-0.5.0/completions/_git-cliff.ps1 b/git-cliff/git-cliff-0.5.0/completions/_git-cliff.ps1
new file mode 100644
index 00000000..dd81acfe
--- /dev/null
+++ b/git-cliff/git-cliff-0.5.0/completions/_git-cliff.ps1
@@ -0,0 +1,63 @@
+
+using namespace System.Management.Automation
+using namespace System.Management.Automation.Language
+
+Register-ArgumentCompleter -Native -CommandName 'git-cliff' -ScriptBlock {
+ param($wordToComplete, $commandAst, $cursorPosition)
+
+ $commandElements = $commandAst.CommandElements
+ $command = @(
+ 'git-cliff'
+ for ($i = 1; $i -lt $commandElements.Count; $i++) {
+ $element = $commandElements[$i]
+ if ($element -isnot [StringConstantExpressionAst] -or
+ $element.StringConstantType -ne [StringConstantType]::BareWord -or
+ $element.Value.StartsWith('-')) {
+ break
+ }
+ $element.Value
+ }) -join ';'
+
+ $completions = @(switch ($command) {
+ 'git-cliff' {
+ [CompletionResult]::new('-c', 'c', [CompletionResultType]::ParameterName, 'Sets the configuration file')
+ [CompletionResult]::new('--config', 'config', [CompletionResultType]::ParameterName, 'Sets the configuration file')
+ [CompletionResult]::new('-w', 'w', [CompletionResultType]::ParameterName, 'Sets the working directory')
+ [CompletionResult]::new('--workdir', 'workdir', [CompletionResultType]::ParameterName, 'Sets the working directory')
+ [CompletionResult]::new('-r', 'r', [CompletionResultType]::ParameterName, 'Sets the git repository')
+ [CompletionResult]::new('--repository', 'repository', [CompletionResultType]::ParameterName, 'Sets the git repository')
+ [CompletionResult]::new('--include-path', 'include-path', [CompletionResultType]::ParameterName, 'Sets the path to include related commits')
+ [CompletionResult]::new('--exclude-path', 'exclude-path', [CompletionResultType]::ParameterName, 'Sets the path to exclude related commits')
+ [CompletionResult]::new('--with-commit', 'with-commit', [CompletionResultType]::ParameterName, 'Sets custom commit messages to include in the changelog')
+ [CompletionResult]::new('-p', 'p', [CompletionResultType]::ParameterName, 'Prepends entries to the given changelog file')
+ [CompletionResult]::new('--prepend', 'prepend', [CompletionResultType]::ParameterName, 'Prepends entries to the given changelog file')
+ [CompletionResult]::new('-o', 'o', [CompletionResultType]::ParameterName, 'Writes output to the given file')
+ [CompletionResult]::new('--output', 'output', [CompletionResultType]::ParameterName, 'Writes output to the given file')
+ [CompletionResult]::new('-t', 't', [CompletionResultType]::ParameterName, 'Sets the tag for the latest version')
+ [CompletionResult]::new('--tag', 'tag', [CompletionResultType]::ParameterName, 'Sets the tag for the latest version')
+ [CompletionResult]::new('-b', 'b', [CompletionResultType]::ParameterName, 'Sets the template for the changelog body')
+ [CompletionResult]::new('--body', 'body', [CompletionResultType]::ParameterName, 'Sets the template for the changelog body')
+ [CompletionResult]::new('-s', 's', [CompletionResultType]::ParameterName, 'Strips the given parts from the changelog')
+ [CompletionResult]::new('--strip', 'strip', [CompletionResultType]::ParameterName, 'Strips the given parts from the changelog')
+ [CompletionResult]::new('--sort', 'sort', [CompletionResultType]::ParameterName, 'Sets sorting of the commits inside sections')
+ [CompletionResult]::new('-v', 'v', [CompletionResultType]::ParameterName, 'Increases the logging verbosity')
+ [CompletionResult]::new('--verbose', 'verbose', [CompletionResultType]::ParameterName, 'Increases the logging verbosity')
+ [CompletionResult]::new('-i', 'i', [CompletionResultType]::ParameterName, 'Writes the default configuration file to cliff.toml')
+ [CompletionResult]::new('--init', 'init', [CompletionResultType]::ParameterName, 'Writes the default configuration file to cliff.toml')
+ [CompletionResult]::new('-l', 'l', [CompletionResultType]::ParameterName, 'Processes the commits starting from the latest tag')
+ [CompletionResult]::new('--latest', 'latest', [CompletionResultType]::ParameterName, 'Processes the commits starting from the latest tag')
+ [CompletionResult]::new('--current', 'current', [CompletionResultType]::ParameterName, 'Processes the commits that belong to the current tag')
+ [CompletionResult]::new('-u', 'u', [CompletionResultType]::ParameterName, 'Processes the commits that do not belong to a tag')
+ [CompletionResult]::new('--unreleased', 'unreleased', [CompletionResultType]::ParameterName, 'Processes the commits that do not belong to a tag')
+ [CompletionResult]::new('--topo-order', 'topo-order', [CompletionResultType]::ParameterName, 'Sorts the tags topologically')
+ [CompletionResult]::new('-h', 'h', [CompletionResultType]::ParameterName, 'Prints help information')
+ [CompletionResult]::new('--help', 'help', [CompletionResultType]::ParameterName, 'Prints help information')
+ [CompletionResult]::new('-V', 'V', [CompletionResultType]::ParameterName, 'Prints version information')
+ [CompletionResult]::new('--version', 'version', [CompletionResultType]::ParameterName, 'Prints version information')
+ break
+ }
+ })
+
+ $completions.Where{ $_.CompletionText -like "$wordToComplete*" } |
+ Sort-Object -Property ListItemText
+}
diff --git a/git-cliff/git-cliff-0.5.0/completions/git-cliff.bash b/git-cliff/git-cliff-0.5.0/completions/git-cliff.bash
new file mode 100644
index 00000000..ecdf7574
--- /dev/null
+++ b/git-cliff/git-cliff-0.5.0/completions/git-cliff.bash
@@ -0,0 +1,121 @@
+_git-cliff() {
+ local i cur prev opts cmds
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ cmd=""
+ opts=""
+
+ for i in ${COMP_WORDS[@]}
+ do
+ case "${i}" in
+ git-cliff)
+ cmd="git-cliff"
+ ;;
+
+ *)
+ ;;
+ esac
+ done
+
+ case "${cmd}" in
+ git-cliff)
+ opts=" -v -i -l -u -h -V -c -w -r -p -o -t -b -s --verbose --init --latest --current --unreleased --topo-order --help --version --config --workdir --repository --include-path --exclude-path --with-commit --prepend --output --tag --body --strip --sort "
+ if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
+ COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+ return 0
+ fi
+ case "${prev}" in
+
+ --config)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ -c)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --workdir)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ -w)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --repository)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ -r)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --include-path)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --exclude-path)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --with-commit)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --prepend)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ -p)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --output)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ -o)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --tag)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ -t)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --body)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ -b)
+ COMPREPLY=($(compgen -f "${cur}"))
+ return 0
+ ;;
+ --strip)
+ COMPREPLY=($(compgen -W "header footer all" -- "${cur}"))
+ return 0
+ ;;
+ -s)
+ COMPREPLY=($(compgen -W "header footer all" -- "${cur}"))
+ return 0
+ ;;
+ --sort)
+ COMPREPLY=($(compgen -W "oldest newest" -- "${cur}"))
+ return 0
+ ;;
+ *)
+ COMPREPLY=()
+ ;;
+ esac
+ COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
+ return 0
+ ;;
+
+ esac
+}
+
+complete -F _git-cliff -o bashdefault -o default git-cliff
diff --git a/git-cliff/git-cliff-0.5.0/completions/git-cliff.elv b/git-cliff/git-cliff-0.5.0/completions/git-cliff.elv
new file mode 100644
index 00000000..a7e97d06
--- /dev/null
+++ b/git-cliff/git-cliff-0.5.0/completions/git-cliff.elv
@@ -0,0 +1,55 @@
+
+edit:completion:arg-completer[git-cliff] = [@words]{
+ fn spaces [n]{
+ repeat $n ' ' | joins ''
+ }
+ fn cand [text desc]{
+ edit:complex-candidate $text &display-suffix=' '(spaces (- 14 (wcswidth $text)))$desc
+ }
+ command = 'git-cliff'
+ for word $words[1:-1] {
+ if (has-prefix $word '-') {
+ break
+ }
+ command = $command';'$word
+ }
+ completions = [
+ &'git-cliff'= {
+ cand -c 'Sets the configuration file'
+ cand --config 'Sets the configuration file'
+ cand -w 'Sets the working directory'
+ cand --workdir 'Sets the working directory'
+ cand -r 'Sets the git repository'
+ cand --repository 'Sets the git repository'
+ cand --include-path 'Sets the path to include related commits'
+ cand --exclude-path 'Sets the path to exclude related commits'
+ cand --with-commit 'Sets custom commit messages to include in the changelog'
+ cand -p 'Prepends entries to the given changelog file'
+ cand --prepend 'Prepends entries to the given changelog file'
+ cand -o 'Writes output to the given file'
+ cand --output 'Writes output to the given file'
+ cand -t 'Sets the tag for the latest version'
+ cand --tag 'Sets the tag for the latest version'
+ cand -b 'Sets the template for the changelog body'
+ cand --body 'Sets the template for the changelog body'
+ cand -s 'Strips the given parts from the changelog'
+ cand --strip 'Strips the given parts from the changelog'
+ cand --sort 'Sets sorting of the commits inside sections'
+ cand -v 'Increases the logging verbosity'
+ cand --verbose 'Increases the logging verbosity'
+ cand -i 'Writes the default configuration file to cliff.toml'
+ cand --init 'Writes the default configuration file to cliff.toml'
+ cand -l 'Processes the commits starting from the latest tag'
+ cand --latest 'Processes the commits starting from the latest tag'
+ cand --current 'Processes the commits that belong to the current tag'
+ cand -u 'Processes the commits that do not belong to a tag'
+ cand --unreleased 'Processes the commits that do not belong to a tag'
+ cand --topo-order 'Sorts the tags topologically'
+ cand -h 'Prints help information'
+ cand --help 'Prints help information'
+ cand -V 'Prints version information'
+ cand --version 'Prints version information'
+ }
+ ]
+ $completions[$command]
+}
diff --git a/git-cliff/git-cliff-0.5.0/completions/git-cliff.fish b/git-cliff/git-cliff-0.5.0/completions/git-cliff.fish
new file mode 100644
index 00000000..2846fb09
--- /dev/null
+++ b/git-cliff/git-cliff-0.5.0/completions/git-cliff.fish
@@ -0,0 +1,20 @@
+complete -c git-cliff -n "__fish_use_subcommand" -s c -l config -d 'Sets the configuration file'
+complete -c git-cliff -n "__fish_use_subcommand" -s w -l workdir -d 'Sets the working directory'
+complete -c git-cliff -n "__fish_use_subcommand" -s r -l repository -d 'Sets the git repository'
+complete -c git-cliff -n "__fish_use_subcommand" -l include-path -d 'Sets the path to include related commits'
+complete -c git-cliff -n "__fish_use_subcommand" -l exclude-path -d 'Sets the path to exclude related commits'
+complete -c git-cliff -n "__fish_use_subcommand" -l with-commit -d 'Sets custom commit messages to include in the changelog'
+complete -c git-cliff -n "__fish_use_subcommand" -s p -l prepend -d 'Prepends entries to the given changelog file'
+complete -c git-cliff -n "__fish_use_subcommand" -s o -l output -d 'Writes output to the given file'
+complete -c git-cliff -n "__fish_use_subcommand" -s t -l tag -d 'Sets the tag for the latest version'
+complete -c git-cliff -n "__fish_use_subcommand" -s b -l body -d 'Sets the template for the changelog body'
+complete -c git-cliff -n "__fish_use_subcommand" -s s -l strip -d 'Strips the given parts from the changelog' -r -f -a "header footer all"
+complete -c git-cliff -n "__fish_use_subcommand" -l sort -d 'Sets sorting of the commits inside sections' -r -f -a "oldest newest"
+complete -c git-cliff -n "__fish_use_subcommand" -s v -l verbose -d 'Increases the logging verbosity'
+complete -c git-cliff -n "__fish_use_subcommand" -s i -l init -d 'Writes the default configuration file to cliff.toml'
+complete -c git-cliff -n "__fish_use_subcommand" -s l -l latest -d 'Processes the commits starting from the latest tag'
+complete -c git-cliff -n "__fish_use_subcommand" -l current -d 'Processes the commits that belong to the current tag'
+complete -c git-cliff -n "__fish_use_subcommand" -s u -l unreleased -d 'Processes the commits that do not belong to a tag'
+complete -c git-cliff -n "__fish_use_subcommand" -l topo-order -d 'Sorts the tags topologically'
+complete -c git-cliff -n "__fish_use_subcommand" -s h -l help -d 'Prints help information'
+complete -c git-cliff -n "__fish_use_subcommand" -s V -l version -d 'Prints version information'
diff --git a/git-cliff/git-cliff-0.5.0/git-cliff b/git-cliff/git-cliff-0.5.0/git-cliff
new file mode 100755
index 00000000..2bd3375e
Binary files /dev/null and b/git-cliff/git-cliff-0.5.0/git-cliff differ
diff --git a/register-autonomoustuff-repository/README.md b/register-autonomoustuff-repository/README.md
index ac7f0af7..349d3ec6 100644
--- a/register-autonomoustuff-repository/README.md
+++ b/register-autonomoustuff-repository/README.md
@@ -34,9 +34,9 @@ jobs:
## Inputs
-| Name | Required | Description |
-| --------- | -------- | ----------- |
-| rosdistro | true | ROS distro. |
+| Name | Required | Description |
+| --------- | -------- | --------------- |
+| rosdistro | true | The ROS distro. |
## Outputs
diff --git a/spell-check/README.md b/spell-check/README.md
index 94413973..f512c5aa 100644
--- a/spell-check/README.md
+++ b/spell-check/README.md
@@ -18,7 +18,7 @@ jobs:
- name: Run spell-check
uses: autowarefoundation/autoware-github-actions/spell-check@tier4/proposal
with:
- cspell-json-url: https://raw.githubusercontent.com/tier4/autoware-spell-check-dict/main/cspell/.cspell.json
+ cspell-json-url: https://raw.githubusercontent.com/tier4/autoware-spell-check-dict/main/.cspell.json
```
## Inputs
diff --git a/spell-check/action.yaml b/spell-check/action.yaml
index c2036d02..7006bbed 100644
--- a/spell-check/action.yaml
+++ b/spell-check/action.yaml
@@ -20,6 +20,6 @@ runs:
shell: bash
- name: Run spell check
- uses: streetsidesoftware/cspell-action@v1.3.5
+ uses: streetsidesoftware/cspell-action@v1
with:
config: .cspell.json
diff --git a/sync-branches/README.md b/sync-branches/README.md
index 2be7f994..7b1de93b 100644
--- a/sync-branches/README.md
+++ b/sync-branches/README.md
@@ -43,7 +43,6 @@ jobs:
| sync-target-repository | true | The sync target repository. |
| sync-target-branch | true | The sync target branch. |
| pr-title | true | Please see `peter-evans/create-pull-request`. |
-| pr-body | false | The same as above. |
| pr-labels | false | The same as above. |
| pr-assignees | false | The same as above. |
| pr-reviewers | false | The same as above. |
diff --git a/sync-branches/action.yaml b/sync-branches/action.yaml
index 1283c94a..599efa79 100644
--- a/sync-branches/action.yaml
+++ b/sync-branches/action.yaml
@@ -20,10 +20,6 @@ inputs:
pr-title:
description: ""
required: true
- pr-body:
- description: ""
- required: false
- default: ""
pr-labels:
description: ""
required: false
@@ -44,7 +40,7 @@ inputs:
runs:
using: composite
steps:
- - name: Checkout repository
+ - name: Check out repository
uses: actions/checkout@v2
with:
ref: ${{ inputs.base-branch }}
@@ -61,6 +57,12 @@ runs:
git reset --hard "sync-target/${{ inputs.sync-target-branch }}"
shell: bash
+ - name: Generate changelog
+ id: generate-changelog
+ uses: autowarefoundation/autoware-github-actions/generate-changelog@tier4/proposal
+ with:
+ git-cliff-args: origin/${{ inputs.base-branch }}..HEAD
+
- name: Create PR
id: create-pr
uses: peter-evans/create-pull-request@v3
@@ -69,7 +71,7 @@ runs:
base: ${{ inputs.base-branch }}
branch: ${{ inputs.sync-pr-branch }}
title: ${{ inputs.pr-title }}
- body: ${{ inputs.pr-body }}
+ body: ${{ steps.generate-changelog.outputs.changelog }}
labels: ${{ inputs.pr-labels }}
assignees: ${{ inputs.pr-assignees }}
reviewers: ${{ inputs.pr-reviewers }}
diff --git a/sync-files/README.md b/sync-files/README.md
index 860317b7..c097ba9a 100644
--- a/sync-files/README.md
+++ b/sync-files/README.md
@@ -71,7 +71,6 @@ The specifications are:
| pr-branch | false | The same as above. |
| pr-title | false | The same as above. |
| pr-commit-message | false | The same as above. |
-| pr-body | false | The same as above. |
| pr-labels | false | The same as above. |
| pr-assignees | false | The same as above. |
| pr-reviewers | false | The same as above. |
diff --git a/sync-files/action.yaml b/sync-files/action.yaml
index a806c91f..c9ef7540 100644
--- a/sync-files/action.yaml
+++ b/sync-files/action.yaml
@@ -25,10 +25,6 @@ inputs:
description: ""
required: false
default: "chore: sync files"
- pr-body:
- description: ""
- required: false
- default: ""
pr-labels:
description: ""
required: false
@@ -74,6 +70,7 @@ runs:
run: |
set -e
+ touch /tmp/result.yaml
for repository in $(yq e ".[].repository" /tmp/sync-files.yaml); do
yq e ".[] | select(.repository == \"$repository\")" /tmp/sync-files.yaml > /tmp/repo-config.yaml
@@ -95,18 +92,35 @@ runs:
replace=$(yq e ".replace" /tmp/file-config.yaml)
delete_orphaned=$(yq e ".delete-orphaned" /tmp/file-config.yaml)
- target_file="/tmp/repository/$source_path"
- if [ -f "$target_file" ]; then
- if [ -f "$dest_file" ] && [ "replace" != "true" ]; then
- echo "Skip copying to $dest_file."
+ source_file="/tmp/repository/$source_path"
+ if [ -f "$source_file" ]; then
+ if [ -f "$dest_path" ] && [ "$replace" != "true" ]; then
+ echo "Skip copying to $dest_path."
+ yq -i e ".skipped += [\"$dest_path\"]" /tmp/result.yaml
continue
fi
- echo "Copy $source_path to $dest_path."
- cp "$target_file" "$dest_path"
+ if ! [ -f "$dest_path" ]; then
+ echo "Newly copy $source_path to $dest_path."
+ cp "$source_file" "$dest_path"
+ yq -i e ".added += [\"$dest_path\"]" /tmp/result.yaml
+ elif ! diff "$source_file" "$dest_path"; then
+ echo "Copy $source_path to $dest_path."
+ cp "$source_file" "$dest_path"
+ yq -i e ".changed += [\"$dest_path\"]" /tmp/result.yaml
+ else
+ echo "$source_path and $dest_path are the same."
+ yq -i e ".not-changed += [\"$dest_path\"]" /tmp/result.yaml
+ fi
elif [ "$delete_orphaned" = "true" ]; then
- echo "Delete $dest_path."
- rm "$dest_path" || true
+ if [ -f "$dest_path" ]; then
+ echo "Delete $dest_path."
+ rm "$dest_path"
+ yq -i e ".deleted += [\"$dest_path\"]" /tmp/result.yaml
+ else
+ echo "$dest_path was not found."
+ yq -i e ".not-found += [\"$dest_path\"]" /tmp/result.yaml
+ fi
fi
done
done
@@ -114,6 +128,41 @@ runs:
git status
shell: bash
+ - name: Create PR body
+ id: create-pr-body
+ run: |
+ # Define function
+ body_lines=()
+ function add-section() {
+ title="$1"
+ key="$2"
+
+ body_lines+=("## $title" "")
+ for f in $(yq e ".$key[]" /tmp/result.yaml); do
+ body_lines+=("- $f")
+ done
+ body_lines+=("")
+ }
+
+ # Add sections
+ add-section "Skipped" "skipped"
+ add-section "Added" "added"
+ add-section "Changed" "changed"
+ add-section "Not changed" "not-changed"
+ add-section "Deleted" "deleted"
+ add-section "Not found" "not-found"
+
+ # Workaround for multiline strings
+ # https://github.community/t/set-output-truncates-multiline-strings/16852
+ body=$(printf "%s\n" "${body_lines[@]}")
+ body="${body//'%'/'%25'}"
+ body="${body//$'\n'/'%0A'}"
+ body="${body//$'\r'/'%0D'}"
+
+ # Output
+ echo ::set-output name=body::"$(printf "%s\n" "${body[@]}")"
+ shell: bash
+
- name: Create PR
id: create-pr
uses: peter-evans/create-pull-request@v3
@@ -123,7 +172,7 @@ runs:
branch: ${{ inputs.pr-branch }}
title: ${{ inputs.pr-title }}
commit-message: ${{ inputs.pr-commit-message }}
- body: ${{ inputs.pr-body }}
+ body: ${{ steps.create-pr-body.outputs.body }}
labels: ${{ inputs.pr-labels }}
assignees: ${{ inputs.pr-assignees }}
reviewers: ${{ inputs.pr-reviewers }}
diff --git a/sync-files/parse_config.py b/sync-files/parse_config.py
index 71bc6c6d..5ad190db 100644
--- a/sync-files/parse_config.py
+++ b/sync-files/parse_config.py
@@ -17,20 +17,20 @@ def main():
if not re.match(r"^http", repo_config["repository"]):
repo_config["repository"] = f"https://github.com/{repo_config['repository']}.git"
- if not repo_config.get("ref"):
+ if "ref" not in repo_config:
repo_config["ref"] = ""
for item in repo_config["files"]:
- if not item.get("source"):
+ if "source" not in item:
raise RuntimeError(f"'source' is not defined in {item}")
- if not item.get("dest"):
+ if "dest" not in item:
item["dest"] = item["source"]
- if not item.get("replace"):
+ if "replace" not in item:
item["replace"] = True
- if not item.get("delete-orphaned"):
+ if "delete-orphaned" not in item:
item["delete-orphaned"] = True
print(yaml.dump(config))