Repository navigation
Conversation
WalkthroughThe Helm chart adds disabled-by-default Gateway API configuration. It can render a Gateway with configurable listeners and TLS settings. It adds conditional HTTPRoute and GRPCRoute resources with configurable routing and Fleet service backends. It also adds optional ReferenceGrant rendering for cross-namespace Service references. HTTPRoute rendering rejects simultaneous Gateway API and Ingress enablement. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
charts/fleet/templates/referencegrant.yaml (1)
22-24: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winScope the grant to an explicit Service.
When
toServiceNameis empty, Lines 22-24 omitto.name. Gateway API interprets that as permission to reference every Service in the ReferenceGrant namespace, not only the chart-managed Service fromcharts/fleet/templates/service.yaml:1-36. (raw.githubusercontent.com)Require
toServiceNamefor this feature, or add a separate explicit wildcard option. The Gateway API security guidance recommends specifying the target name to avoid a blanket grant. (gateway-api.sigs.k8s.io)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@charts/fleet/templates/referencegrant.yaml` around lines 22 - 24, Require an explicit target Service name in the ReferenceGrant template by validating gatewayApi.referenceGrant.toServiceName and failing when it is empty, rather than omitting to.name. Preserve the existing name rendering for configured values and keep the grant scoped to the chart-managed Service.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@charts/fleet/templates/gateway.yaml`:
- Line 17: Update the gatewayClassName value in the Gateway template to apply
Helm’s required guard when chart-managed Gateway deployment is enabled, and
quote the resulting value. Preserve the existing gatewayApi.gateway.className
configuration source while rejecting an empty value before rendering.
In `@charts/fleet/templates/httproute.yaml`:
- Around line 22-42: The HTTPRoute and GRPCRoute templates must not render
unattached routes when gatewayApi.gateway.enabled is false and
gatewayApi.httpRoute.parentRefs is empty. Update
charts/fleet/templates/httproute.yaml lines 22-42 and
charts/fleet/templates/grpcroute.yaml lines 19-39 to either fail rendering or
suppress the route unless at least one parent reference is configured; preserve
the existing generated-gateway parentRefs behavior.
In `@charts/fleet/templates/referencegrant.yaml`:
- Around line 17-18: Update the ReferenceGrant template to validate that
.Values.gatewayApi.referenceGrant.from is non-empty before rendering the
resource. When the feature is enabled and the list is empty, fail Helm rendering
with a clear validation error; preserve the existing toYaml rendering for valid
entries.
---
Nitpick comments:
In `@charts/fleet/templates/referencegrant.yaml`:
- Around line 22-24: Require an explicit target Service name in the
ReferenceGrant template by validating gatewayApi.referenceGrant.toServiceName
and failing when it is empty, rather than omitting to.name. Preserve the
existing name rendering for configured values and keep the grant scoped to the
chart-managed Service.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: a8325ebc-e696-407b-b841-dafc2b9a537d
📒 Files selected for processing (5)
charts/fleet/templates/gateway.yamlcharts/fleet/templates/grpcroute.yamlcharts/fleet/templates/httproute.yamlcharts/fleet/templates/referencegrant.yamlcharts/fleet/values.yaml
| {{- toYaml . | nindent 4 }} | ||
| {{- end }} | ||
| spec: | ||
| gatewayClassName: {{ .Values.gatewayApi.gateway.className }} |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- gateway template ---'
cat -n charts/fleet/templates/gateway.yaml
printf '%s\n' '--- relevant values ---'
cat -n charts/fleet/values.yaml | sed -n '55,90p'
printf '%s\n' '--- related references ---'
rg -n -C 3 'gatewayApi|className|GatewayClass' charts/fleetRepository: fleetdm/fleet
Length of output: 17636
🌐 Web query:
Gateway API v1 GatewaySpec gatewayClassName required non-empty GatewayClassName schema
💡 Result:
In the Kubernetes Gateway API v1, the gatewayClassName field within the GatewaySpec is a required field [1][2]. According to the official CRD schema and API definitions, the gatewayClassName field is defined as an ObjectName type [1][2]. It is explicitly marked as required within the GatewaySpec object, and the schema enforces a length constraint of 1 to 253 characters (minLength: 1, maxLength: 253) [2]. Consequently, an empty value is not permitted, and the field must be provided for a Gateway resource to be considered valid [2]. This field serves to associate the Gateway with a specific GatewayClass resource, which defines the implementation and configuration behavior for the gateway [3][4].
Citations:
- 1: https://github.com/kubernetes-sigs/gateway-api/blob/main/apis/v1/gateway_types.go
- 2: https://github.com/raw/kubernetes-sigs/gateway-api/main/config/crd/standard/gateway.networking.k8s.io_gateways.yaml
- 3: https://gateway-api.sigs.k8s.io/concepts/api-overview/?h=tcproute
- 4: https://kubernetes.io/docs/concepts/services-networking/gateway/
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- chart validation and tests ---'
git ls-files charts/fleet | rg '(^|/)(values.schema.json|Chart.yaml|templates/.*|tests?/)' || true
rg -n -C 3 'gatewayApi|gatewayClassName|required|helm template|helm lint' charts/fleet .github 2>/dev/null || true
printf '%s\n' '--- available Helm tooling ---'
command -v helm || trueRepository: fleetdm/fleet
Length of output: 50371
🏁 Script executed:
#!/bin/bash
set -eu
python3 - <<'PY'
from pathlib import Path
template = Path("charts/fleet/templates/gateway.yaml").read_text()
values = Path("charts/fleet/values.yaml").read_text()
assert "and .Values.gatewayApi.enabled .Values.gatewayApi.gateway.enabled" in template
assert 'className: ""' in values
assert "gatewayClassName: {{ .Values.gatewayApi.gateway.className }}" in template
print("Gateway renders only when gatewayApi.enabled and gatewayApi.gateway.enabled are true.")
print("The default gatewayApi.gateway.className is empty.")
print("The rendered gatewayClassName is therefore empty when both flags are enabled without an override.")
PYRepository: fleetdm/fleet
Length of output: 386
Require gatewayApi.gateway.className when the chart-managed Gateway is enabled.
The default empty value renders an invalid gatewayClassName, which the Gateway API rejects. Add a Helm required guard and quote the value.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@charts/fleet/templates/gateway.yaml` at line 17, Update the gatewayClassName
value in the Gateway template to apply Helm’s required guard when chart-managed
Gateway deployment is enabled, and quote the resulting value. Preserve the
existing gatewayApi.gateway.className configuration source while rejecting an
empty value before rendering.
| parentRefs: | ||
| {{- if .Values.gatewayApi.gateway.enabled }} | ||
| - name: {{ include "fleet.fullname" . }}-gateway | ||
| namespace: {{ .Release.Namespace }} | ||
| {{- with .Values.gatewayApi.httpRoute.sectionName }} | ||
| sectionName: {{ . }} | ||
| {{- end }} | ||
| {{- else }} | ||
| {{- range .Values.gatewayApi.httpRoute.parentRefs }} | ||
| - name: {{ .name }} | ||
| {{- with .namespace }} | ||
| namespace: {{ . }} | ||
| {{- end }} | ||
| {{- with .sectionName }} | ||
| sectionName: {{ . }} | ||
| {{- end }} | ||
| {{- with .port }} | ||
| port: {{ . }} | ||
| {{- end }} | ||
| {{- end }} | ||
| {{- end }} |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- candidate files ---'
git ls-files 'charts/fleet/*' | grep -E '(^|/)(values(\.schema)?\.yaml|httproute\.yaml|grpcroute\.yaml|.*test.*|Chart\.yaml)$' || true
printf '%s\n' '--- route and gateway references ---'
rg -n -C 3 'parentRefs|gatewayApi|HTTPRoute|GRPCRoute' charts/fleet --glob '!templates/*.yaml' --glob 'values*.yaml' --glob '*.json' --glob '*test*' || true
printf '%s\n' '--- HTTPRoute template ---'
cat -n charts/fleet/templates/httproute.yaml
printf '%s\n' '--- GRPCRoute template ---'
cat -n charts/fleet/templates/grpcroute.yamlRepository: fleetdm/fleet
Length of output: 7696
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- gatewayApi values ---'
sed -n '60,165p' charts/fleet/values.yaml
printf '%s\n' '--- gateway-related templates ---'
rg -n -C 5 'gatewayApi|kind: Gateway|httpRoute|grpcRoute|fail ' charts/fleet/templates
printf '%s\n' '--- repository references and tests ---'
rg -n -C 4 'parentRefs|gatewayApi\.gateway|HTTPRoute|GRPCRoute|gateway API|Gateway API' . \
--glob '!vendor/**' --glob '!node_modules/**' --glob '!dist/**' --glob '!build/**' \
--glob '*.yaml' --glob '*.yml' --glob '*.md' --glob '*.tpl' --glob '*.go' --glob '*.ts' --glob '*.js' \
| head -n 500
printf '%s\n' '--- chart file list ---'
git ls-files charts/fleet | sed -n '1,240p'Repository: fleetdm/fleet
Length of output: 28908
🌐 Web query:
Gateway API HTTPRoute GRPCRoute spec parentRefs required minItems empty list schema
💡 Result:
In the Kubernetes Gateway API, the parentRefs field in HTTPRoute and GRPCRoute is a required field, and its list must contain at least one entry to be valid [1][2][3][4]. According to the API specifications and the underlying Go type definitions, parentRefs is defined as a slice of references to parent resources (typically Gateways) [1][4]. While the field itself is not marked as optional in the struct definitions, the Kubernetes API validation mechanisms enforce that a Route must be attached to at least one parent to function [1][2][3]. Specifically, if an empty list or a null value is provided for parentRefs, it fails to meet the structural requirement for the resource to be processed and attached to a Gateway or other supported parent resource [2][3]. If a parentRefs list is provided, it must conform to validation rules, such as having distinct entries and ensuring that any combination of optional fields (like sectionName or port) is consistent across references to the same parent [4][5][6]. Providing an empty parentRefs list is functionally invalid because the Gateway controller requires these references to determine which parent resource should accept the routing rules defined in the Route [2][3][7].
Citations:
- 1: https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/
- 2: https://gateway-api.sigs.k8s.io/api-types/httproute/?h=httprout
- 3: https://gateway-api.sigs.k8s.io/reference/api-types/grpcroute/
- 4: https://github.com/kubernetes-sigs/gateway-api/blob/f544a46ef92b7f234ee3e7bf50da35b05f862c35/apis/v1/shared_types.go
- 5: https://github.com/kubernetes-sigs/gateway-api/blob/main/config/crd/experimental/gateway.networking.k8s.io_tcproutes.yaml
- 6: https://gateway-api.sigs.k8s.io/reference/api-spec/1.6/spec/
- 7: https://gateway-api.sigs.k8s.io/guides/user-guides/grpc-routing/
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- chart metadata ---'
cat -n charts/fleet/Chart.yaml
printf '%s\n' '--- HTTPRoute parentRefs schema from Gateway API main ---'
curl -fsSL https://github.com/raw/kubernetes-sigs/gateway-api/main/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml \
| awk '/^ parentRefs:/{f=1} f{print} f && /^ [a-zA-Z].*:/{if ($0 !~ /parentRefs:/) exit}' \
| head -n 100
printf '%s\n' '--- GRPCRoute parentRefs schema from Gateway API main ---'
curl -fsSL https://github.com/raw/kubernetes-sigs/gateway-api/main/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml \
| awk '/^ parentRefs:/{f=1} f{print} f && /^ [a-zA-Z].*:/{if ($0 !~ /parentRefs:/) exit}' \
| head -n 100
printf '%s\n' '--- parentRefs requirements in official API source ---'
for file in \
https://github.com/raw/kubernetes-sigs/gateway-api/main/apis/v1/shared_types.go \
https://github.com/raw/kubernetes-sigs/gateway-api/main/apis/v1/httproute_types.go \
https://github.com/raw/kubernetes-sigs/gateway-api/main/apis/v1/grpcroute_types.go
do
echo "--- $file"
curl -fsSL "$file" | rg -n -A 12 -B 4 'ParentRefs|at least one parent|no parent'
doneRepository: fleetdm/fleet
Length of output: 20209
🏁 Script executed:
#!/bin/bash
set -eu
python3 - <<'PY'
from pathlib import Path
import re
cases = [
("HTTPRoute", Path("charts/fleet/templates/httproute.yaml"), "gatewayApi.httpRoute.parentRefs"),
("GRPCRoute", Path("charts/fleet/templates/grpcroute.yaml"), "gatewayApi.grpcRoute.parentRefs"),
]
for kind, path, refs_key in cases:
text = path.read_text()
route_guard = (
".Values.gatewayApi.enabled" in text
and ("grpcRoute.enabled" in text if kind == "GRPCRoute" else True)
)
managed_branch = re.search(
r"\{\{-?\s*if \.Values\.gatewayApi\.gateway\.enabled\s*\}\}(.*?)"
r"\{\{-?\s*else\s*\}\}(.*?)\{\{-?\s*end\s*\}\}",
text,
re.S,
)
assert route_guard, f"{kind}: route guard not found"
assert managed_branch, f"{kind}: parentRefs branch not found"
managed, external = managed_branch.groups()
assert "- name:" in managed, f"{kind}: managed Gateway branch has no parent"
assert "range " in external and refs_key.rsplit(".", 1)[-1] in external, (
f"{kind}: external parentRefs branch does not range configured parents"
)
print(f"{kind}: gatewayApi.enabled=true, gateway.enabled=false, {refs_key}=[] -> parentRefs has zero items")
PY
printf '%s\n' '--- official default-gateway semantics ---'
curl -fsSL https://github.com/raw/kubernetes-sigs/gateway-api/main/apis/v1/shared_types.go \
| sed -n '255,275p'
printf '%s\n' '--- official CRD parentRefs constraints ---'
for resource in httproutes grpcroutes; do
echo "--- $resource"
curl -fsSL "https://github.com/raw/kubernetes-sigs/gateway-api/main/config/crd/standard/gateway.networking.k8s.io_${resource}.yaml" \
| sed -n '/^[[:space:]]*parentRefs:/,/^[[:space:]]*[a-zA-Z][a-zA-Z0-9]*:/p' \
| grep -E 'parentRefs:|minItems:|maxItems:|x-kubernetes-list' || true
doneRepository: fleetdm/fleet
Length of output: 3002
Require a parent reference for externally managed Gateways.
When gatewayApi.gateway.enabled is false and the corresponding parentRefs list is empty, both templates render an unattached route. Fail rendering or suppress the route unless at least one parent reference is configured.
📍 Affects 2 files
charts/fleet/templates/httproute.yaml#L22-L42(this comment)charts/fleet/templates/grpcroute.yaml#L19-L39
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@charts/fleet/templates/httproute.yaml` around lines 22 - 42, The HTTPRoute
and GRPCRoute templates must not render unattached routes when
gatewayApi.gateway.enabled is false and gatewayApi.httpRoute.parentRefs is
empty. Update charts/fleet/templates/httproute.yaml lines 22-42 and
charts/fleet/templates/grpcroute.yaml lines 19-39 to either fail rendering or
suppress the route unless at least one parent reference is configured; preserve
the existing generated-gateway parentRefs behavior.
| from: | ||
| {{- toYaml .Values.gatewayApi.referenceGrant.from | nindent 4 }} |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rendered="$(mktemp)"
trap 'rm -f "$rendered"' EXIT
helm template test charts/fleet \
--show-only templates/referencegrant.yaml \
--set gatewayApi.enabled=true \
--set gatewayApi.referenceGrant.enabled=true > "$rendered"
if awk '/^ from:/{getline; if ($0 ~ /^[[:space:]]+\[\]$/) found=1} END { exit(found ? 0 : 1) }' "$rendered"; then
echo "FAIL: empty spec.from was rendered" >&2
exit 1
fiRepository: fleetdm/fleet
Length of output: 193
🏁 Script executed:
set -euo pipefail
printf '%s\n' '--- template ---'
cat -n charts/fleet/templates/referencegrant.yaml
printf '%s\n' '--- values ---'
sed -n '560,590p' charts/fleet/values.yaml
printf '%s\n' '--- related references ---'
rg -n -C 3 'referenceGrant|ReferenceGrant|gatewayApi' charts/fleet/templates charts/fleet/values.yaml charts/fleet/Chart.yaml charts/fleet/README.md 2>/dev/null | head -240Repository: fleetdm/fleet
Length of output: 13940
🏁 Script executed:
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
p = Path("charts/fleet/templates/referencegrant.yaml")
print("--- template ---")
for i, line in enumerate(p.read_text().splitlines(), 1):
print(f"{i:4}: {line}")
p = Path("charts/fleet/values.yaml")
lines = p.read_text().splitlines()
print("--- values around referenceGrant ---")
for i in range(570, min(590, len(lines) + 1)):
print(f"{i:4}: {lines[i-1]}")
PY
printf '%s\n' '--- related references ---'
rg -n -C 3 'referenceGrant|ReferenceGrant|gatewayApi' charts/fleet/templates charts/fleet/values.yaml charts/fleet/Chart.yaml 2>/dev/null | head -240Repository: fleetdm/fleet
Length of output: 13937
🌐 Web query:
Gateway API v1.5.1 ReferenceGrant CRD schema spec.from minItems
💡 Result:
In the Gateway API v1.5.1 ReferenceGrant Custom Resource Definition (CRD) schema, both the from and to fields in the spec object have a minItems validation constraint set to 1 [1][2]. This requirement ensures that a valid ReferenceGrant must specify at least one entry in both the from list (which defines the trusted namespaces and kinds that can initiate references) and the to list (which defines the resources that may be referenced) [3][2]. These lists are defined with x-kubernetes-list-type: atomic [1][4], meaning the entire list is replaced if updated. Each ReferenceGrant operates additively, and because both fields are mandatory and require at least one item, they serve as the foundational configuration for establishing cross-namespace trust relationships in the Gateway API [3][2].
Citations:
- 1: https://github.com/raw/kubernetes-sigs/gateway-api/main/config/crd/standard/gateway.networking.k8s.io_referencegrants.yaml
- 2: https://gateway-api.sigs.k8s.io/geps/gep-709/
- 3: https://gateway-api.sigs.k8s.io/reference/api-types/referencegrant/
- 4: https://github.com/kubernetes-sigs/gateway-api/blob/main/config/crd/experimental/gateway.networking.k8s.io_referencegrants.yaml
🏁 Script executed:
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
for name in ("charts/fleet/templates/referencegrant.yaml", "charts/fleet/values.yaml"):
print(f"--- {name} ---")
lines = Path(name).read_text().splitlines()
if name.endswith("referencegrant.yaml"):
lo, hi = 1, len(lines)
else:
hits = [i for i, line in enumerate(lines, 1) if "referenceGrant:" in line]
lo, hi = max(1, hits[0] - 3), min(len(lines), hits[0] + 30) if hits else (1, 1)
for i in range(lo, hi + 1):
print(f"{i:4}: {lines[i-1]}")
PY
python3 - <<'PY'
import json, urllib.request
url = "https://github.com/raw/kubernetes-sigs/gateway-api/v1.5.1/config/crd/standard/gateway.networking.k8s.io_referencegrants.yaml"
try:
data = urllib.request.urlopen(url, timeout=10).read().decode()
print("--- ReferenceGrant schema excerpt ---")
lines = data.splitlines()
for i, line in enumerate(lines):
if "from:" in line or "to:" in line or "minItems:" in line:
print("\n".join(f"{j+1}: {lines[j]}" for j in range(max(0, i-3), min(len(lines), i+5))))
except Exception as exc:
print(f"schema fetch failed: {exc}")
PYRepository: fleetdm/fleet
Length of output: 2870
Fail when gatewayApi.referenceGrant.from is empty.
When enabled, the default from: [] renders an invalid ReferenceGrant. The Gateway API schema requires at least one spec.from entry. Add Helm validation before rendering the resource.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@charts/fleet/templates/referencegrant.yaml` around lines 17 - 18, Update the
ReferenceGrant template to validate that .Values.gatewayApi.referenceGrant.from
is non-empty before rendering the resource. When the feature is enabled and the
list is empty, fail Helm rendering with a clear validation error; preserve the
existing toYaml rendering for valid entries.
|
Hey @rfairburn what do we need to get this PR merged? |
- Adds related issue (if any), and if any of the manual QA checkboxes were selected. - Adds a -v verbose mode that also outputs who is assigned to the PR, a full link, and tags from the related issue Examples: ``` jonathan@jonathans-macbook-pro:~/repos/fleet-2$ ./tools/oncall/oncall.sh prs 51893 2026-08-25T17:29:40Z tested prateek-0490 Batch scheduled query name lookups when processing result logs 51881 2026-08-25T16:25:40Z nonpunctual Include script for printer configuration from CSV 51845 2026-08-25T04:20:44Z 49502 tested rajendrachavan Write a query and its labels in a single transaction 51731 2026-08-21T19:49:52Z tested prateek-0490 Validate software list order keys against an allowlist 51583 2026-08-19T19:34:15Z tested prateek-0490 Require a team selection when validating report run targets 51338 2026-08-17T05:23:53Z 50846 Dhvanit41 Hide the toast details panel when the payload is empty 51265 2026-08-14T17:54:28Z tested prateek-0490 Expand host script variables via the environment 51241 2026-08-14T14:32:34Z 50336 tested andymFleet 50336 apple business stale fleet names 51178 2026-08-13T20:18:48Z moojomoore Add macOS unlock user account action 51119 2026-08-13T05:28:14Z 50882 Dhvanit41 Return an error when refetching an Android host 51020 2026-08-12T00:46:05Z 40092 sjawhar Support credentialProviderPolicy in Android app configuration 50943 2026-08-11T12:31:48Z 46773 tested surajtripathy07 Add software custom targets warning to delete label modal 50898 2026-08-10T19:26:08Z 45100 tianrking Recover vulnerability counts after interrupted table swaps 50836 2026-08-08T19:23:13Z 50300 tested kitarp29 Adding the logic to make controls even when it's empty 50822 2026-08-08T01:35:19Z tested viewer12 Add Nexus Shell as a macOS Fleet-maintained app 50774 2026-08-07T15:14:11Z 50357 tested Dhvanit41 Clear stale failure detail when an Android profile becomes verified 49816 2026-07-23T13:19:19Z tested sleepy-slothh Fix Ubuntu OSV binary package matching 43774 2026-04-20T15:46:23Z BCTBB Helm - Gateway API support ``` ``` jonathan@jonathans-macbook-pro:~/repos/fleet-2$ ./tools/oncall/oncall.sh prs -v 51893 2026-08-25T17:29:40Z tested prateek-0490 #51893 Batch scheduled query name lookups when processing result logs 51881 2026-08-25T16:25:40Z nonpunctual #51881 Include script for printer configuration from CSV 51845 2026-08-25T04:20:44Z 49502 tested rajendrachavan lucasmrod #51845 Write a query and its labels in a single transaction bug, ~backend, ~released bug, #g-orchestration 51731 2026-08-21T19:49:52Z tested prateek-0490 juan-fdz-hawa #51731 Validate software list order keys against an allowlist 51583 2026-08-19T19:34:15Z tested prateek-0490 juan-fdz-hawa #51583 Require a team selection when validating report run targets 51338 2026-08-17T05:23:53Z 50846 Dhvanit41 #51338 Hide the toast details panel when the payload is empty bug, ~frontend, ~released bug, #g-auto-patching 51265 2026-08-14T17:54:28Z tested prateek-0490 georgekarrv #51265 Expand host script variables via the environment 51241 2026-08-14T14:32:34Z 50336 tested andymFleet JordanMontgomery #51241 50336 apple business stale fleet names bug, ~released bug, #g-apple-at-work 51178 2026-08-13T20:18:48Z moojomoore #51178 Add macOS unlock user account action 51119 2026-08-13T05:28:14Z 50882 Dhvanit41 #51119 Return an error when refetching an Android host bug, ~released bug, #g-byod 51020 2026-08-12T00:46:05Z 40092 sjawhar #51020 Support credentialProviderPolicy in Android app configuration ~feature fest, customer-pingali, #g-byod 50943 2026-08-11T12:31:48Z 46773 tested surajtripathy07 lucasmrod #50943 Add software custom targets warning to delete label modal bug, ~released bug, #g-orchestration, customer-susanoo 50898 2026-08-10T19:26:08Z 45100 tianrking juan-fdz-hawa #50898 Recover vulnerability counts after interrupted table swaps bug, ~released bug, ~community, #g-supply-chain, ~aging bug 50836 2026-08-08T19:23:13Z 50300 tested kitarp29 lucasmrod #50836 Adding the logic to make controls even when it's empty bug, ~gitops, #g-orchestration 50822 2026-08-08T01:35:19Z tested viewer12 AdamBaali #50822 Add Nexus Shell as a macOS Fleet-maintained app 50774 2026-08-07T15:14:11Z 50357 tested Dhvanit41 #50774 Clear stale failure detail when an Android profile becomes verified bug, ~released bug, #g-byod 49816 2026-07-23T13:19:19Z tested sleepy-slothh #49816 Fix Ubuntu OSV binary package matching 43774 2026-04-20T15:46:23Z BCTBB #43774 Helm - Gateway API support ``` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added an optional verbose mode for pull request listings, showing assignees, URLs, linked issue labels, and manual QA status. * Improved output formatting with aligned columns. * **Bug Fixes** * Unknown command-line arguments are now rejected with clearer usage guidance. * Improved detection of linked issues in pull request descriptions. * **Documentation** * Updated command usage information to describe the verbose option. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
Closing for now (PR metrics). @rfairburn please re-open a new one if this is necessary. |
Summary by CodeRabbit