Commit graph

78 commits

Author SHA1 Message Date
a9080098ee fix(gitlab): use project path wherever possible
Turns out that all we need is the path, and not the project id. The path
is way more user friendly, and we can easily get it from a CI variable
or combine it from the namespace & project name.
2024-09-08 21:05:29 +02:00
634eac3b76
fix(parser): invalid handling of empty lines (#53)
GitLab generates commit messages of the pattern "scope: message\n" if no
body is present. This throws up the conventional commits parser we use,
and results in the error message "missing a blank line".

We now `strings.TrimSpace()` the commit message to avoid this problem.
2024-09-08 21:05:18 +02:00
ee5c7aa142
fix(cli): command name in help output (#52) 2024-09-08 21:01:46 +02:00
2fba5414e5
fix(gitlab): hardcoded project id (#51)
The GitLab project ID was still hardcoded to my playground project on
GitLab.com.

This commit instead reads from the predefined GitLab CI/CD variable for
the projects ID (`CI_PROJECT_ID`).
2024-09-08 20:03:19 +02:00
48d9ede0a2
feat: add support for GitLab repositories (#49) 2024-09-07 21:54:25 +02:00
5ea41654a7
fix(parser): continue on unparsable commit message (#48)
We should not fail the whole process if a single commit message is
unparsable.

Instead we now log the issue and ignore the commit.
2024-09-07 21:51:15 +02:00
2010ac1143
refactor(github): add pagination helper (#47) 2024-09-07 21:36:17 +02:00
af505c94c6
refactor: labels as structs with descriptions (#46) 2024-09-07 21:33:28 +02:00
0a199e693f
chore(main): release v0.3.0 (#38)
Co-authored-by: releaser-pleaser <>
2024-09-06 23:46:04 +02:00
b9dd0f986c
feat(cli): show release PR url in log messages (#44)
Makes navigating to the PR way easier when looking at the logs.

This requires a new `Forge.PullRequestURL()` method that needs to be
implemented for all forges.
2024-09-06 23:27:48 +02:00
2effe5e72d
feat: edit commit message after merging through PR (#43)
Closes #5
2024-09-06 23:17:06 +02:00
36a0b90bcd
refactor: releasepr markdown handling (#42) 2024-09-01 14:19:13 +02:00
0750bd6b46
feat: format markdown in changelog entry (#41) 2024-08-31 22:23:01 +02:00
4cb22eae10
refactor: replace markdown renderer (#40)
The new renderer is actually published as a module and can be extended
through the usual goldmark extensions.
2024-08-31 16:49:07 +02:00
a0a064d387
refactor: move things to packages (#39) 2024-08-31 15:23:21 +02:00
44184a77f9 refactor: remove unwanted log 2024-08-30 19:47:12 +02:00
971b6e6ef7
feat: less repetitive entries for for prerelease changelogs (#37)
Right now we always show all new releasable commits since the last
_stable_ release.

If a project publishes multiple pre-releases in a row, they all repeat
the same lines with a few new additions.

On the other hand, when we cut a stable release, we do want to show all
changes since the last stable release, as we can not expect users to
read the changelog of pre-releases.

As a compromise, the code now looks at the type of release that is being
created, and decides based on that if we will look at STABLE..HEAD
(stable release) or LATEST..HEAD (pre-release).

Close #33
2024-08-30 19:44:51 +02:00
693ca21e32
refactor: load existing release pr earlier (#36)
We need information from the release pr for the following steps, as the
user can override various behaviours by commenting/labeling the release
pr.
2024-08-30 19:27:42 +02:00
1f39df03c5
chore(main): release v0.2.0 (#24)
Co-authored-by: releaser-pleaser <>
2024-08-25 23:01:48 +02:00
57a1d80600 docs: add link to github repo 2024-08-25 22:31:39 +02:00
499f127b9e
docs: add all current features (#34) 2024-08-25 22:13:56 +02:00
2567f0ae8b
ci: run on pr updates from main branch (#30)
With `pull_request`, we run in the context of the pull request branch.

- This means we run with the code from the PR branch, possibly breaking
  the current release PR for this repo with in-progress, unreviewed changes.
- This means that the secret is not available on Pull Requests from
  forks.

Switching to `pull_request_target` means we always run in the scope of
the original repository. The secret is available and the code is checked
out from our main branch.

`pull_request_target` has security considerations, but they do not apply
here as we do not check out or run code from the (external, malicious) PR.
2024-08-25 17:16:43 +02:00
2cd73a8679
ci: use current code for releaser-pleaser action (#28)
The previous job always used the last release version of
releaser-pleaser. This caused two issues:

- if new flags were added to `action.yml` since the last release, the
  program errored because the flags are unknown.
- right after merging a release pr, the image reference was already
  updated, but no new container image was built yet.

This fixes both issues, by using a locally built version of
releaser-pleaser, which is always up-to-date and available.
2024-08-25 13:54:21 +02:00
1ede0bef10
feat(cli): add --version flag (#29) 2024-08-25 13:47:55 +02:00
a67b510284
docs: setup mdbook (#27) 2024-08-24 16:23:42 +02:00
3e51dd8495
chore: update version in action.yml (#26) 2024-08-24 15:44:28 +02:00
a841447063
fix(action): invalid quoting for extra-files arg (#25) 2024-08-24 15:39:55 +02:00
0f8d3cca3c
chore(main): release v0.2.0-beta.2 (#22)
Co-authored-by: releaser-pleaser <>
2024-08-24 15:27:27 +02:00
04748a710f
fix(ci): ko pipeline permissions (#23) 2024-08-24 15:26:54 +02:00
e96e5107e5
chore(main): release v0.2.0-beta.1 (#19)
Co-authored-by: releaser-pleaser <>
2024-08-24 15:15:18 +02:00
60b73b6dd9
fix(ci): building release image fails (#21) 2024-08-24 15:14:27 +02:00
9aec0ea7da
chore(main): release v0.2.0-beta.0 (#17) 2024-08-24 15:06:59 +02:00
f6f5e5a143 chore: go mod tidy 2024-08-24 14:49:30 +02:00
6a7d920359
refactor: various cleanups (#18) 2024-08-23 23:50:12 +02:00
d5fd606577
chore: enable some more linters (#16) 2024-08-23 22:35:06 +02:00
f0eed8cc56
refactor: move changelog file to updater interface (#15) 2024-08-23 22:17:38 +02:00
47de2f97bc
feat: update version references in any files (#14) 2024-08-23 22:02:58 +02:00
589fdde401 chore: update golangci-lint 2024-08-20 17:37:46 +02:00
6f616f9923 chore: upgrade to go 1.23 2024-08-20 17:37:46 +02:00
ffcc3b60cb chore: update dependencies 2024-08-20 17:37:46 +02:00
08e7b31eff ci: output test coverage file 2024-08-20 17:37:46 +02:00
69796325c7 ci: codecov coverage 2024-08-20 17:37:46 +02:00
0c93645b21 refactor: smaller fixes 2024-08-20 17:37:46 +02:00
fbd47fac62 refactor: remove unused code 2024-08-20 17:37:46 +02:00
5882a6bf2c refactor: move commit analyzing out of forge 2024-08-20 17:37:46 +02:00
f2a982d7a0 refactor: cleanup label handling 2024-08-20 17:37:46 +02:00
32734d9aa1 refactor: move run logic outside of cli code 2024-08-20 17:37:46 +02:00
d8daad7623
refactor: Various cleanup (#11)
* refactor: interface for commit message analyzer

* refactor: interface for versioning strategy

* refactor(releasepr): rebuild pr description

Build PR description from scratch and parsed values instead of copying some of the AST to next description.
2024-08-08 19:01:44 +02:00
8f106e4028 ci: use custom PAT for github api so tag workflow is started 2024-08-06 00:17:43 +02:00
github-actions[bot]
d5bc18b904
chore(main): release v0.1.0 (#2)
Co-authored-by: releaser-pleaser <>
2024-08-06 00:11:38 +02:00