Skip to content

TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader - #3832

Merged
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
mstaeble:worktree-feature-gate-loader-optimization
Jul 30, 2026
Merged

TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader#3832
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
mstaeble:worktree-feature-gate-loader-optimization

Conversation

@mstaeble

@mstaeble mstaeble commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Replaces the expensive go-git clone of openshift/api (~3m10s per hourly load cycle) with GitHub Contents API calls, reducing fetch time to ~7 seconds for all 9 release branches
  • Converts DB writes from GORM CreateInBatches to PostgreSQL COPY protocol via db.CopyToTempTable, reducing upsert time (114ms COPY + 142ms upsert for 5,338 rows)
  • Removes go-git and 16 transitive dependencies (~117k lines of vendored code)

Test plan

  • make lint passes
  • make test passes (new unit tests for parseFeatureGateFilename, convertAPIToDB, isAllowedDownloadURL, GitHub JSON parsing)
  • make e2e passes
  • Tested against staging DB: 9 releases, 5,338 feature gates loaded in ~7s total

🤖 Generated with Claude Code

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Feature gate loading now fetches YAML files from GitHub release branches instead of using local repository cloning and filesystem traversal.
    • Loading is wired through an authenticated GitHub client and command context.
  • Bug Fixes

    • Improved loader control flow and validation, with feature gate data persisted via a more robust upsert approach.
  • Tests

    • Expanded unit coverage for feature-gate filename parsing and API-to-database conversion (including empty and invalid inputs).

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: automatic mode

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 26, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 26, 2026

Copy link
Copy Markdown

@mstaeble: This pull request references TRT-2802 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Replaces the expensive go-git clone of openshift/api (~3m10s per hourly load cycle) with GitHub Contents API calls, reducing fetch time to ~7 seconds for all 9 release branches
  • Converts DB writes from GORM CreateInBatches to PostgreSQL COPY protocol via db.CopyToTempTable, reducing upsert time (114ms COPY + 142ms upsert for 5,338 rows)
  • Removes go-git and 16 transitive dependencies (~117k lines of vendored code)

Test plan

  • make lint passes
  • make test passes (new unit tests for parseFeatureGateFilename, convertAPIToDB, isAllowedDownloadURL, GitHub JSON parsing)
  • make e2e passes
  • Tested against staging DB: 9 releases, 5,338 feature gates loaded in ~7s total

🤖 Generated with Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci

openshift-ci Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 26, 2026
@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Feature gate loading now retrieves release manifests through GitHub’s Contents API, parses downloaded YAML files, and upserts converted rows into PostgreSQL using the command context. GitHub client wiring, dependencies, filename parsing, and unit tests were updated.

Changes

GitHub Feature Gate Loading

Layer / File(s) Summary
Expose the authenticated GitHub client
pkg/dataloader/prowloader/github/github.go
The GitHub client stores its authenticated API client and exposes it through APIClient().
Fetch, convert, and upsert feature gates
pkg/dataloader/featuregateloader/featuregateloader.go, pkg/dataloader/featuregateloader/featuregateloader_test.go
The loader lists release branch contents, downloads and parses YAML manifests, converts enabled and disabled gates into database rows, and persists them through PostgreSQL copy and upsert operations with expanded parsing and conversion tests.
Wire the loader and align modules
cmd/sippy/load.go, go.mod
The load command passes the context and GitHub API client to the loader, while obsolete Git dependencies are removed and indirect module entries are updated.

Estimated code review effort: 4 (Complex) | ~45 minutes

Suggested labels: lgtm

Suggested reviewers: deepsm007, neisw

Sequence Diagram(s)

sequenceDiagram
  participant LoadCommand
  participant FeatureGateLoader
  participant GitHubAPI
  participant PostgreSQL
  LoadCommand->>FeatureGateLoader: create with context and API client
  FeatureGateLoader->>GitHubAPI: list release branch contents
  GitHubAPI-->>FeatureGateLoader: return feature gate files
  FeatureGateLoader->>GitHubAPI: download YAML manifests
  GitHubAPI-->>FeatureGateLoader: return manifest content
  FeatureGateLoader->>PostgreSQL: copy converted rows and upsert statuses
Loading
🚥 Pre-merge checks | ✅ 20 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Test Coverage For New Features ⚠️ Warning Only parse/convert helpers are tested; the new feature-gate loader path and github.Client.APIClient/New have no unit tests. Add unit tests for the new GitHub client accessor and feature-gate loader flow (release selection, fetch/download, upsert), or split out more pure logic to test.
✅ Passed checks (20 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Go Error Handling ✅ Passed New feature-gates paths wrap errors, guard dbErr before use, and I found no new panic or nil-deref issues.
Sql Injection Prevention ✅ Passed New SQL uses fixed strings; COPY helper validates identifiers and the loader passes only hardcoded table/column names, with no user input interpolation.
Excessive Css In React Should Use Styles ✅ Passed No React/JSX/CSS files were touched; the PR changes only Go code and vendored deps, so this styling rule is not applicable.
Single Responsibility And Clear Naming ✅ Passed The new feature-gate loader is cohesive: each method is narrowly scoped, names are specific, and the GitHub client accessor cleanly supports one loader purpose.
Feature Documentation ✅ Passed No feature-gate doc exists under docs/features; the only doc there is unrelated job-analysis content, so no docs update was required.
Stable And Deterministic Test Names ✅ Passed Changed tests use static, descriptive t.Run names; no Ginkgo titles or dynamic values were added.
Test Structure And Quality ✅ Passed The changed tests are plain Go table-driven unit tests, not Ginkgo; setup/cleanup and Eventually timeout rules don’t apply.
Microshift Test Compatibility ✅ Passed The PR adds only plain unit tests; no new Ginkgo e2e tests or MicroShift-unsupported APIs/features were introduced.
Single Node Openshift (Sno) Test Compatibility ✅ Passed Changed tests are plain Go unit tests (Test*); no Ginkgo/e2e specs or SNO-hostile multi-node assumptions were added.
Topology-Aware Scheduling Compatibility ✅ Passed Only feature-gate loader/client code and tests changed; no manifests/controllers or topology-sensitive scheduling constraints were added.
Ote Binary Stdout Contract ✅ Passed No stdout writes were added in process-level code; touched paths use logrus/error returns only, with no fmt.Print/os.Stdout in main/init/suite setup.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PASS: The PR only adds standard Go unit tests (testing/assert/require); no Ginkgo e2e tests or IPv4/public-internet assumptions were added.
No-Weak-Crypto ✅ Passed Changed files contain no MD5/SHA1/DES/RC4/3DES/ECB usage, no custom crypto, and no secret/token comparisons beyond empty-string presence checks.
Container-Privileges ✅ Passed PR only changes Go files; no container/K8s manifests or privilege flags like privileged, hostPID, or allowPrivilegeEscalation were added.
No-Sensitive-Data-In-Logs ✅ Passed No added logs print secret values; token/private-key env var names are referenced only, and logged fields are release/branch/path/counts, not PII or credentials.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: replacing the feature gate loader's git clone with GitHub API access and COPY-based writes.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 26, 2026
@mstaeble
mstaeble force-pushed the worktree-feature-gate-loader-optimization branch from ba02044 to 7d4ca91 Compare July 26, 2026 23:05
@mstaeble mstaeble changed the title TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader [WIP] TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader Jul 26, 2026
@mstaeble

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Full review finished.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Full review finished.


Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 57 minutes.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (3)
pkg/dataloader/featuregateloader/featuregateloader.go (2)

195-221: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

No retry/backoff for GitHub throttling.

Roughly ~40 requests per branch × 9 branches on every load run; a single 403/429 with X-RateLimit-Remaining: 0 or a transient 5xx currently fails the run. A small retry with backoff (honoring Retry-After / X-RateLimit-Reset) would make this considerably more resilient, and including the rate-limit headers in the error message makes throttling diagnosable.

🤖 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 `@pkg/dataloader/featuregateloader/featuregateloader.go` around lines 195 -
221, Update FeatureGateLoader.doGet to retry transient GitHub throttling
responses (403/429 with exhausted rate limit) and 5xx responses using a small
bounded backoff. Honor Retry-After and X-RateLimit-Reset when calculating
delays, then return an error after retries are exhausted that includes the
relevant rate-limit headers and existing request context.

41-51: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Document the new GITHUB_TOKEN environment variable.

New now silently depends on GITHUB_TOKEN; without it GitHub's unauthenticated limit (60 req/hr per IP) applies, which is easy to hit across nine release branches plus per-file downloads. Please document it (config/README.md or the relevant root README section) and consider logging at startup whether a token was found (never the value).

As per coding guidelines, "When configuration options, environment variables, or CLI flags change, update config/README.md or the relevant root README section."

🤖 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 `@pkg/dataloader/featuregateloader/featuregateloader.go` around lines 41 - 51,
Document the GITHUB_TOKEN environment variable in the relevant configuration
README, including that it authenticates GitHub requests and avoids
unauthenticated rate limits. Optionally update the startup path around
FeatureGateLoader.New to log only whether a token is configured, never its
value.

Source: Coding guidelines

pkg/dataloader/featuregateloader/featuregateloader_test.go (1)

166-207: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

This test re-implements the filter loop instead of exercising it.

Lines 196-204 duplicate the logic in fetchFeatureGatesForBranch, so the assertion passes even if production code diverges; the rest mostly validates encoding/json. Pointing githubAPIBase/httpClient at an httptest.Server would let you cover listDirectory, doGet status handling, and the real filter path — none of which currently have coverage and none of which involve a storage client.

🤖 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 `@pkg/dataloader/featuregateloader/featuregateloader_test.go` around lines 166
- 207, Replace the manual filtering loop in TestGitHubContentParsing with an
httptest.Server-backed integration-style test of fetchFeatureGatesForBranch,
configuring githubAPIBase and httpClient to use the server. Return
representative directory JSON from the server and assert only the valid
feature-gate file is selected, thereby exercising listDirectory, doGet status
handling, and the production filter path.
🤖 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 `@cmd/sippy/load.go`:
- Around line 356-361: Update the feature-gates branch in the loader
construction loop to check dbErr before creating the featuregateloader.New
instance. Return or propagate the existing database initialization error
consistently with the other DB-backed loader branches, preventing construction
with a nil dbc and preserving clean error reporting.

In `@pkg/dataloader/featuregateloader/featuregateloader.go`:
- Around line 96-117: Update getFeatureGatesFromGitHub so an error from
fetchFeatureGatesForBranch for one release is recorded and processing continues
with the remaining releases instead of returning nil immediately. Preserve
successfully fetched feature gates in dbFeatureGates, and return the accumulated
results after the loop while retaining per-release error context through the
existing logger.
- Around line 282-296: Update fetchFeatureGatesForBranch to warn whenever a
filename beginning with featureGate- fails parseFeatureGateFilename, while
continuing the existing handling for valid files. Tighten featureGateFilenameRe
and its parsing assumptions so topology and featureSet cannot absorb extra
hyphen-separated segments, rejecting unexpected or hyphenated names instead of
silently accepting them.

---

Nitpick comments:
In `@pkg/dataloader/featuregateloader/featuregateloader_test.go`:
- Around line 166-207: Replace the manual filtering loop in
TestGitHubContentParsing with an httptest.Server-backed integration-style test
of fetchFeatureGatesForBranch, configuring githubAPIBase and httpClient to use
the server. Return representative directory JSON from the server and assert only
the valid feature-gate file is selected, thereby exercising listDirectory, doGet
status handling, and the production filter path.

In `@pkg/dataloader/featuregateloader/featuregateloader.go`:
- Around line 195-221: Update FeatureGateLoader.doGet to retry transient GitHub
throttling responses (403/429 with exhausted rate limit) and 5xx responses using
a small bounded backoff. Honor Retry-After and X-RateLimit-Reset when
calculating delays, then return an error after retries are exhausted that
includes the relevant rate-limit headers and existing request context.
- Around line 41-51: Document the GITHUB_TOKEN environment variable in the
relevant configuration README, including that it authenticates GitHub requests
and avoids unauthenticated rate limits. Optionally update the startup path
around FeatureGateLoader.New to log only whether a token is configured, never
its value.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

Comment thread cmd/sippy/load.go
Comment thread pkg/dataloader/featuregateloader/featuregateloader.go Outdated
Comment thread pkg/dataloader/featuregateloader/featuregateloader.go
@mstaeble
mstaeble force-pushed the worktree-feature-gate-loader-optimization branch from 7d4ca91 to 7781b83 Compare July 27, 2026 02:35
@openshift-ci openshift-ci Bot added the ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review label Jul 27, 2026
@mstaeble
mstaeble marked this pull request as ready for review July 27, 2026 02:40
@mstaeble mstaeble changed the title [WIP] TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader Jul 27, 2026
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 27, 2026
@openshift-ci
openshift-ci Bot requested review from deepsm007 and neisw July 27, 2026 02:41
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e

mstaeble and others added 2 commits July 28, 2026 15:39
…feature gate loader

The feature gate loader took ~3.5 minutes per hourly run, with ~3m10s
spent cloning the openshift/api repo via go-git. This replaces the clone
with GitHub Contents API calls (one directory listing per release branch
plus raw file downloads) and converts DB writes from GORM CreateInBatches
to PostgreSQL COPY protocol via db.CopyToTempTable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mstaeble
mstaeble force-pushed the worktree-feature-gate-loader-optimization branch from 7781b83 to 2b29be4 Compare July 28, 2026 19:40
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e

@petr-muller petr-muller left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

/hold
lgtm, consider checking whether we could use GH API client lib Sippy already uses elsewhere instead of implementing a local new small client

httpClient := &http.Client{Timeout: 30 * time.Second}

return &FeatureGateLoader{
ctx: ctx,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

:suspect: storing context in structs is typically an antipattern, should Load have this instead?

EDIT: Load comes from DataLoader interface so this is preexisting, we would need to fix the interface and possible wire through the contexts differently => disregard

req.Header.Set("Authorization", "token "+l.githubToken)
}

resp, err := l.httpClient.Do(req) //nolint:gosec

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It's not a big deal but Sippy already has a dep on gh api client libraries (used in https://github.com/openshift/sippy/blob/main/pkg/dataloader/prowloader/github/github.go) so we could use that over hand-rolling a one-off plain client. The lib probably has logic for GH API nuances such as rate limits, retries etc.

But this does not seem like a busy client so just for consideration.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

That's a good suggestion. Let me work on what that would look like. I seem to recall that there were limitations in what that client offered with regards to downloading individual files.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 29, 2026
@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 29, 2026
@mstaeble mstaeble changed the title TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader [WIP] TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader Jul 29, 2026
@mstaeble
mstaeble marked this pull request as draft July 29, 2026 13:16
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 29, 2026
…lient

Replace the custom HTTP client with the existing go-github client from
pkg/dataloader/prowloader/github. This reuses the shared authentication
logic (GitHub App credentials, personal access tokens) and eliminates
the need for custom URL validation and HTTP helpers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jul 29, 2026
@mstaeble

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@mstaeble mstaeble changed the title [WIP] TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader Jul 29, 2026
@mstaeble
mstaeble marked this pull request as ready for review July 29, 2026 14:01
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 29, 2026
@openshift-ci
openshift-ci Bot requested review from smg247 and stbenjam July 29, 2026 14:02

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 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 `@pkg/dataloader/featuregateloader/featuregateloader.go`:
- Around line 143-162: Update FeatureGateLoader.downloadFile to replace the
invalid l.ghClient.Client() call with a separate unauthenticated http.Client
configured with a 30-second timeout, and use it to execute the request while
preserving the existing context, status validation, and response-body handling.
- Around line 204-214: Update the source SELECT in the feature-gate upsert
executed by the visible Exec call to deduplicate rows by (release, topology,
feature_set, feature_gate), using DISTINCT ON or an equivalent approach.
Preserve the existing selected values and conflict-update behavior while
ensuring only one source row per conflict key reaches ON CONFLICT.
🪄 Autofix (Beta)

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: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: bda7532e-544d-4d38-9a94-de49165df163

📥 Commits

Reviewing files that changed from the base of the PR and between 7d4ca91 and 2b92199.

⛔ Files ignored due to path filters (515)
  • go.sum is excluded by !**/*.sum, !go.sum
  • vendor/github.com/ProtonMail/go-crypto/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/PATENTS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/eax/eax.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/armor/armor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/canonical_text.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/ed25519/ed25519.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/ed448/ed448.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/elgamal/elgamal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/keys.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/compressed.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config_v5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/encrypted_key.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/literal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/marker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/notation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/ocfb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/one_pass_signature.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet_sequence.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/padding.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/reader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/recipient.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userid.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_cache.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/x25519/x25519.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/ProtonMail/go-crypto/openpgp/x448/x448.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x25519/curve.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.h is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x25519/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x25519/key.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x25519/table.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x448/curve.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.h is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x448/curve_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x448/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x448/key.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/dh/x448/table.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/ecc/goldilocks/point.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/conv/conv.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/rc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/sha3.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.s is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/shake.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/xor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp25519/fp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.h is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.s is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp25519/fp_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp448/fp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.h is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp448/fp_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/integer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/mlsbset/power.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/primes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/math/wnaf.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed25519/modular.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed25519/mult.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed25519/point.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed25519/signapi.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed25519/tables.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed448/ed448.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/ed448/signapi.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cloudflare/circl/sign/sign.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/COPYING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/LICENSE.BSD is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/LICENSE.MPL-2.0 is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/VERSION is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/codecov.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/internal/consts/consts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/join.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cyphar/filepath-securejoin/vfs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/containers/containers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/containers/enumerable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/containers/iterator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/containers/serialization.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/lists/arraylist/arraylist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/lists/arraylist/enumerable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/lists/arraylist/iterator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/lists/arraylist/serialization.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/lists/lists.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/trees/binaryheap/binaryheap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/trees/binaryheap/iterator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/trees/binaryheap/serialization.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/trees/trees.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/utils/comparator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/utils/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/emirpasic/gods/utils/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/README is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/scanner/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/scanner/scanner.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/token/position.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/token/serialize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/token/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/types/bool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/types/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/types/enum.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/types/int.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/gcfg/types/scan.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/fs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/helper/chroot/chroot.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/helper/polyfill/polyfill.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/memfs/memory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/memfs/storage.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/osfs/os.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/osfs/os_bound.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/osfs/os_chroot.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/osfs/os_js.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/osfs/os_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/osfs/os_plan9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/osfs/os_posix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/osfs/os_wasip1.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/osfs/os_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/util/glob.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/util/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-billy/v5/util/walk.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/COMPATIBILITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/EXTENDING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/blame.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/config/branch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/config/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/config/modules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/config/refspec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/config/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/internal/path_util/path_util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/internal/revision/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/internal/revision/scanner.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/internal/revision/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/internal/url/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/object_walker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/oss-fuzz.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/cache/buffer_lru.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/cache/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/cache/object_lru.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/color/color.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/filemode/filemode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/config/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/config/decoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/config/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/config/encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/config/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/config/option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/config/section.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/diff/colorconfig.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/diff/patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/diff/unified_encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/pattern.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/decoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/idxfile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/index/decoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/index/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/index/encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/index/index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/index/match.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/reader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/delta_index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/delta_selector.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/diff_delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/fsobject.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/object_pack.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/packfile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/patch_delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/scanner.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/scanner.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/hash/hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/hash/hash_sha1.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/hash/hash_sha256.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/memory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/blob.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/change.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/change_adaptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/commit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/commit_scanner.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_bfs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_bfs_filtered.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_ctime.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_limit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/difftree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/merge_base.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/rename.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/signature.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/tag.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/tag_scanner.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/object/treenoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs_decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs_encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/capability/capability.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/capability/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/gitproto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/report_status.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/shallowupd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/demux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/muxer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/srvresp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq_decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq_encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq_decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq_encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/uppackreq.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/uppackresp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/revision.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/revlist/revlist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/storer/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/storer/index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/storer/object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/storer/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/storer/shallow.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/storer/storer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/client/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/file/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/file/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/git/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/http/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/http/receive_pack.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/http/transport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/http/upload_pack.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/internal/common/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/internal/common/mocks.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/internal/common/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/server/loader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/server/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/ssh/auth_method.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/plumbing/transport/ssh/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/prune.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/remote.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/repository.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/repository_extensions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/signer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/status.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/deltaobject.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit_rewrite_packed_refs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit_setref.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/reader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/repository_filesystem.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/writers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/writers_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/writers_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/module.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/shallow.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/filesystem/storage.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/memory/storage.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/storage/storer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/submodule.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/binary/read.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/binary/write.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/diff/diff.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/ioutil/common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/change.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/difftree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/doubleiter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/filesystem/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/index/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/internal/frame/frame.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/iter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/noder/noder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/merkletrie/noder/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/sync/bufio.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/sync/bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/sync/zlib.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/utils/trace/trace.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/worktree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/worktree_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/worktree_commit.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/worktree_js.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/worktree_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/worktree_plan9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/worktree_status.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/worktree_unix_other.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-git/go-git/v5/worktree_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/groupcache/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/groupcache/lru/lru.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jbenet/go-context/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jbenet/go-context/io/ctxio.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/.mailmap is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/AUTHORS.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/position.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/kevinburke/ssh_config/validators.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/Dockerfile.arm is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64 is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/detection.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/internal/const.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/sha1cd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.s is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/sha1cdblock_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/sha1cdblock_arm64.s is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/sha1cdblock_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/sha1cdblock_noasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/ubc/const.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pjbgf/sha1cd/ubc/ubc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/CONTRIBUTORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/diffmatchpatch/diff.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/diffmatchpatch/diffmatchpatch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/diffmatchpatch/match.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/diffmatchpatch/mathutil.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/diffmatchpatch/operation_string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/diffmatchpatch/patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sergi/go-diff/diffmatchpatch/stringutil.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/skeema/knownhosts/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/skeema/knownhosts/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/skeema/knownhosts/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/skeema/knownhosts/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/skeema/knownhosts/knownhosts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/xanzy/ssh-agent/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/xanzy/ssh-agent/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/xanzy/ssh-agent/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/xanzy/ssh-agent/pageant_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/xanzy/ssh-agent/sshagent.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/xanzy/ssh-agent/sshagent_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/argon2/argon2.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/argon2/blake2b.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/argon2/blamka_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/argon2/blamka_amd64.s is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/argon2/blamka_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/argon2/blamka_ref.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/blake2b/blake2b.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/blake2b/blake2b_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/blake2b/blake2b_ref.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/blake2b/blake2x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/blake2b/go125.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/blake2b/register.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/sha3/hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/sha3/legacy_hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/sha3/legacy_keccakf.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/sha3/shake.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/ssh/agent/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/ssh/agent/forward.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/ssh/agent/keyring.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/ssh/agent/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/context/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socks/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/internal/socks/socks.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/proxy/dial.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/proxy/direct.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/proxy/per_host.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/proxy/proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/proxy/socks5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/sys/execabs/execabs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/sys/execabs/execabs_go118.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/sys/execabs/execabs_go119.go is excluded by !vendor/**, !**/vendor/**
  • vendor/gopkg.in/warnings.v0/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/gopkg.in/warnings.v0/README is excluded by !vendor/**, !**/vendor/**
  • vendor/gopkg.in/warnings.v0/warnings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/modules.txt is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (5)
  • cmd/sippy/load.go
  • go.mod
  • pkg/dataloader/featuregateloader/featuregateloader.go
  • pkg/dataloader/featuregateloader/featuregateloader_test.go
  • pkg/dataloader/prowloader/github/github.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • go.mod

Comment thread pkg/dataloader/featuregateloader/featuregateloader.go
Comment thread pkg/dataloader/featuregateloader/featuregateloader.go
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e

@petr-muller petr-muller left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

/hold cancel

@openshift-ci openshift-ci Bot added lgtm Indicates that a PR is ready to be merged. and removed do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Jul 30, 2026
@openshift-ci

openshift-ci Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mstaeble, petr-muller

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [mstaeble,petr-muller]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci

openshift-ci Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

@mstaeble: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-merge-bot
openshift-merge-bot Bot merged commit 7c137a2 into openshift:main Jul 30, 2026
11 checks passed
@mstaeble
mstaeble deleted the worktree-feature-gate-loader-optimization branch July 30, 2026 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants