Commit Graph
5039 Commits
Author SHA1 Message Date
David Newhall II 009c3a898b Merge pull request #1067 from unpoller/feat/code-signing
ci: Authenticode-sign Windows and notarize macOS universal binary
2026-08-30 14:23:44 -07:00
David Newhall IIandCursor eeda665b7e ci: Authenticode-sign Windows and notarize the macOS universal binary.
Release tags now fail closed without signing secrets, ship a signed Windows PE via house signerd, and replace per-arch Darwin tarballs with one stapled universal archive.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 13:06:00 -07:00
Cody Lee 3a595a6896 Merge pull request #1065 from unpoller/fix/remote-default-site-name-override-1057
fix: respect configured default_site_name_override in remote mode
v5.1.0
2026-08-27 16:59:25 -05:00
Cody LeeandCursor ce4cfe3971 fix: respect configured default_site_name_override in remote mode
Remote API discovery was unconditionally overwriting default_site_name_override
with the console name for Cloud Gateways. Only apply the console name fallback
when the user has not already configured an override.

Fixes #1057

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 16:57:41 -05:00
Cody Lee 71ac64499c Merge pull request #1064 from unpoller/feat/influxdb-v3-support
Add InfluxDB v3 support and fix tag/field schema collisions
2026-08-27 16:55:55 -05:00
Cody LeeandCursor 9bc7f2c5bf Complete InfluxDB v3 rollout: tests, docs, and docker example.
Add v3 integration and version tests, migration notes, InfluxDB 3 docker-compose stack, and README updates to finish the remaining plan phases.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 16:24:09 -05:00
Cody LeeandCursor 5e31d2f252 Add InfluxDB v3 support and fix tag/field schema collisions.
Introduce explicit version selection with the influxdb3-go client alongside existing v1 and v2 paths, and resolve overlapping tag/field keys required for InfluxDB 3 write validation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 15:49:59 -05:00
Cody Lee 3df98dcc45 Merge pull request #1063 from unpoller/fix/release-makefile-go-install
fix: use go install for release build tool dependencies
v5.0.1
2026-08-27 13:00:54 -05:00
Cody LeeandCursor de8a6e46f1 fix: use go install for release build tool dependencies
GoReleaser's make man hook failed because go get no longer works
outside a module. Replace deprecated go get with go install for
md2roff and rsrc.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 12:58:36 -05:00
Cody Lee 6e468667cd Merge pull request #1056 from unpoller/feat/protect-device-metrics
Add UniFi Protect device metrics
v5.0.0
2026-08-27 12:50:56 -05:00
Cody Lee 98e95050e2 Merge branch 'master' into feat/protect-device-metrics 2026-08-27 12:12:17 -05:00
Cody Lee 9472f349d1 Merge pull request #1062 from unpoller/fix/golangci-lint-go127
ci: bump golangci-lint to v2.13 for Go 1.27 deps
2026-08-27 12:11:59 -05:00
Cody LeeandCursor b753232e6a ci: bump golangci-lint to v2.13 for Go 1.27 deps
golangci-lint v2.9 is built with Go 1.26 and panics when type-checking
dependencies that include go1.27-only source files.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 12:09:13 -05:00
Cody Lee cb639e0c5c Merge branch 'master' into feat/protect-device-metrics 2026-08-27 09:58:11 -05:00
Cody Lee 2beb8839b9 Merge pull request #1060 from unpoller/dependabot/go_modules/all-b0668f810d 2026-08-24 18:30:47 -05:00
dependabot[bot] 9a8ad81abb build(deps): bump the all group with 2 updates
Bumps the all group with 2 updates: [github.com/DataDog/datadog-go/v5](https://github.com/DataDog/datadog-go) and [github.com/stretchr/testify](https://github.com/stretchr/testify).


Updates `github.com/DataDog/datadog-go/v5` from 5.9.0 to 5.9.1
- [Release notes](https://github.com/DataDog/datadog-go/releases)
- [Changelog](https://github.com/DataDog/datadog-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/datadog-go/compare/v5.9.0...v5.9.1)

Updates `github.com/stretchr/testify` from 1.12.0 to 1.12.1
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.12.0...v1.12.1)

---
updated-dependencies:
- dependency-name: github.com/DataDog/datadog-go/v5
  dependency-version: 5.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/stretchr/testify
  dependency-version: 1.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-24 02:42:40 +00:00
Cody Lee 192ee254f9 Merge pull request #1059 from NotAFlightRisk/fix-switch-stat-rx-packets v4.0.1 2026-08-22 22:01:42 -05:00
Iain 12ac4ed7f7 fix: influxdb and datadog reported tx packets under stat_rx_packets 2026-08-23 00:19:29 +01:00
Cody Lee 65ad210f20 feat: add UniFi Protect device metrics (closes #1015)
Collects Protect device data (sensors, cameras, lights, bridges, link
stations, NVR) via the official Integration API and exports it through
Prometheus, InfluxDB, and DataDog. Opt-in via save_protect_devices,
gated by protect_api_key.

Bumps github.com/unpoller/unifi to v6, which added the Protect API
client (breaking change: FlexInt/FlexBool/FlexFloat replace nullable
pointers).
2026-08-19 15:14:43 -05:00
Cody Lee 204b51bca4 Merge pull request #1055 from unpoller/feat/unas-support
feat: opt-in UNAS Pro support (#785) + fix AppendMetrics dropping SpeedTests
v4.0.0
2026-08-19 10:38:33 -05:00
Cody LeeandClaude Opus 5 01ac7ca2b7 refactor(unas): replace disable flag with enable, defaulting to off
`disable = false` is a double negative, and a bool named disable cannot
express opt-in anyway: it zero-values to false, so the flag was inert and
opt-in rested entirely on the device list being empty.

`enable` defaults to false and is now the real gate -- Initialize, Metrics
and DebugInput all return early unless it is set. The two existing guards
remain: an empty device list is still a no-op, and no default URL is ever
synthesized.

Configuring devices while enable is false is always a mistake, so that
combination logs one error instead of silently collecting nothing.

Adds binding tests for the flag across toml, json, yaml and UP_UNAS_ENABLE
(the env name derives from the xml tag, not the json one), plus a test that
all three shipped examples default to off. Both were verified by mutation:
breaking a struct tag or flipping an example fails the suite.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 09:34:02 -05:00
Cody LeeandClaude Opus 5 3d178bed8d fix: AppendMetrics silently dropped SpeedTests and the batch timestamp
AppendMetrics merges every slice field on Metrics except SpeedTests, so
speed test results were discarded on the way from the input to the
outputs. Both call sites start from a non-nil &Metrics{}, so this hit
every user on every poll: inputunifi collected the results, and the
export code in promunifi, influxunifi and datadogunifi was dead.

TS was dropped the same way. The aggregate starts bare and nothing
restored the timestamp, so it stayed zero -- and influxunifi's collect()
stamps any point that carries no timestamp of its own with the
aggregate's, which meant the zero time. Both Influx clients omit a zero
timestamp and let the server assign one, so the damage was limited to
points being stamped on arrival rather than at poll time, but it made
the fallback path meaningless. First writer wins: the earliest input's
timestamp is the one that describes the batch.

The failure mode here is what makes it worth guarding rather than just
patching. A new metric family needs a field on Metrics and an append
line in AppendMetrics, and omitting the second loses every metric in
that family with no error, no log line, and a passing build.
TestAppendMetricsCoversEverySliceField walks the struct by reflection
and fails naming any slice field that is not merged, so a new field is
covered the moment it is declared rather than when someone notices the
graphs are empty.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 07:59:04 -05:00
Cody LeeandClaude Opus 5 d5dfc771d5 feat: add opt-in UNAS Pro support (closes #785)
Adds a new `unas` input plugin that polls UNAS Pro storage consoles and
exports console health, storage pools, disks and shares to Prometheus,
InfluxDB and DataDog.

UNAS is a separate plugin rather than a device type inside inputunifi
because a storage-only console has no Network application: it cannot
answer /status, has no sites, and shares none of the UniFi device schema.

The plugin is opt-in and inert until an operator names a console. Opt-in
is expressed as "no devices configured" rather than a `disable` flag,
because a bool named `disable` zero-values to false and so cannot make a
plugin default-off. Initialize returns silently on an empty device list
and, unlike inputunifi, nothing synthesizes a default URL.

Two behaviours are worth calling out for reviewers:

  - Metrics returns (metrics, nil) whenever any console was collected.
    poller.collectMetrics uses `if err != nil {} else if metric != nil`,
    so returning both would discard every healthy console because one
    failed. Only a total failure returns an error.

  - Re-auth fires on total failure, not on a 401. A mid-session 401 from
    GetData surfaces as ErrInvalidStatusCode, not ErrAuthenticationFailed,
    so there is no sentinel to match on. Session expiry fails all four
    endpoints at once, which is exactly the total-failure case.

Prometheus metrics use the `unifi_unas_` prefix, which diverges from the
`unas_` prefix used by the reference implementation; dashboards built
against that will need query edits.

Requires unifi/v5 v5.31.0 for the UNAS client and structs.

Credit to alexgreenbank/unaspoller for mapping the endpoints.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 07:52:37 -05:00
Cody Lee ccc6ad5dae Merge pull request #1054 from unpoller/fix-1050-alarms-400-invalid-object
inputunifi: skip alarms endpoint on 400 api.err.InvalidObject
v3.5.0
2026-08-18 09:43:46 -05:00
Cody Lee 3dee271de0 inputunifi: skip alarms endpoint on 400 api.err.InvalidObject
Some Network 10.x+ controllers (UniFi OS, Network 10.5.67 confirmed)
return HTTP 400 api.err.InvalidObject from list/alarm instead of a 404
when the endpoint is gone, so collectAlarms fell through the existing
ErrEndpointNotFound skip and logged a real ERROR on every poll.

Fixes #1050
2026-08-18 09:41:03 -05:00
Cody Lee 75fd7d7042 Merge pull request #1053 from unpoller/fix-1045-wan-status-state-label
promunifi: add state label to wan_interface_state metric
2026-08-18 09:37:45 -05:00
Cody LeeandClaude Sonnet 5 58294420f8 promunifi: add state label to wan_interface_state metric
BACKUP and DISCONNECTED WAN interfaces both reported as 0, making
them indistinguishable in Prometheus (fixes #1045). InfluxDB and
DataDog already expose the raw state; this brings Prometheus in
line by adding a state label alongside the existing 1/0 gauge.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 09:32:14 -05:00
Cody Lee 75cf40e9fc Merge pull request #1052 from unpoller/fix-1030-input-panic-crash
Recover input plugin panics in poller goroutines (fixes #1030)
2026-08-18 09:23:46 -05:00
Cody Lee 12073ba523 Fix nil-pointer panic in collectEvents for disabled input plugins
InputUnifi.Events returns (nil, nil) when disabled, but collectEvents
dereferenced e.Logs unconditionally after a successful (err == nil)
call, crashing the poller. Same crash class as #1030, found while
verifying the recover-based fix.
2026-08-18 08:36:50 -05:00
Cody LeeandClaude Sonnet 5 8063f06777 Extract recover-and-convert-panic helpers for input plugin calls
Replaces the sent-bool guard duplicated across three goroutines with a
small per-call helper (recoverInitialize/recoverEvents/recoverMetrics)
that wraps the plugin call and converts a panic into a returned error.
Each goroutine then always sends its result exactly once, so there's
no risk of a double-send deadlocking the collector.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 08:31:34 -05:00
Cody LeeandClaude Sonnet 5 cc60dc9239 Recover input plugin panics in poller goroutines (fixes #1030)
Metrics/Events/Initialize each fan out to input plugins in their own
goroutines with no recover(), so a panic there (e.g. a UniFi
controller returning an unexpected Site Speed Test aggregated-dashboard
payload) crashes the whole process with exit code 2. Because the
panic occurs in a child goroutine, promunifi's existing safeRefresh
recover() in the caller's goroutine never sees it, which is why the
crash survived the earlier robustness work. This converts a panicking
input into a logged/returned error so polling continues instead of
crashing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 15:36:37 -05:00
Cody Lee a83d2cb019 Merge pull request #1051 from unpoller/dependabot/go_modules/all-aa163f63f4
build(deps): bump golang.org/x/crypto from 0.54.0 to 0.55.0 in the all group
2026-08-17 15:01:49 -05:00
dependabot[bot] bcb8cc8677 build(deps): bump golang.org/x/crypto in the all group
Bumps the all group with 1 update: [golang.org/x/crypto](https://github.com/golang/crypto).


Updates `golang.org/x/crypto` from 0.54.0 to 0.55.0
- [Commits](https://github.com/golang/crypto/compare/v0.54.0...v0.55.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.55.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-17 02:42:43 +00:00
Cody Lee 638da75628 Merge pull request #1049 from unpoller/dependabot/go_modules/all-364a4fa44d 2026-08-10 04:54:35 -05:00
dependabot[bot] 52c8a3ffc3 build(deps): bump the all group with 6 updates
Bumps the all group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/metric](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` |
| [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go) | `1.44.0` | `1.45.0` |


Updates `go.opentelemetry.io/otel` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0)

Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0)

Updates `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0)

Updates `go.opentelemetry.io/otel/metric` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0)

Updates `go.opentelemetry.io/otel/sdk` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0)

Updates `go.opentelemetry.io/otel/sdk/metric` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.44.0...v1.45.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: go.opentelemetry.io/otel/metric
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: go.opentelemetry.io/otel/sdk/metric
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-10 02:42:57 +00:00
Cody Lee d9f4fcbe2c Merge pull request #1046 from Nebu2k/feat/save-speedtest-toggle v3.4.1 2026-08-07 16:39:29 -05:00
Cody Lee b48836f308 Merge branch 'master' into feat/save-speedtest-toggle 2026-08-07 15:32:56 -05:00
Cody Lee 9c662ad951 Merge pull request #1048 from jimstrang/chore/deps-unifi-5.30.0 v3.4.0 2026-08-07 06:56:47 -05:00
Jim Strang 5dcb06a8ce chore(deps): upgrade unifi to v5.30.0 2026-08-07 07:31:26 -04:00
Sebastian PetersandClaude Opus 5 04f0010fce feat(inputunifi): add save_speedtest toggle for the WAN speed test poll
The Site Speed Test poll against the controller's aggregated-dashboard
endpoint has always run unconditionally, so operators whose controllers
misbehave on that endpoint have no way to skip the request. Every other
optional collection already has a save_* flag; this adds the missing one.

Defaults to true in all three default paths (local defaults,
per-controller defaults and remote discovery) so existing setups keep
behaving exactly as before.

Refs #1030

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 23:11:45 +02:00
Cody Lee 251aebf19a Merge pull request #1044 from unpoller/dependabot/github_actions/all-94d0792ac8 2026-08-03 17:36:12 -05:00
dependabot[bot] 33feda4121 build(deps): bump the all group with 2 updates
Bumps the all group with 2 updates: [docker/login-action](https://github.com/docker/login-action) and [actions/stale](https://github.com/actions/stale).


Updates `docker/login-action` from 4.5.1 to 4.6.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v4.5.1...v4.6.0)

Updates `actions/stale` from 10 to 11
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10...v11)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: actions/stale
  dependency-version: '11'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 02:43:48 +00:00
Cody Lee 7e103398c0 Merge pull request #1042 from unpoller/dependabot/go_modules/all-443659d970 2026-07-27 05:39:33 -05:00
dependabot[bot] 251d9aa565 build(deps): bump docker/login-action in the all group
Bumps the all group with 1 update: [docker/login-action](https://github.com/docker/login-action).


Updates `docker/login-action` from 4.4.0 to 4.5.1
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v4.4.0...v4.5.1)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-27 05:38:58 -05:00
dependabot[bot] 449aaabfba build(deps): bump the all group with 2 updates
Bumps the all group with 2 updates: [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) and [github.com/prometheus/common](https://github.com/prometheus/common).


Updates `github.com/prometheus/client_golang` from 1.23.2 to 1.24.1
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/v1.24.1/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.23.2...v1.24.1)

Updates `github.com/prometheus/common` from 0.70.0 to 0.70.1
- [Release notes](https://github.com/prometheus/common/releases)
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/common/compare/v0.70.0...v0.70.1)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-version: 1.24.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: github.com/prometheus/common
  dependency-version: 0.70.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-27 02:42:31 +00:00
dependabot[bot] 6ab2f06f89 build(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.1
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.81.1 to 1.82.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.81.1...v1.82.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.82.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
v3.3.4
2026-07-25 08:45:56 -05:00
Cody Lee aa37353e3d fix: explicitly dispatch release workflow after creating a tag
Tags pushed with the default GITHUB_TOKEN don't trigger other
workflows' push events, so release.yml never ran after tag.yml
created a new tag. Add workflow_dispatch to release.yml and have
tag.yml call `gh workflow run release.yml --ref <tag>` right after
pushing the tag.
v3.3.3
2026-07-20 18:22:40 -05:00
dependabot[bot] de47ac9e58 build(deps): bump github.com/unpoller/unifi/v5 in the all group
Bumps the all group with 1 update: [github.com/unpoller/unifi/v5](https://github.com/unpoller/unifi).


Updates `github.com/unpoller/unifi/v5` from 5.28.2-0.20260710223336-0de412a69b2f to 5.29.0
- [Release notes](https://github.com/unpoller/unifi/releases)
- [Commits](https://github.com/unpoller/unifi/commits/v5.29.0)

---
updated-dependencies:
- dependency-name: github.com/unpoller/unifi/v5
  dependency-version: 5.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
v3.3.2
2026-07-20 18:15:05 -05:00
dependabot[bot] 521f48a5fe build(deps): bump actions/setup-go from 6 to 7 in the all group
Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).


Updates `actions/setup-go` from 6 to 7
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-20 18:14:35 -05:00
Cody LeeandClaude Sonnet 5 d4c8bcab42 feat: add manual tag-creation workflow using git-semver
Adds a workflow_dispatch workflow that lets maintainers bump the
patch, minor (default), or major version using mdomke/git-semver,
then tags and pushes the result to trigger the existing release
workflow.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-19 10:42:39 -05:00