Initial implementation of pluginctl CLI tool
- Add comprehensive info command with plugin manifest parsing - Implement global --plugin-path flag and PLUGINCTL_PLUGIN_PATH env var - Add full test suite with fixtures for various plugin configurations - Set up build system with Makefile, goreleaser, and golangci-lint - Include development tools with pinned versions for reproducible builds 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
commit
fd6e4a4513
21 changed files with 4949 additions and 0 deletions
129
.goreleaser.yml
Normal file
129
.goreleaser.yml
Normal file
|
@ -0,0 +1,129 @@
|
|||
# .goreleaser.yml
|
||||
# GoReleaser configuration for pluginctl
|
||||
version: 2
|
||||
|
||||
# Project information
|
||||
project_name: pluginctl
|
||||
|
||||
# Before hooks
|
||||
before:
|
||||
hooks:
|
||||
- go mod tidy
|
||||
- go generate ./...
|
||||
|
||||
# Build configuration
|
||||
builds:
|
||||
- id: pluginctl
|
||||
binary: pluginctl
|
||||
main: ./cmd/pluginctl
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
goos:
|
||||
- linux
|
||||
- windows
|
||||
- darwin
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
- "386"
|
||||
goarm:
|
||||
- "6"
|
||||
- "7"
|
||||
ignore:
|
||||
- goos: windows
|
||||
goarch: "386"
|
||||
- goos: windows
|
||||
goarch: arm64
|
||||
ldflags:
|
||||
- -s -w
|
||||
flags:
|
||||
- -trimpath
|
||||
|
||||
# Archive configuration
|
||||
archives:
|
||||
- id: pluginctl
|
||||
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
|
||||
files:
|
||||
- README.md
|
||||
- LICENSE
|
||||
|
||||
# Checksums
|
||||
checksum:
|
||||
name_template: "checksums.txt"
|
||||
algorithm: sha256
|
||||
|
||||
# Snapshot configuration
|
||||
snapshot:
|
||||
version_template: "{{ incpatch .Version }}-next"
|
||||
|
||||
# Changelog configuration
|
||||
changelog:
|
||||
sort: asc
|
||||
use: github
|
||||
filters:
|
||||
exclude:
|
||||
- "^docs:"
|
||||
- "^test:"
|
||||
- "^ci:"
|
||||
- "^build:"
|
||||
- "^style:"
|
||||
- "^refactor:"
|
||||
- "^chore:"
|
||||
- "merge conflict"
|
||||
- "Merge pull request"
|
||||
- "Merge remote-tracking branch"
|
||||
- "Merge branch"
|
||||
groups:
|
||||
- title: "New Features"
|
||||
regexp: "^.*feat[(\\w)]*:+.*$"
|
||||
order: 0
|
||||
- title: "Bug Fixes"
|
||||
regexp: "^.*fix[(\\w)]*:+.*$"
|
||||
order: 1
|
||||
- title: "Documentation"
|
||||
regexp: "^.*docs[(\\w)]*:+.*$"
|
||||
order: 2
|
||||
- title: "Other Changes"
|
||||
order: 999
|
||||
|
||||
# Release configuration
|
||||
release:
|
||||
github:
|
||||
owner: mattermost
|
||||
name: pluginctl
|
||||
draft: false
|
||||
prerelease: auto
|
||||
name_template: "v{{ .Version }}"
|
||||
header: |
|
||||
## pluginctl {{ .Version }}
|
||||
|
||||
Welcome to this new release of pluginctl! 🎉
|
||||
|
||||
### What's new
|
||||
footer: |
|
||||
## Installation
|
||||
|
||||
### Binary Installation
|
||||
Download the appropriate binary for your platform from the assets below.
|
||||
|
||||
### Package Managers
|
||||
```bash
|
||||
# Using go install
|
||||
go install github.com/mattermost/pluginctl/cmd/pluginctl@{{ .Tag }}
|
||||
```
|
||||
|
||||
### From Source
|
||||
```bash
|
||||
git clone https://github.com/mattermost/pluginctl.git
|
||||
cd pluginctl
|
||||
make install
|
||||
```
|
||||
|
||||
**Full Changelog**: https://github.com/mattermost/pluginctl/compare/{{ .PreviousTag }}...{{ .Tag }}
|
||||
|
||||
# Announce configuration (optional)
|
||||
announce:
|
||||
slack:
|
||||
enabled: false
|
||||
discord:
|
||||
enabled: false
|
Loading…
Add table
Add a link
Reference in a new issue