Skip to content

test(gitutil): extend coverage to 100% of exported functions#24765

Merged
pelikhan merged 3 commits intomainfrom
copilot/testify-expert-improve-test-quality
Apr 5, 2026
Merged

test(gitutil): extend coverage to 100% of exported functions#24765
pelikhan merged 3 commits intomainfrom
copilot/testify-expert-improve-test-quality

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 5, 2026

pkg/gitutil/gitutil_test.go covered only 2 of 5 exported functions (IsRateLimitError, IsAuthError), and IsAuthError was missing 5 of its 8 pattern branches.

Changes

  • TestIsAuthError — added missing pattern cases: github_token, unauthorized, forbidden, permission denied, saml enforcement
  • TestIsHexString — new table-driven test; covers valid lowercase/uppercase/mixed-case hex, full 40-char SHA, digits-only, single char, invalid char, space, empty string, non-hex word
  • TestExtractBaseRepo — new table-driven test; covers simple owner/repo, one-subpath, deep multi-segment path, no slash, empty string
  • TestFindGitRoot — new test verifying success path returns a non-empty root when executed inside a git repo

Coverage: 2/5 → 5/5 exported functions; IsAuthError branch coverage: 3/8 → 8/8 patterns.

Copilot AI and others added 2 commits April 5, 2026 17:23
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/908367fa-194a-4b12-a8ae-6a727cceade3

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
- Extend TestIsAuthError with github_token, unauthorized, forbidden,
  permission denied, and saml enforcement pattern cases
- Add TestIsHexString with 10 table-driven cases (valid/invalid hex,
  empty string, case variants)
- Add TestExtractBaseRepo with 5 cases (simple, subpath, deep, no slash,
  empty)
- Add TestFindGitRoot verifying success path inside a git repository

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/908367fa-194a-4b12-a8ae-6a727cceade3

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Improve test quality for pkg/gitutil/gitutil_test.go test(gitutil): extend coverage to 100% of exported functions Apr 5, 2026
Copilot AI requested a review from pelikhan April 5, 2026 17:27
@pelikhan pelikhan marked this pull request as ready for review April 5, 2026 17:29
Copilot AI review requested due to automatic review settings April 5, 2026 17:29
@pelikhan pelikhan merged commit c4772b4 into main Apr 5, 2026
49 of 51 checks passed
@pelikhan pelikhan deleted the copilot/testify-expert-improve-test-quality branch April 5, 2026 17:29
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Expands pkg/gitutil unit tests to fully cover exported helpers, and updates numerous GitHub Actions workflow lockfiles to enable OTLP/observability step summaries.

Changes:

  • Extend TestIsAuthError and add new table-driven tests for IsHexString and ExtractBaseRepo.
  • Add TestFindGitRoot to exercise FindGitRoot.
  • Add OTEL env wiring and a “Generate observability summary” step across many workflow lockfiles.
Show a summary per file
File Description
pkg/gitutil/gitutil_test.go Adds tests for remaining exported helpers
.github/workflows/smoke-update-cross-repo-pr.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-test-tools.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-temporary-id.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-service-ports.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-project.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-multi-pr.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-gemini.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-create-cross-repo-pr.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-copilot.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-copilot-arm.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-codex.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-claude.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-call-workflow.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-agent-scoped-approved.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-agent-public-none.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-agent-public-approved.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-agent-all-none.lock.yml Adds OTEL env + observability summary step
.github/workflows/smoke-agent-all-merged.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-workflow-updater.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-testify-uber-super-expert.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-team-status.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-team-evolution-insights.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-syntax-error-quality.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-semgrep-scan.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-security-red-team.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-secrets-analysis.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-safe-outputs-conformance.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-safe-output-optimizer.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-safe-output-integrator.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-repo-chronicle.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-rendering-scripts-verifier.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-regulatory.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-performance-summary.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-otel-instrumentation-advisor.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-observability-report.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-news.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-multi-device-docs-tester.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-mcp-concurrency-analysis.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-malicious-code-scan.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-issues-report.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-integrity-analysis.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-function-namer.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-firewall-report.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-file-diet.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-fact.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-doc-updater.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-doc-healer.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-compiler-quality.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-community-attribution.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-code-metrics.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-cli-tools-tester.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-cli-performance.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-choice-test.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-assign-issue-to-user.lock.yml Adds OTEL env + observability summary step
.github/workflows/daily-architecture-diagram.lock.yml Adds OTEL env + observability summary step

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 56/56 changed files
  • Comments generated: 2

Comment on lines +245 to +250
func TestFindGitRoot(t *testing.T) {
t.Run("returns non-empty path when inside a git repository", func(t *testing.T) {
gitRoot, err := FindGitRoot()
assert.NoError(t, err, "FindGitRoot should succeed when running inside a git repository")
assert.NotEmpty(t, gitRoot, "FindGitRoot should return a non-empty path")
})
Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TestFindGitRoot depends on the tests running from within an existing git working tree. This can fail in environments where the source is provided without a .git directory (e.g., go test against a module download/tarball) or when git isn't installed. Consider making the test self-contained by creating a temp dir, git init it, chdir into it for the duration of the test (and/or skip when git is unavailable).

Copilot uses AI. Check for mistakes.
Comment on lines +72 to +76
env:
OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }}
OTEL_SERVICE_NAME: gh-aw
OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }}

Copy link

Copilot AI Apr 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow change introduces OpenTelemetry env vars and a new "Generate observability summary" step, which isn't mentioned in the PR title/description (focused on pkg/gitutil test coverage). Please either update the PR description to include the workflow/observability changes (and rationale) or split these workflow updates into a separate PR to keep scope clear.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[testify-expert] Improve Test Quality: pkg/gitutil/gitutil_test.go

3 participants