Sourcegraph 6.0.12741
This is a patch release for Sourcegraph 6.0.
Details
Fixes
- Update cody web to 0.31.1 to fix issue with pasting linebreaks (#3696)
fix: prompt templates should not fail when pasting linebreaks
This is a patch release for Sourcegraph 6.0.
fix: prompt templates should not fail when pasting linebreaks
This is a patch release for Sourcegraph 6.1.
Added support for chain-of-thought reasoning in Anthropic models, allowing users to see the model's thinking process for complex tasks.
Backport 389bf9a4f2cf8ed7762cf8876b0efe4064e2b234 from #3507
This is a patch release for Sourcegraph 6.1.
Fixes a bug in SCIP index processing for instances with a long history
of processing large uploads.
Backport 48e7b47898ee7710f12270c6861c335a2ef75f48 from #3595
fix: transformChanges.group.directory now ignores file names
Backport 3b76fe4ab146565b0e736231353b1e24f1468241 from #3576
fix(rel): remove TimescaleDB from existing database if found during upgrade to Postgres 16 on the codeinsights database.
Backport 71b4af3d6faef054803db0151b2cc7b151bb1c0e from #3556
Source: {}, which wasn't helpful.
GET access to /.api/agent/* endpoints for non-site admins
Backport 321543c38aab312c7d3924e19617f9f247c3a5fa from #3504
OpenAI o3-mini high reasoning model now available for Enterprise customers. [...]
Streamlined prompt template UI with context options in @-mentions menu. [...]
Deprecating and removing older models from Cody. [...]
opened and synchronize) based on a feature flag. Both boolean (true/false) and rollout (percentage-based ) feature flags are supported. For example, this means you can enable automatic reviews on 10% of all opened PRs.Code reviews deduplicate diagnostics from historical reviews
Adds a feedback UI for diagnostics within the Agents app.
feat: prompt templates editor supports dynamic @ mentions
GET /.api/agents/runs to list runs of an agent, and other related endpoints including the ability to view logsMove Gemini 2.0 Flash from Experimental to GA, add Gemini 2.0 Flash-Lite Preview Experimental and Gemini 2.0 Pro Experimental
Adds HTTP handlers for /.api/conversations for creating and filtering conversations as well as a DB method for querying conversations.
Fix bug where the URL of a Gerrit code host connection could not be updated.
The logic that translates Bitbucket clone URLs to repository names has been fixed to support:
"bitbucket.sgdev.org/sourcegraph/sourcegraph")ssh:// scheme prefix (like [email protected]:sourcegraph/sourcegraph.git)A bug on the user's account security page that could result in duplicated / buggy entries has been fixed.
*.go) instead of regexp (.*\.go). Negative include patterns like !*.go will be interpreted as exclude patterns, and vice versa.fix/auth: "http-header" auth provider can "allowSignup": false to disable automatic account creation
fix(rel): fix migrator upgrade check
fix: prompt templates should not fail when pasting linebreaks
.svelte filesRemove support for OpenAI o1-mini model.
Deprecate Gemini 1.5 Flash, Claude 3 Opus, Claude 3 Haiku, and Mixtral 8x7B
Adding O3 mini model to OpenAI (PR #3254)
Release src-cli 6.0.0
Adds agent_conversations and agent_conversation_messages tables as well as ConversationStore
This is a patch release for Sourcegraph 6.0.
feat: prompt templates editor supports dynamic @ mentions
PR description tips: https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e
Move Gemini 2.0 Flash from Experimental to GA, add Gemini 2.0 Flash-Lite Preview Experimental and Gemini 2.0 Pro Experimental
Co-authored-by: arafatkatze arafat.da.khan@gmail.com (cherry picked from commit 4aa5aa41cc0f5e2be80c77e8e8709e198ff54b94)
PR description tips: https://www.notion.so/sourcegraph/Write-a-good-pull-request-description-610a7fd3e613496eb76f450db5a49b6e
Fix bug where the URL of a Gerrit code host connection could not be updated.
(cherry picked from commit e6da1ceb9586bf109339f06220c1fdbbf570a6d9)
Commit listing should work correctly for repos which contain arbitrary characters in commit messages. This also affects downstream functionality such as commit graph updates needed for precise code navigation.
Backport 2eae8e1 from #3359
(PR #3300)This is a patch release for Sourcegraph 5.9.
fix: retry graphql queries that failed with 502
OPTIONAL; info at https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c
Backport a29c6dc from #1585
Unified interface combining AI-powered chat and code search. [...]
Combines Cody chat and Code Search into a single unified interface.
.sourcegraph/review-agent.json with at least the content "{}" to enable posting Pull Requests review through the GitHub App. The JSON file may contain additional configuration options to override defaults of the ReviewRequestConfiguration object (see OpenAPI spec)*.rule.md files nested under .sourcegraph/ directories in any ancestor director of files in the diff./.api/agents/** endpoints to manage the creation of Sourcegraph Agents (EAP feature).feat: prompt templates now support specific @ mentions
GET /.api/tools endpoint to list tool definitions for Sourcegraph API endpoints to use with the LLM /chat/completions endpoint for function calling.POST /.api/review/diff endpoint to get a list of code review comments given a git diff (including GitHub pull requests and Gitlab merge requests)./.api/llm/chat/completions endpoint now support function calling via the tools property. This feature works when using the LLM providers: OpenAI, Anthropic, Fireworks, AWS Bedrock, and Gemini.OPTIONAL; info at https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c
Improved highlighting for JSON files
fix(rel): add handling for permissions errors when handling custom Postgres configurations in database containers.
Backport 67bddb2 from #3041
Backport dc8deea005067145855b03a3344675386bc75be7 from #3078
Backport 9639850855bb169f7dee4fbcff869c77c17f9328 from #3007
NA - no customer facing changes
NA
N/A
We are changing the behavior of session expiration to be a hard-cap instead of a rolling window.
auth.sessionExpiry will now set a hard-limit on the sessions lifetime, and users will have to re-authenticate after this period.
To preserve the previous behavior where sessions would be invalidated after they haven't been used for a while, a new configuration option named auth.maxSessionIdleDuration has been introduced that controls session expiration based on inactivity.
Fixed an issue where Sourcegraph user sessions initiated via OAuth integrations did not respect the auth.sessionExpiry configuration and expired much earlier.
In the site admin configuration for code graph policies, restricts the creation of policies for syntactic indexing to HEAD-only. This restriction may be lifted in the future. Policies for precise auto-indexing are not affected.
404 errors when trying to load "authSidebar.js" when the Code Search VS Code extension is used with the VSCode Remote SSH extensionfix: don't show current prompt in suggestions
N/A
OPTIONAL; info at https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c
Backport 07c56ed from #3160
/.api/review** and /.api/tool. For example, GET /.api/reviews/diagnostics/ID instead of GET /.api/review/diagnostic. See OpenAPI spec for updated paths.
Backport 864c824e184a7dc84df694797c5603883d72ccf1 from #3028
Adds implementations for GET .api/agents/review/{review_id}, GET .api/agents/review/diagnostic/{diagnostic_id}/, and POST .api/agents/review/diagnostic/{diagnostic_id}/feedback
Update Cody to 0.24.0
(PR #2898)./api/llm/chat/completions only streams response if "stream": true is passed in the request body
Auto-indexing is disabled for forks and archived repositories. This is currently not configurable.
Fixed an issue with Bitbucket Cloud permission syncing where inherited permissions and group permissions were not correctly reflected.
This is a patch release for Sourcegraph 5.11.
This is a patch release for Sourcegraph 5.11.
NA
This is a patch release for Sourcegraph 5.11.
Publish signatures for release containers.
Backport c11764be4adb377521e4067c4852953d7c434e24 from #2697
fix(rel): fix issue with Postgres docker container failing upgrades after an unclean database shutdown.
Backport ca5185ce2528b67e1ce6bcb5170f96d3699e11e0 from #2660
Fixed an issue where Bitbucket Cloud permission syncs could produce incomplete results, resulting in lacking permissions.
Backport 389661481f0f0a2385ef4f78f4113ab6ba14f4d5 from #2699
This is a patch release for Sourcegraph 5.11.
This is a patch release for Sourcegraph 5.11.
failed to prepare workspace: failed to create ext4 filesystem in backing file: "mke2fs 1.45.5 (07-Jan-2020)\nThe file losetup: /var/lib/firecracker/loop-devices/workspace-loop-47749-3763347387: Warning: file is smaller than 512 bytes; the loop device may be useless or invisible for system tools.\n/dev/loop13 does not exist and no size was specified.\n": exit status 1EXECUTOR_FIRECRACKER_DISK_SPACE feat(batches): more telemetry events
feat: extend prompt tags with pagination and increased limit
Sourcegraph now supports App-level GitHub App connections that aren't tied to a specific Installation ID.
feat: editing tags on prompts
feat: management page prompt categories
feat: add tags as filter to prompts and their navigation
Special uppercase regex tokens are no longer inverted for repository name search. eg repo:foo\B correctly interprets \B as not at ASCII word boundary. Previously it would transform the expression into repo:foo\b.
feat: add prompt labels to the GraphQL API
feat: calculate contributor stats
<details>
➜ sourcegraph git:(wg/rel/post-release-5-10-fixup) ✗ bazel run //testing/tools/upgradetest:sh_upgradetest_run -- all -svs 5.9.0 -mvs 5.8.0 -avs 5.8.0 -pv 5.10.2832
INFO: Analyzed target //testing/tools/upgradetest:sh_upgradetest_run (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //testing/tools/upgradetest:sh_upgradetest_run up-to-date:
bazel-bin/testing/tools/upgradetest/sh_upgradetest_run
Aspect @@rules_rust//rust/private:clippy.bzl%rust_clippy_aspect of //testing/tools/upgradetest:sh_upgradetest_run up-to-date (nothing to build)
INFO: Elapsed time: 1.165s, Critical Path: 0.72s
INFO: 5 processes: 1 internal, 4 darwin-sandbox.
INFO: Build completed successfully, 5 total actions
INFO: Running command line: bazel-bin/testing/tools/upgradetest/sh_upgradetest_run testing/tools/upgradetest/go_upgradetest_/go_upgradetest cmd/migrator/image_tarball.sh cmd/frontend/no_client_bundle.image_tarball.sh docker-images/postgresql-16/image_tarball.sh docker-images/postgresql-16-codeinsights/image_tarball.sh internal/database/_codeinsights_squashed.sql internal/database/_codeinsights_tenant_data_squashed.sql internal/database/_codeintel_squashed.sql internal/database/_codeintel_tenant_data_squashed.sql internal/database/_frontend_squashed.sql internal/database/_frontend_tenant_data_squashed.sql internal/database/_schema.codeinsights.json internal/database/_schema.codeinsights.md internal/database/_schema.codeintel.json internal/database/_schema.codeintel.md internal/database/_schema.json internal/database/_schema.md all -svs 5.9.0 -mvs 5.8.0 -avs 5.8.0 -pv 5.10.2832
Loaded image: migrator:candidate
Loaded image: frontend:candidate
Loaded image: postgresql-16:candidate
Loaded image: postgresql-16-codeinsights:candidate
👉 Upgrade test ...
Latest stable release version: 5.10.2832
Latest minor version: 5.10.0
Target version: 5.10.2832
Migrator image used to upgrade: sourcegraph/migrator:5.10.2832
Standard Versions: [5.9.0]
Multiversion Versions: [5.8.0]
Autoupgrade Versions: [5.8.0]
auto: 5.8.0
mvu: 5.8.0
std: 5.9.0
--- 🕵️ Standard Upgrade Tests:
✅ 5.9.0 Passed -- 1m16.366600375s
--- 🕵️ Multiversion Upgrade Tests:
✅ 5.8.0 Passed -- 1m17.939247958s
--- 🕵️ Auto Upgrade Tests:
✅ 5.8.0 Passed -- 1m24.54765675s
</details>
Backport 8dc831953f43bbe9f6b9cb5467ef263b757425ac from #2374
N/A
N/A
N/A
Properly report symbols for TypeScript type aliases
fix: remove surplus typename
N/A
KUBERNETES_RUN_AS_USER and KUBERNETES_RUN_AS_GROUP.Narrowed down the stopwords list used in Cody context, to fix an issue where we could miss highly relevant files.
Fixes a bug in Cody context where airgapped instances would attempt to use the reranker model, which increased the context retrieval latency.
Fixed an issue with Bitbucket Cloud permission syncing where inherited permissions and group permissions were not correctly reflected.
OPTIONAL; info at https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c
Cody Gateway: add support to Google's Gemini 2.0 Flash Experimental model.
N/A
The default values for repo permission syncing have been adjusted. If you specified overrides, this means no change on your instance.
Adjusted defaults:
permissions.syncScheduleInterval is now 60s instead of 15s, in favor of scheduling more jobs at once (see below).
permissions.syncOldestUsers and permissions.syncOldestRepos have been adjusted to 100 from 10 to schedule pending permission sync jobs faster.
permissions.syncJobCleanupInterval has been bumped from every minute to every hour. Cleaning completed jobs is purely to prevent unbounded growth and every minute was more aggressive than necessary.
The default concurrency for repo- and user-centric sync jobs has been bumped from 1 to 5 to account for larger instances. Historically, GitHub prevented concurrent API access in secondary rate limiting but this has been lifted to be much more lenient long ago. permissions.syncReposMaxConcurrency has also been introduced to compliment permissions.syncUsersMaxConcurrency.
This is a patch release for Sourcegraph 5.10.
OPTIONAL; info at https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c
Backport 3f079a57978179aa2ad3f310195346a8c574f9ce from #2349
We no longer log the postgresql DSN when it changes. Previously this could contain the secret PGPASSWORD.
Backport 2bd9c09969fff536c6fb29108656658d3f875047 from #2272
This is a patch release for Sourcegraph 5.10.
OPTIONAL; info at https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c
Backport 964eceae584e4eff56df9711da68fef7047cbc40 from #2254
fix(rel): change pg_upgrade behavior to use copy instead of hard links
Backport 13caa807d96dd4b5dd872fec2a38322d1888134a from #2192
fix(rel): address issue with readiness check outputting passwords to logs.
Backport 655a739e8e791d7aab1977d2c26543a3a4871809 from #2132
Narrowed down the stopwords list used in Cody context, to fix an issue where we could miss highly relevant files.
Backports https://github.com/sourcegraph/sourcegraph/pull/2223
Backport fbf92aedbb81f00766d7107015b7697352b5c482 from #1812
This is a patch release for Sourcegraph 5.10.
Disabled an indexed search optimization which would skip files accidentally (ZOEKT_DISABLE_GOGIT_OPTIMIZATION=true).
Backport 34ada948bdcee3d75499c98f4db5c32986943e88 from #2050
Cody context now incorporates filename information in reranking, improving context quality when the reranker is enabled.
get, list, and delete workspaces to sgfeat(rel): Add Postgresql 16 and Postgresql 16 codeinsights images to published image list.
feat(rel): Add self updating to Postgres 16 codeinsights db image.
feat(rel): Add self updating to Postgres 16 container image.
A new GraphQL query, GithubAppRepositoriesForInstallation, has been added that provides a paginated list of all the GitHub repositories that are accessible to the GitHub app with the provided installation id.
A simple helper routine to the multitenantenv package that automatically populates a github app struct with the provided validated credentials.
systemPreInstruction to the modelConfiguration key in site admin config that allows injecting a prelude prompt into every chat request for an enterpriseThe GitHub app authentication package now supports authenticating a GitHub app via the OAuth client ID following the announcement of https://github.blog/changelog/2024-05-01-github-apps-can-now-use-the-client-id-to-fetch-installation-tokens/
A new graphql endpoint has been added, GithubAppInstallationsForUser, that returns installation information for the global GitHub multi tenant app when running in multitenant mode.
A new worker job has been added that updates the database with the credentials for the global github app when running in multitenant mode.
The Github API client's GetUserInstallations route, which lists of GitHub App installations the user has access to, now has pagination support.
The routing logic for multitenant mode now has a new route that uses the "last seen tenant" cookie to route github app login authorization callbacks to the appropriate tenant.
N/A
feat(rel): Add Postgres 16 CodeInsights Wolfi image
feat(rel): Add Postgres 16 Wolfi image
gpt-4o-mini to Cody Gateway allow listgpt-4o-mini to DotCom models listNA
Backport a943412a99852332f921b52a0ee3179dc3331d20 from #1958
We sometimes would emit patternType:regex instead of patternType:regexp. We now always do regexp as well as treating regex as an alias for regexp.
Backport a095b39ac39cfcbe3526ecf85ed6d50cb5fa3d9d from #1808
fix(rel): Add vacuum to Postgres upgrade process
This change reduces the risk of secrets being emitted in executor logs even if there are bugs in the secret redaction logic.
The logic in the new multitenant GraphQL resolvers has been reworked to use the new helper methods introduced in the Multitenant GitHub app configuration logic introduced in https://app.graphite.dev/github/pr/sourcegraph/sourcegraph/1758/.
The github_apps table has removed an erroneous unique constraint that accidentally incorporated an app's slug (which is mutable) as part of the unique identifier for an app.
N/A
fix(batches): titles now break over multiple lines if they are too long
Code insights should show correct line counts when enhanced language detection is turned off (note: this setting is on by default).
@ and #)X-Requested-With is now a required HTTP header for Cody API calls
chore(rel): remove unused Postgres 12 images
chore(rel): remove appliance from published images
Prompts including "Document Code", "Explain Code", "Generate Unit Tests", "Find Code Smells"
The multitenant reconciler now proactively inserts the credentials for the shared multitenant GitHub app whenever a new tenant is created.
The github code host connection schema for exclude has been updated to enforce that the name and id fields can't be combined with any other fields.
fix(dev): remove env.Get lock that could cause a runtime panic
The local geolocation inference database used in telemetry and audit logs has been updated.
The site config setting gitUpdateInterval has been deprecated and removed. We are removing it in favor of smarter heuristics like webhooks, user traffic, and repo staleness.
chore/source Update src-cli version to 5.8.2
We have updated the CPU and MEM monitoring panels for Zoekt on Grafana. The new panels reduce redundancy and provide more insight into MEM distribution.
This is a patch release for Sourcegraph 5.9.
When using an instance with a Cody-only license, accessing the home page now correctly redirects you to /cody/dashboard, instead of a non-existent /cody page.
Backport a4cb5a0723bad18e1c215d81231db457d1abfbdb from #1621
OPTIONAL; info at https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c
Backport c4b838103ce2f71e7591ade720e8bdf17f9a5b39 from #1490
repositoryPathPattern property to Azure DevOps code host connections.This is a patch release for Sourcegraph 5.9.
This is a patch release for Sourcegraph 5.9.
Admins can now highlight prompts at the top of the Prompt list to encourage best practices. [...]
Admins can now enforce Perforce access restrictions based on user IP addresses. [...]
OPTIONAL; info at https://www.notion.so/sourcegraph/Writing-a-changelog-entry-dd997f411d524caabf0d8d38a24a878c
Cody Gateway: add new claude-3-5-haiku-latest & claude-3-5-opus-latest models to Cody Gateway allow list
Cody Gateway: add new claude-3-5-haiku-latest dotcom models list
Backport 11e7481ba3c810ae5b47d32b8cf32066e2f0b2bb from #1470
$SRC_ENDPOINT/api/openapi/public. Alternatively, reach the page at "User > Settings > OpenAPI Reference"..api/llm/supported-models.jsonllmTokenUsageCostEstimate telemetry value with estimates of each requests LLM cost in penniesLong-term local retention of user telemetry as 'event logs' can now be disabled entirely via the telemetry: { disableLocalEventLogs } site configuration.
The sub repository permissions implementation now emits logs that describe the rules that were evaluated for a given request whenever tracing is enabled. (We limit these logs for only when tracing is enabled since they can be quite verbose).
source.server.server_client.user_agent./.api/completions/stream API now includes used input/output tokens and the upstream model name in the response body when using the query parameter api-version=5 or higher. Does not apply to: Vertex Anthropic, Azure OpenAI (mo model name, and no token usage in streaming response), Gemini (no model name in streaming response)stream: false when using Azure OpenAI and OpenAI-compatible providers.feat(batches): show name of additional fields that cause errors
format=cody or header Accept: application/cody to render files and directories as context items for Cody. Example request path: /github.com/sourcegraph/cody/-/raw/agent/src/index.ts?format=cody.fix(batches): enable request splitting by default
The documentation for gitserver's ReadDir method has been clarified to reflect that the return iterator's Name() method returns the full path of the file, as opposed to just the basename.
Fixes a bug where logs and traces were sometimes missing key-value pairs recorded alongside errors.
The documentation for the "exclude" section in the github code host connection schema has been clarified to explain that each block is OR'd together, and the expressions within each block are AND'd together.
Prevents default browser shortcuts from modifying the file content locally.
fix(batches): handle spec being nil for suffix salt
Introduces new limits for auto-indexing inference to reduce the risk of continuously growing auto-indexing queues.
Fixes handling of SCIP uploads when the hash passed to the -commit flag of src-cli corresponds to the hash of an annotated tag instead of the hash of a commit. Previously, these uploads were not accessible for code navigation.
repositoryQuery will no longer delete repositories if the sync fails for reasons like a GitHub outage or a token expiring.fix(batches): enable GQL request splitting via BATCH_CHANGES_REQUEST_SPLITTING
Added token usage information to .api/llm/chat/completions
Fixes a bug where hovers were not triggered for less mainstream languages like F#, Standard ML, Visual Basic, Pkl, Hack, MATLAB etc.
This fixes a bug where we would apply a phrase boost if a content: filter was specified with keyword search enabled. This led to inconsistent behavior (regexp vs keyword search) and it also rendered the content: filter ineffective, because we ran a general text search instead of a just a content search.
fix(code-monitor): fail monitors with missing/unverified primary email address
NA
fix(batches): display "Deleted Namespace" instead of throwing an error
Fixes a bug where the retention tab for precise indexes would show a nil pointer exception instead of retention information.
n/a
Cody Chat: the context engine now uses the reranker by default everywhere where Cody Gateway is enabled.
A bug in configuration validation in the worker service has been fixed. Configuration mistakes are now correctly reported again.
Added LLM token usage telemetry
KUBERNETES_SINGLE_JOB_STEP_IMAGE is now KUBERNETES_JOB_STEP_IMAGE.KUBERNETES_JOB_STEP_IMAGE, to preserve backward compatibility, but reading of KUBERNETES_SINGLE_JOB_STEP_IMAGE may be removed in a future version.Added a new internal/tracelog package that provides a conditional logger for tracing. This logger only logs when tracing is enabled, improving performance by reducing unnecessary logging.
For the Perforce IP permissions implementation, this PR introduces machinery that implements the ability to parse the IP address expressions from the perforce protections table and compare them against the user's IP address (that's advertised from the incoming X-FORWARDED-FOR header.
Namely, this PR:
Introduced parsePerforceIPString, which parses Perforce IP strings (e.g., CIDR expressions, specific IP addresses) into an ipMatcher for IP validation.
Implemented multiple ipMatcher types, including:
Added toggleableIPMatcher, which either enables or disables IP enforcement based on site configuration settings.
Created matcherCache for caching recent IP string to ipMatcher translations, improving efficiency.
Updated NewRequestClientIPSource to properly derive IP from the x-forwarded-for header.
Added a new ipParseCacheSize configuration option for sub-repo permissions to control the caching of Perforce "Host" to IP address translations.
Added enforceIPRestrictions setting to the SubRepoPermissions section in site configuration, allowing IP-based enforcement using the X-FORWARDED-FOR header.
Updated JSON schema to require SubRepoPermissions to be enabled when enforceIPRestrictions is enabled.
Added validation in Perforce external service configuration to ensure IgnoreRulesWithHost and enforceIPRestrictions cannot be enabled simultaneously.
Updated internal implementation to associate each Perforce rule with an IPMatcher for IP-based rule enforcement.
This PR introduces logic for IP-based permissions in the authz provider for Perforce: 1. Modified interfaces in internal/authz/sub_repo_perms.go to accept caller's IP address for enforcing IP permissions. 2. Introduced a new IPSource interface to provide IP addresses for sub-repo permissions implementation. 3. Updated rule implementation to include an IPMatcher for comparing provided IP addresses with Perforce rule IP addresses.
This change lays the groundwork for supporting IP-based permissions in Perforce authz provider.