Commit Graph

111 Commits

Author SHA1 Message Date
Bryan Frimin
138f24ef59 Add Homebrew tap publishing for prb CLI
Configure GoReleaser to publish the prb CLI to the getprobo/homebrew-tap repository on each release. Separate the prb archive from the main probod archive and add the necessary GitHub token to the release workflow.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-20 14:33:35 +01:00
Bryan Frimin
c74e5cc123 Add go fmt and go fix checks to lint
Adds go-fmt and go-fix Makefile targets that fail when gofmt or go fix
suggest changes. Both are wired into the lint target and used in CI.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-19 16:37:51 +01:00
Bryan Frimin
7ffb2d5e94 Add document viewer with proper 404 handling for trust center
Move document download/view to a dedicated viewer page with PDF preview,
access request flow, and a proper 404 error boundary when documents are
not found. The backend now returns NOT_FOUND instead of INTERNAL for
missing documents and reports.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 19:13:21 +01:00
Bryan Frimin
7ed9c6c2e6 Add go fmt and go fix checks to lint
Adds go-fmt and go-fix Makefile targets that fail when gofmt or go fix
suggest changes. Both are wired into the lint target and used in CI.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 17:32:25 +01:00
Bryan Frimin
807213d384 Stop tracking generated files
Run make generate in CI lint and test jobs since generated files are
now gitignored. Also include Relay codegen for frontend apps in the
generate target.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 16:19:47 +01:00
Bryan Frimin
3e3138f764 Cache Go modules explicitly with go mod download
Add go mod download step after setup-go in all CI jobs to ensure the
module cache is populated as a discrete step. This makes cache hits visible
in logs and prevents module downloads from being interleaved with build
operations, improving cache effectiveness.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 15:54:54 +01:00
Bryan Frimin
5c22789624 Add reviewdog to post lint errors as PR comments
Use reviewdog in the CI lint job so golangci-lint and eslint
failures appear as inline comments on pull request files instead
of only in job logs.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-16 00:41:22 +01:00
mendral-app[bot]
1921445a73 ci: add shared build job to eliminate redundant make build in test and lint
Extract make build into a dedicated build job that uploads artifacts
(bin/probod, frontend dist, emails dist). Both test and lint jobs now
download these artifacts instead of rebuilding from scratch.

This eliminates ~172 compute minutes/week of redundant builds while
keeping wall-clock time neutral (test and lint were spending their
first ~2min building anyway).
2026-03-11 13:43:11 +01:00
mendral-app[bot]
76e1c17a24 ci: remove redundant grype install from release-snapshot workflow
The manual grype install (cache + curl-pipe-sh + PATH export) is redundant
because anchore/scan-action already bundles grype internally. Removing it
also eliminates a supply chain risk: the install script was fetched from
the mutable @main branch of anchore/grype via curl | sh, in a job with
packages:write and id-token:write permissions.
2026-03-11 05:28:01 -07:00
Bryan Frimin
38b12fa278 Upgrade go version
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-03-09 14:52:23 +01:00
Sacha Al Himdani
e173b26acd Update go and open telemetry
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
2026-03-02 09:39:10 +01:00
Bryan Frimin
9b0226ad3c Upgrade codesign installer
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-16 17:53:22 +01:00
Bryan Frimin
76dc874ed6 Fix double install codesign
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-16 17:46:38 +01:00
Bryan Frimin
43b44b06bf Set fixed version of codesign + upgrade to docker v2
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-16 17:41:43 +01:00
Bryan Frimin
c9de03ec43 Fix cosign cache race condition
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-16 17:26:35 +01:00
Bryan Frimin
d2dbb6f714 Use bigger github hosted runner
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-13 16:20:31 +01:00
Bryan Frimin
015ebe43dc Use sbom file for grype
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-11 11:56:18 +01:00
Émile Ré
4c28792944 Upgrade go to 1.25.7
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-09 10:55:58 +04:00
mendral-app[bot]
09d73cf413 chore: pin all third-party actions to SHA digests
Pin third-party GitHub Actions to immutable SHA digests to prevent
supply chain attacks via tag force-pushing or branch updates.

Actions pinned:
- trufflesecurity/trufflehog (was @main, now SHA)
- sigstore/cosign-installer@v3.8.1
- docker/setup-buildx-action@v3.12.0
- docker/setup-qemu-action@v3.7.0
- docker/login-action@v3.7.0
- goreleaser/goreleaser-action@v6.4.0
- aquasecurity/trivy-action@0.33.1
- github/codeql-action/upload-sarif@v4.32.1
- golangci/golangci-lint-action@v9.2.0
- docker/setup-compose-action@v1.2.0

Version comments added for maintainability.
2026-02-05 08:28:22 +01:00
Émile Ré
459ee41bd0 Skip apps building on api e2e tests
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-02-04 18:32:53 +04:00
Bryan Frimin
31f2cde8d0 Fix missing golintci binary
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-02 19:06:36 +01:00
Bryan Frimin
f7f2d704f2 Update github action lint command
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-02-02 18:45:37 +01:00
dependabot[bot]
b88a6ba012 Bump the github-actions group with 10 updates
Bumps the github-actions group with 10 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4` | `6` |
| [actions/setup-go](https://github.com/actions/setup-go) | `5` | `6` |
| [actions/setup-node](https://github.com/actions/setup-node) | `4` | `6` |
| [actions/cache](https://github.com/actions/cache) | `4` | `5` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.20.5` | `0.22.1` |
| [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) | `0.28.0` | `0.33.1` |
| [anchore/scan-action](https://github.com/anchore/scan-action) | `6.5.1` | `7.3.1` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4` | `6` |
| [actions/attest-sbom](https://github.com/actions/attest-sbom) | `1` | `3` |
| [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) | `1` | `3` |


Updates `actions/checkout` from 4 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

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

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

Updates `actions/cache` from 4 to 5
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

Updates `anchore/sbom-action` from 0.20.5 to 0.22.1
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](da167eac91...deef08a0db)

Updates `aquasecurity/trivy-action` from 0.28.0 to 0.33.1
- [Release notes](https://github.com/aquasecurity/trivy-action/releases)
- [Commits](https://github.com/aquasecurity/trivy-action/compare/0.28.0...0.33.1)

Updates `anchore/scan-action` from 6.5.1 to 7.3.1
- [Release notes](https://github.com/anchore/scan-action/releases)
- [Changelog](https://github.com/anchore/scan-action/blob/main/RELEASE.md)
- [Commits](1638637db6...8d2fce0942)

Updates `actions/upload-artifact` from 4 to 6
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6)

Updates `actions/attest-sbom` from 1 to 3
- [Release notes](https://github.com/actions/attest-sbom/releases)
- [Changelog](https://github.com/actions/attest-sbom/blob/main/RELEASE.md)
- [Commits](https://github.com/actions/attest-sbom/compare/v1...v3)

Updates `actions/attest-build-provenance` from 1 to 3
- [Release notes](https://github.com/actions/attest-build-provenance/releases)
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md)
- [Commits](https://github.com/actions/attest-build-provenance/compare/v1...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/setup-go
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: anchore/sbom-action
  dependency-version: 0.22.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: aquasecurity/trivy-action
  dependency-version: 0.33.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: anchore/scan-action
  dependency-version: 7.3.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/attest-sbom
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/attest-build-provenance
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-01 21:14:12 +00:00
Émile Ré
58838e1420 Upgrade go to 1.25.6
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-29 11:59:12 +04:00
Émile Ré
975cccdc3a Fix dependabot.yaml is not a CI workflow
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-29 08:55:13 +04:00
mendral-app[bot]
db27c6763f fix: add grype binary caching and retry logic to release-snapshot job
- Cache grype binary using actions/cache to avoid repeated downloads
- Add retry logic (3 attempts with exponential backoff) for grype installation
- Pre-install grype before scan-action to ensure it's available

This addresses the HTTP 503/504 timeout errors when downloading grype from
GitHub releases, which caused 6 failures on the main branch in the past 14 days
(90.32% success rate vs 99% target).
2026-01-26 17:11:04 -08:00
Bryan Frimin
9b84206d56 Add Dependabot configuration for all dependencies
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2026-01-26 17:03:04 -08:00
mendral-app[bot]
1b0fffe99e ci(release): enable Go module caching
Add cache: true to actions/setup-go@v5 in the Release workflow to
cache Go modules between runs. This reduces the GoReleaser step
duration from 5-18 minutes to 1-3 minutes by avoiding repeated
module downloads.
2026-01-26 08:49:41 -08:00
Émile Ré
d1f6006a17 Rename e2e test results artifact
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-26 12:08:55 +04:00
Émile Ré
f32b7d60f7 Always upload test results + fix cgo enabling for tests
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-26 12:02:46 +04:00
Émile Ré
0c73e28a31 Add junit results to e2e tests too
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-26 11:53:59 +04:00
Émile Ré
e1989e002f Add gotestsum as a tool and use junit format to get test analysis
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-26 11:34:05 +04:00
Émile Ré
188ae13d58 Move linting in dedicated CI job
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-23 13:17:46 +04:00
Émile Ré
4d80dccbbf Fix bot review
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-22 21:06:19 +04:00
Émile Ré
36cd0cae95 Update node to LTS and npm to avoid issue with optional dependencies on natives
Signed-off-by: Émile Ré <emile@getprobo.com>
2026-01-22 17:47:44 +04:00
mendral-app[bot]
f55d4984ec Enable Go module and npm caching in make workflow to reduce CI execution time 2026-01-05 13:58:41 +01:00
mendral-app[bot]
4a377e4aff Suppress mkcert Firefox/Chrome warning in E2E tests 2026-01-05 11:21:52 +01:00
mendral-app[bot]
b438732bf7 Cache Trivy database to prevent HTTP 504 download failures 2026-01-02 01:15:43 -08:00
Bryan Frimin
ee08aeb8bf Disable trivy license scanning
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-24 08:55:27 +01:00
Bryan Frimin
3830300c8e Update trivy version
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-24 08:49:47 +01:00
Bryan Frimin
def286a827 Fix trivy version
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-24 08:46:21 +01:00
Bryan Frimin
564540e2ab Fix path for trivy
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-24 08:44:12 +01:00
Bryan Frimin
179f44db3e Fix ignore file
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-24 08:35:26 +01:00
Bryan Frimin
fd87a70cf2 Add license checker
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-23 22:35:46 +01:00
Émile Ré
81cb0de8f2 Update github workflows
Signed-off-by: Émile Ré <nemile.re@gmail.com>
2025-12-15 18:24:00 +01:00
Bryan Frimin
9bbea1d15e Upgrade golang version
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-03 11:48:52 +01:00
Bryan Frimin
55794631ee Fix output and sarif upload trivy
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-03 11:40:36 +01:00
Bryan Frimin
cd657e1bd8 Fix missing node modules release target
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 16:20:52 +01:00
Bryan Frimin
e01bec9f88 Fix npm version
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 15:33:23 +01:00
Bryan Frimin
d718766a94 Fix npm git url
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
2025-12-02 15:26:51 +01:00