feat(forgejo-release): Init plugin #38
No reviewers
Labels
No labels
automerge
bug
dependencies
duplicate
enhancement
help wanted
invalid
migrations
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Reference
Personal/woodpecker-plugins!38
Loading…
Reference in a new issue
No description provided.
Delete branch "forgejo-release"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Review Summary
The
forgejo-releaseplugin implementation is solid overall. It correctly follows workspace conventions (RPITIT pattern, proper dependency management), has good test coverage, and handles the release workflow correctly (draft vs published releases, conventional commit parsing, breaking changes).The bot's inline findings are mostly minor or incorrect:
split_once(':')usage (line 328) already handles optional space per Conventional Commits spec (description is trimmed)forgejo_url(validated at line 166 viavalidate_forgejo_url)validate_git_refmitigates injection concerns in the compare rangeAdditional findings:
list_tagsassumes Forgejo returns tags sorted newest-first to find the previous tag. The API doesn't guarantee sort order - this could pick the wrong "previous" tag.CI_COMMIT_SHAfallback: The plugin only works on tag pipelines. Consider documenting this limitation or supporting manual tag specification.These are low-risk for initial release but worth addressing.
*🤖 Review by opencode (opencode/nemotron-3-ultra-free) — verdict: approve
Code review findings from opencode.
@ -0,0 +170,4 @@let message = commit.commit.as_ref().and_then(|commit| commit.message.as_deref())@ -0,0 +185,4 @@let breaking = if change.breaking { " **BREAKING**" } else { "" };let scope = if change.scope.is_empty() {String::new()} else {@ -0,0 +233,4 @@breaking,pr,})}Code review findings from opencode.
@ -0,0 +170,4 @@owner: &str,repo: &str,) -> String {let mut groups: BTreeMap<String, Vec<Change>> = BTreeMap::new();@ -0,0 +177,4 @@.as_ref().and_then(|commit| commit.message.as_deref()).unwrap_or("");if let Some(change) = parse_commit(message, forgejo_url, owner, repo) {View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.