TRT-2802: Replace git clone with GitHub API and COPY protocol in feature gate loader - #3832
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: automatic mode |
|
@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. DetailsIn response to this:
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. |
|
Skipping CI for Draft Pull Request. |
WalkthroughFeature 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. ChangesGitHub Feature Gate Loading
Estimated code review effort: 4 (Complex) | ~45 minutes Suggested labels: Suggested reviewers: 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
🚥 Pre-merge checks | ✅ 20 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (20 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ba02044 to
7d4ca91
Compare
|
@coderabbitai full review |
✅ Action performedFull review finished. |
✅ Action performedFull 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. |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (3)
pkg/dataloader/featuregateloader/featuregateloader.go (2)
195-221: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winNo retry/backoff for GitHub throttling.
Roughly ~40 requests per branch × 9 branches on every load run; a single 403/429 with
X-RateLimit-Remaining: 0or a transient 5xx currently fails the run. A small retry with backoff (honoringRetry-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 winDocument the new
GITHUB_TOKENenvironment variable.
Newnow silently depends onGITHUB_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.mdor 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 winThis 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 validatesencoding/json. PointinggithubAPIBase/httpClientat anhttptest.Serverwould let you coverlistDirectory,doGetstatus 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
7d4ca91 to
7781b83
Compare
|
Scheduling required tests: |
…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>
7781b83 to
2b29be4
Compare
|
Scheduling required tests: |
petr-muller
left a comment
There was a problem hiding this comment.
/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, |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
TRT-2802: Use existing go-github client instead of hand-rolled HTTP client replaces the hand-rolled HTTP client.
…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>
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
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
⛔ Files ignored due to path filters (515)
go.sumis excluded by!**/*.sum,!go.sumvendor/github.com/ProtonMail/go-crypto/AUTHORSis excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORSis excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/PATENTSis excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/eax/eax.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/ocb/ocb.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/armor/armor.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/canonical_text.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/ed25519/ed25519.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/ed448/ed448.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/elgamal/elgamal.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/hash.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/keys.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/compressed.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config_v5.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/encrypted_key.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/literal.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/marker.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/notation.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/ocfb.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/one_pass_signature.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet_sequence.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet_unsupported.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/padding.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/reader.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/recipient.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userid.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/read.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_cache.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_config.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/write.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/x25519/x25519.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/ProtonMail/go-crypto/openpgp/x448/x448.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x25519/curve.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.his excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.sis excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x25519/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x25519/key.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x25519/table.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x448/curve.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.his excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.sis excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x448/curve_generic.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x448/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x448/key.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/dh/x448/table.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/ecc/goldilocks/point.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/conv/conv.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/hashes.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/keccakf.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/rc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/sha3.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.sis excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/shake.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/xor.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp25519/fp.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.his excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.sis excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp25519/fp_generic.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp448/fp.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.his excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.sis excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp448/fp_generic.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/fp448/fuzzer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/integer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/mlsbset/power.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/primes.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/math/wnaf.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed25519/modular.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed25519/mult.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed25519/point.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed25519/signapi.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed25519/tables.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed448/ed448.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/ed448/signapi.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cloudflare/circl/sign/sign.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/CHANGELOG.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/COPYING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/LICENSE.BSDis excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/LICENSE.MPL-2.0is excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/VERSIONis excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/codecov.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/internal/consts/consts.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/join.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/cyphar/filepath-securejoin/vfs.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/containers/containers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/containers/enumerable.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/containers/iterator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/containers/serialization.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/lists/arraylist/arraylist.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/lists/arraylist/enumerable.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/lists/arraylist/iterator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/lists/arraylist/serialization.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/lists/lists.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/trees/binaryheap/binaryheap.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/trees/binaryheap/iterator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/trees/binaryheap/serialization.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/trees/trees.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/utils/comparator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/utils/sort.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/emirpasic/gods/utils/utils.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/READMEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/errors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/read.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/scanner/errors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/scanner/scanner.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/set.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/token/position.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/token/serialize.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/token/token.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/types/bool.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/types/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/types/enum.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/types/int.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/gcfg/types/scan.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/fs.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/helper/chroot/chroot.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/helper/polyfill/polyfill.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/memfs/memory.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/memfs/storage.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/osfs/os.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/osfs/os_bound.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/osfs/os_chroot.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/osfs/os_js.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/osfs/os_options.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/osfs/os_plan9.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/osfs/os_posix.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/osfs/os_wasip1.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/osfs/os_windows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/util/glob.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/util/util.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-billy/v5/util/walk.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/CODE_OF_CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/COMPATIBILITY.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/CONTRIBUTING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/EXTENDING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/SECURITY.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/blame.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/config/branch.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/config/config.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/config/modules.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/config/refspec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/config/url.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/internal/path_util/path_util.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/internal/revision/parser.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/internal/revision/scanner.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/internal/revision/token.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/internal/url/url.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/object_walker.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/options.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/oss-fuzz.shis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/cache/buffer_lru.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/cache/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/cache/object_lru.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/color/color.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/error.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/filemode/filemode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/config/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/config/decoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/config/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/config/encoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/config/format.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/config/option.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/config/section.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/diff/colorconfig.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/diff/patch.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/diff/unified_encoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/pattern.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/decoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/encoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/idxfile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/writer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/index/decoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/index/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/index/encoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/index/index.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/index/match.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/reader.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/writer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/delta_index.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/delta_selector.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/diff_delta.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/encoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/error.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/fsobject.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/object_pack.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/packfile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/parser.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/patch_delta.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/scanner.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/encoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/error.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/scanner.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/hash.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/hash/hash.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/hash/hash_sha1.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/hash/hash_sha256.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/memory.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/blob.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/change.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/change_adaptor.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/commit.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/commit_scanner.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_bfs.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_bfs_filtered.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_ctime.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_limit.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/commit_walker_path.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/difftree.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/file.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/merge_base.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/object.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/patch.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/rename.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/signature.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/tag.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/tag_scanner.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/tree.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/object/treenoder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs_decode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs_encode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/capability/capability.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/capability/list.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/filter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/gitproto.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/report_status.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/shallowupd.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/demux.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/muxer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/srvresp.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq_decode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq_encode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq_decode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq_encode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/uppackreq.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/uppackresp.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/reference.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/revision.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/revlist/revlist.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/storer/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/storer/index.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/storer/object.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/storer/reference.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/storer/shallow.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/storer/storer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/client/client.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/file/client.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/file/server.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/git/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/http/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/http/receive_pack.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/http/transport.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/http/upload_pack.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/internal/common/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/internal/common/mocks.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/internal/common/server.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/server/loader.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/server/server.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/ssh/auth_method.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/plumbing/transport/ssh/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/prune.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/remote.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/repository.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/repository_extensions.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/signer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/status.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/config.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/deltaobject.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit_rewrite_packed_refs.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit_setref.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/reader.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/repository_filesystem.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/writers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/writers_unix.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/writers_windows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/index.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/module.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/object.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/reference.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/shallow.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/filesystem/storage.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/memory/storage.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/storage/storer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/submodule.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/binary/read.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/binary/write.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/diff/diff.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/ioutil/common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/change.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/difftree.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/doubleiter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/filesystem/node.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/index/node.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/internal/frame/frame.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/iter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/noder/noder.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/merkletrie/noder/path.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/sync/bufio.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/sync/bytes.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/sync/zlib.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/utils/trace/trace.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/worktree.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/worktree_bsd.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/worktree_commit.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/worktree_js.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/worktree_linux.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/worktree_plan9.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/worktree_status.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/worktree_unix_other.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-git/go-git/v5/worktree_windows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/golang/groupcache/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/golang/groupcache/lru/lru.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/jbenet/go-context/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/jbenet/go-context/io/ctxio.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/.gitattributesis excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/.mailmapis excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/AUTHORS.txtis excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/CHANGELOG.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/config.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/lexer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/parser.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/position.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/token.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/kevinburke/ssh_config/validators.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/Dockerfile.armis excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64is excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/detection.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/internal/const.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/sha1cd.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.sis excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/sha1cdblock_arm64.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/sha1cdblock_arm64.sis excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/sha1cdblock_generic.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/sha1cdblock_noasm.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/ubc/const.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/pjbgf/sha1cd/ubc/ubc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/AUTHORSis excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/CONTRIBUTORSis excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/diffmatchpatch/diff.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/diffmatchpatch/diffmatchpatch.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/diffmatchpatch/match.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/diffmatchpatch/mathutil.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/diffmatchpatch/operation_string.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/diffmatchpatch/patch.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/sergi/go-diff/diffmatchpatch/stringutil.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/skeema/knownhosts/CONTRIBUTING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/skeema/knownhosts/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/skeema/knownhosts/NOTICEis excluded by!vendor/**,!**/vendor/**vendor/github.com/skeema/knownhosts/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/skeema/knownhosts/knownhosts.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/xanzy/ssh-agent/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/xanzy/ssh-agent/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/xanzy/ssh-agent/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/xanzy/ssh-agent/pageant_windows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/xanzy/ssh-agent/sshagent.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/xanzy/ssh-agent/sshagent_windows.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/argon2/argon2.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/argon2/blake2b.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/argon2/blamka_amd64.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/argon2/blamka_amd64.sis excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/argon2/blamka_generic.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/argon2/blamka_ref.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blake2b/blake2b.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.sis excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blake2b/blake2b_amd64.sis excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blake2b/blake2b_generic.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blake2b/blake2b_ref.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blake2b/blake2x.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blake2b/go125.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blake2b/register.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/sha3/hashes.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/sha3/legacy_hash.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/sha3/legacy_keccakf.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/sha3/shake.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/ssh/agent/client.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/ssh/agent/forward.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/ssh/agent/keyring.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/ssh/agent/server.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/net/context/context.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/net/internal/socks/client.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/net/internal/socks/socks.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/net/proxy/dial.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/net/proxy/direct.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/net/proxy/per_host.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/net/proxy/proxy.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/net/proxy/socks5.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/sys/execabs/execabs.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/sys/execabs/execabs_go118.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/sys/execabs/execabs_go119.gois excluded by!vendor/**,!**/vendor/**vendor/gopkg.in/warnings.v0/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/gopkg.in/warnings.v0/READMEis excluded by!vendor/**,!**/vendor/**vendor/gopkg.in/warnings.v0/warnings.gois excluded by!vendor/**,!**/vendor/**vendor/modules.txtis excluded by!vendor/**,!**/vendor/**
📒 Files selected for processing (5)
cmd/sippy/load.gogo.modpkg/dataloader/featuregateloader/featuregateloader.gopkg/dataloader/featuregateloader/featuregateloader_test.gopkg/dataloader/prowloader/github/github.go
🚧 Files skipped from review as they are similar to previous changes (1)
- go.mod
|
Scheduling required tests: |
|
[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 DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@mstaeble: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions 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. |
Summary
go-gitclone ofopenshift/api(~3m10s per hourly load cycle) with GitHub Contents API calls, reducing fetch time to ~7 seconds for all 9 release branchesCreateInBatchesto PostgreSQL COPY protocol viadb.CopyToTempTable, reducing upsert time (114ms COPY + 142ms upsert for 5,338 rows)go-gitand 16 transitive dependencies (~117k lines of vendored code)Test plan
make lintpassesmake testpasses (new unit tests forparseFeatureGateFilename,convertAPIToDB,isAllowedDownloadURL, GitHub JSON parsing)make e2epasses🤖 Generated with Claude Code
Summary by CodeRabbit
Summary by CodeRabbit
New Features
Bug Fixes
Tests