1
1
mirror of https://github.com/orhun/git-cliff.git synced 2024-11-29 15:52:49 +03:00
Commit Graph

1175 Commits

Author SHA1 Message Date
tison
b8045e97ed
feat(changelog): support count_tags option (#599)
* feat: support count_tags option

Signed-off-by: tison <wander4096@gmail.com>

* add fixures tags

Signed-off-by: tison <wander4096@gmail.com>

* fixup

Signed-off-by: tison <wander4096@gmail.com>

* add count_tags to args

Signed-off-by: tison <wander4096@gmail.com>

* add docs

Signed-off-by: tison <wander4096@gmail.com>

* run cargo fmt

Signed-off-by: tison <wander4096@gmail.com>

* fixup default to true

Signed-off-by: tison <wander4096@gmail.com>

* docs(website): update documentation about count_tags

---------

Signed-off-by: tison <wander4096@gmail.com>
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-08-13 12:22:54 +03:00
Orhun Parmaksız
388b007b0f
chore(config): check for null commit_id in detailed template (#786) 2024-08-08 22:37:40 +03:00
DerTiedemann
ccf2ab769a
feat(parser): allow whole commit context to be used in commit parsers (#758)
* fix: reorder execution to have context poplulated before parsing/pruning

* feat: allow field to read from context object

* fix: add tests

* fix: add legacy fix for body field

* test: add fixture

* docs: update documentation

* refactor: clean up implementation

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-08-08 22:30:36 +03:00
Orhun Parmaksız
85bfa952e4
docs(website): clarify authentication with GitHub token (#787) 2024-08-08 10:57:00 +03:00
Amin Yahyaabadi
8430c5c539
perf(changelog): cache commit retain checks (258 times faster generation) (#772)
* perf: cache commit retain checks + 87 times faster generation

This caches the commit retain checks whenever include/exclude paths are specified.

This speeds up changelog generation by `87` times in a big repository I have:
```
Now: 0.237 s
Before:  20.633 s
```

* perf: use separate retain_commit cache for each repository

* fix: use cacache for parallel git-local cache - 258 times faster

Sled fails to open the cache if multiple git-cliff processes run on the same repository. This fixes the issue by using cacache which stores the cache locally under .git/git-cliff

* fix: cache changed files of a commit directly

This slows down the retain_commit check by ~2 times, but allows reusing the cache in case the include/exclude patterns change.
This is beneficial for running in monorepos where git-cliff runs multiple times to generate changelog for different subsets of the repo

* fix: consider include/exclude patterns together

* fix: handle first commit for changed_files

* fix: normalize glob patterns to ignore ./

* docs: add docs for retain_commit_check and cache algorithms

* fix: add ** if a pattern represents a directory

* test: add tests for should retain commit checks

* fix: correctly get the files list for the first commit

* test: add test email/name for git commits

* fix: use / for path joining in entries to match the git behaviour

* fix: revert change of include/exclude patterns to slices

The slices are normalized, so an owned pattern is needed to avoid type mismatch between new normalized/unchanged patterns

* refactor: polish implementation

* refactor: apply clippy suggestion

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-08-06 23:04:17 +03:00
Orhun Parmaksız
2471745e11
fix(config): allow using environment variables without config file present (#783) 2024-08-06 15:58:35 +03:00
Orhun Parmaksız
4b33e7e986
feat(remote): activate integration if remote is set manually (#782) 2024-08-04 22:35:32 +03:00
DaniPopes
4b0c0eb09a
refactor(lib): clean up some code (#709)
* refactor: clean up some code

* Update git-cliff/src/lib.rs

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>

* review

* fmt

* fix: read before opening the file to prepend

* style: update formatting

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-08-04 00:05:26 +03:00
Orhun Parmaksız
35b886e50d
chore(config): fix comment for changelog header template 2024-08-01 19:58:54 +03:00
Arturo Rodríguez
f9e500e27c
chore(config): update keepachangelog.toml comment (#779)
Fix typo on header comment
2024-08-01 19:55:55 +03:00
Binbin
9dbf47bac5
feat(bump): support bumping to a specific semver type (#744)
* feat: support bump a specific version type

* let --bump accept optional enum

* doc: update document for --bump

* test: add bump version fixtures tests

* refactor: polish implementation

* refactor: fix typo

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-07-31 08:48:03 +03:00
myl7
e2fb043078
docs(config): fix typo in comment of default config file (#776) 2024-07-30 18:49:59 +03:00
Amin Yahyaabadi
35dc1e46fd
feat(profiler): support performance profiling via pprof (#768)
* feat: support performance profiling via pprof

This adds support for performance profiling that allows for finding the bottlenecks and performance optimizations.

It can be enabled via `profiler` feature and the `bench` build profile.

```shell
cargo build --profile=bench --features=profiler
```

* refactor(profiling): clean up implementation

* feat(ci): run profiler

* fix(ci): fetch all the history for profiler

* docs(website): add profiling docs

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-07-29 11:25:23 +03:00
Timothée Mazzucotelli
c208a9791e
docs(readme): add git-changelog to similar projects section (#774) 2024-07-28 13:59:18 +03:00
Orhun Parmaksız
c791418c7e
refactor(gitlab): clean up url encoding for GitLab 2024-07-28 09:12:43 +03:00
Anthony Butt
e3e7c07940
fix(gitlab): URL-encode the owner in remote requests for GitLab (#742)
Gitlab requires that the project path be fully encoded. See the docs for
details. https://docs.gitlab.com/ee/api/rest/#namespaced-path-encoding
Pulls in the urlencoding crate here. Might not be needed when you have
the choice to just update the documentation. I don't think the end user
should be required to url encode their own strings. It might be nicer to
just add the subgroup paradigm to the gitlab config in general for the
future. This will fix the problem for now.
2024-07-28 09:12:32 +03:00
Orhun Parmaksız
58b729c71f
docs(readme): add KaiCode Open Source Festival link
https://www.kaicode.org/2024.html
2024-07-27 22:50:31 +03:00
Jonas Fierlings
ecbabbfb39
feat(changelog): skip ssh and x509 signatures in tag messages (#748)
Git supports SSH and x509 signatures in addition to GPG signatures.
See <https://git-scm.com/docs/gitformat-signature#_description>.

The regex is not 100% accurate (e.g. this would allow `SSH MESSAGE`,
which is not part of the gitformat-signature description), but I
prioritized readability over correctness in this case (since the code is
for replacing text, not verifying the signature).
2024-07-27 22:11:20 +03:00
Orhun Parmaksız
61a59c6ba1
chore(npm): update yarn.lock
output of yarn install
2024-07-27 22:00:33 +03:00
Caleb Maclennan
dc144dd9d0
docs(website): correct inverted consequences of configuration value (#760) 2024-07-27 13:30:15 +03:00
Orhun Parmaksız
9f39bcb8bf
chore(cd): remove unnecessary git-cliff-action output file (#738) 2024-07-27 13:16:02 +03:00
Orhun Parmaksız
227a307d85
docs(website): add header to 2.4.0 blog post 2024-06-26 13:32:45 +03:00
Orhun Parmaksız
0ca3fbd2da
chore(release): prepare for v2.4.0 2024-06-26 12:55:35 +03:00
dependabot[bot]
2e3b8e79a7
chore(deps): bump git2 from 0.18.3 to 0.19.0 (#700)
Bumps [git2](https://github.com/rust-lang/git2-rs) from 0.18.3 to 0.19.0.
- [Changelog](https://github.com/rust-lang/git2-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/git2-rs/compare/git2-0.18.3...git2-0.19.0)

---
updated-dependencies:
- dependency-name: git2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-26 12:53:10 +03:00
Orhun Parmaksız
5558cc51b1
docs(website): add highlights for 2.4.0 (#729) 2024-06-26 12:49:31 +03:00
Mateusz Kurowski
854b411e47
docs(website): add more context about ignore_tags matching commits (#710)
Signed-off-by: Bukowa <gitbukowa@gmail.com>
2024-06-26 12:47:14 +03:00
dependabot[bot]
95c8138586
chore(deps): bump serde_json from 1.0.117 to 1.0.118 (#728)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.117 to 1.0.118.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.117...v1.0.118)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-26 12:46:37 +03:00
Orhun Parmaksız
e7807e13c4
feat(context): add repository path to template context (#721) 2024-06-25 23:41:37 +03:00
Meitar Reihan
3eb828e69a
feat(changelog): add tag message to release context (#713)
* feat: add tag message to release context

- add to the release context the tag's message if it exists
- add message to the default config

* feat(args): add `--with-tag-message` argument

to allow setting the message of the last release in the context

* docs: update args

* docs: add adding-tag-messages

* refactor: polish implementation

* tests(test-tag-message): fix the template

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-06-22 13:29:49 +03:00
dependabot[bot]
5f31e0fac6
chore(deps): bump lazy_static from 1.4.0 to 1.5.0 (#726)
Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases)
- [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.4.0...1.5.0)

---
updated-dependencies:
- dependency-name: lazy_static
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-22 11:39:55 +03:00
Meitar Reihan
8e03356706
feat(bump): support bumping based on configurable custom pattern (#725)
* chore(deps): bump next_version from 0.2.17 to 0.2.18

Bumps [next_version](https://github.com/MarcoIeni/release-plz) from 0.2.17 to 0.2.18.
- [Release notes](https://github.com/MarcoIeni/release-plz/releases)
- [Changelog](https://github.com/MarcoIeni/release-plz/blob/main/CHANGELOG.md)
- [Commits](https://github.com/MarcoIeni/release-plz/compare/next_version-v0.2.17...next_version-v0.2.18)

---
updated-dependencies:
- dependency-name: next_version
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* feat: Support bumping version based on configurable custom pattern

closes #717

* refactor: clean up implementation

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-06-21 23:38:52 +03:00
dependabot[bot]
d642d33c27
chore(deps-dev): bump typescript from 5.4.5 to 5.5.2 in /website in the minor group (#723)
Bumps the minor group in /website with 1 update: [typescript](https://github.com/Microsoft/TypeScript).


Updates `typescript` from 5.4.5 to 5.5.2
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-21 20:48:56 +03:00
dependabot[bot]
9e152a2dc0
chore(deps): bump @easyops-cn/docusaurus-search-local from 0.44.1 to 0.44.2 in /website in the patch group (#724)
Bumps the patch group in /website with 1 update: [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local).


Updates `@easyops-cn/docusaurus-search-local` from 0.44.1 to 0.44.2
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.44.2/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-21 17:48:53 +03:00
dependabot[bot]
4a3edcaf5d
chore(deps): bump @easyops-cn/docusaurus-search-local from 0.44.0 to 0.44.1 in /website in the patch group (#720)
Bumps the patch group in /website with 1 update: [@easyops-cn/docusaurus-search-local](https://github.com/easyops-cn/docusaurus-search-local/tree/HEAD/packages/docusaurus-search-local).


Updates `@easyops-cn/docusaurus-search-local` from 0.44.0 to 0.44.1
- [Release notes](https://github.com/easyops-cn/docusaurus-search-local/releases)
- [Commits](https://github.com/easyops-cn/docusaurus-search-local/commits/v0.44.1/packages/docusaurus-search-local)

---
updated-dependencies:
- dependency-name: "@easyops-cn/docusaurus-search-local"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-20 10:27:19 +03:00
dependabot[bot]
2a4998db06
chore(deps): bump clap_complete from 4.5.5 to 4.5.6 (#722)
Bumps [clap_complete](https://github.com/clap-rs/clap) from 4.5.5 to 4.5.6.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.5...clap_complete-v4.5.6)

---
updated-dependencies:
- dependency-name: clap_complete
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-20 10:22:58 +03:00
dependabot[bot]
7f594e0425
chore(deps): bump url from 2.5.1 to 2.5.2 (#719)
Bumps [url](https://github.com/servo/rust-url) from 2.5.1 to 2.5.2.
- [Release notes](https://github.com/servo/rust-url/releases)
- [Commits](https://github.com/servo/rust-url/compare/v2.5.1...v2.5.2)

---
updated-dependencies:
- dependency-name: url
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 11:53:37 +03:00
dependabot[bot]
7ff4196287
chore(deps): bump reqwest from 0.12.4 to 0.12.5 (#715)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.12.4 to 0.12.5.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.4...v0.12.5)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 12:14:58 +03:00
dependabot[bot]
1d4d955955
chore(deps): bump docker/build-push-action from 5 to 6 (#714)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 12:14:09 +03:00
Buk Bukowski
94891c2c27
feat(args): add --ignore-tags argument (#696)
* feat(cli,args): allow overwriting `ignore_tags` argument

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(lint): cargo fmt

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(lint): clippy

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* Revert "chore(lint): clippy"

This reverts commit f307647f87.

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* Revert chore(lint): cargo fmt in changelog.rs

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore: git update-index --chmod=+x .github/fixtures/test-cli-arg-ignore-tags/commit.sh

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(lint): fix formatting

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* revert changes to test-fixtures-locally.sh

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* revert changes to .gitignore

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore: change doc in args.rs and doc

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* Revert "chore(lint): fix formatting"

This reverts commit c829865feb.

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* style(lint): rustfmt

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* tests(fixtures): uncomment commit

* tests(fixtures): fix expected.md

---------

Signed-off-by: Bukowa <gitbukowa@gmail.com>
2024-06-17 20:47:14 +03:00
Cyclonit
9fc12bb90c
feat(changelog): make changelog.header a template (#698)
* feat(changelog): make changelog.header a template (#697)

* refactor: clean up implementation

* docs: update the description of header field

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-06-17 20:43:00 +03:00
Jan Ferdinand Sauer
50c240c25b
feat(changelog): support parsing commits by footer (#569)
* feat: Enable footer-based commit parsing

Enable defining parsers for a commit's footer, similar to the already-
present commit parsers for a commit's message or body.

For example:

```toml
commit_parsers = [
  { footer = "changelog: ignore", skip = true },
]
```

Due to an inconsistency between the conventional commits specification
and its reference parser, footers are currently interpreted as
`key:value` instead of the (correct) `key: value`. See
https://github.com/conventional-commits/parser/issues/47 for details.
As a future-proof workaround, you can use `key: ?value` in the regex.

* chore: fix typo

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-06-16 19:32:39 +03:00
Buk Bukowski
dabe716c20
fix(fixture): support running fixtures on mingw64 (#708)
Signed-off-by: Bukowa <gitbukowa@gmail.com>
2024-06-15 21:47:41 +03:00
Orhun Parmaksız
bea49161e9
refactor(bump): add documentation and simplify implementation 2024-06-15 21:22:31 +03:00
Buk Bukowski
734150020e
feat(bump): support setting the initial_tag (#701)
* feat: add `initial_tag` to `bump` - allows changing from default `0.1.0` when using `bump` and no tags are found

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(tests): add `test-bump-initial-tag-default`

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(tests): add `test-bump-initial-tag-cli-arg`

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(tests): add `test-bump-initial-tag`

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(ci,tests): add tests to `text-fixtures.yml`

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(ci,tests): check if cli arg overwrites config file

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(ci,tests): fix chmod for commit files

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(docs): add cli flag to args.md

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(lint): rustfmt

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* chore(lint): fix formatting

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* Revert "chore(docs): add cli flag to args.md"

This reverts commit 1499e40df2.

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* feat(cli,args): remove `bump-initial-flag` and use `tag`

Signed-off-by: Bukowa <gitbukowa@gmail.com>

* Revert "chore(lint): fix formatting"

This reverts commit 02717efa19.

Signed-off-by: Bukowa <gitbukowa@gmail.com>

---------

Signed-off-by: Bukowa <gitbukowa@gmail.com>
2024-06-15 21:22:23 +03:00
ThetaDev
403d3dcd32
feat(codeberg): add Gitea support (#680)
* feat: add gitea integration

* fix: several fixes to get gitea working, add test fixture

* docs: update docs

* fix: cargo fmt

* fix: remove dbg trait

* fix: tests

* chore: remove vscode settings

* refactor: cleanup implementation

---------

Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2024-06-15 20:42:15 +03:00
Orhun Parmaksız
5b58a3771d
style(lint): fix formatting 2024-06-15 18:16:24 +03:00
Orhun Parmaksız
d14774ae4a
feat(changelog): make remote data available in context (#703) 2024-06-15 18:05:17 +03:00
Buk Bukowski
b7e323f8ec
style(lint): fix formatting (#702)
Signed-off-by: Bukowa <gitbukowa@gmail.com>
2024-06-15 16:40:24 +03:00
Thomas Carmet
eac2195963
docs(website): fix link to github-keepachangelog template (#694) 2024-06-13 10:25:13 +03:00
Buk Bukowski
4cd18c2bcd
docs(website): add information about --bump with tag prefixes (#695)
Signed-off-by: Bukowa <gitbukowa@gmail.com>
2024-06-13 10:24:25 +03:00