Skip to content

Feat/2498 grpc protocol - #2499

Merged
robfrank merged 40 commits into
mainfrom
feat/2498-grpc-protocol
Sep 11, 2025
Merged

Feat/2498 grpc protocol#2499
robfrank merged 40 commits into
mainfrom
feat/2498-grpc-protocol

Conversation

@robfrank

@robfrank robfrank commented Sep 11, 2025

Copy link
Copy Markdown
Collaborator

This is just a copy of #2462

What does this PR do?

This PR introduces full gRPC support for ArcadeDB, providing a strongly-typed, high-performance API for remote access to the database.

Key highlights include:

  • Streaming query execution with multiple retrieval modes:

    • CURSOR – existing behavior, iterating and streaming results as they are retrieved.
    • MATERIALIZE_ALL – materializes all results before streaming in batches.
    • PAGED – reissues queries per batch using LIMIT/SKIP for efficient paging.
  • Insert operations:

    • BulkInsert – single request for large batch inserts.
    • InsertStream – client-streaming bulk insert with server-side batching and acknowledgements.
    • InsertBidirectional – full duplex insert mode with per-batch acknowledgements and commit/rollback control.
  • Record operations:

    • Create, update, and lookup records with schema-aware property handling (including embedded and list properties).
  • Transaction support:

    • Added TransactionContext flags for begin, commit, and rollback to coordinate transactional operations across requests.
    • Enhanced type conversion utilities for safe proto ↔︎ Java object mapping, including embedded documents and collections.
  • Client-side API:

    • Full client-side implementation in RemoteGrpcDatabase with a simple, extensible API.

Motivation

  • To provide a native, efficient, and type-safe remote API for ArcadeDB that goes beyond REST/HTTP performance and reliability limitations.
  • To support streaming use cases and bulk data ingestion for high-volume workloads.
  • To align ArcadeDB with modern distributed and reactive application architectures where gRPC is the standard for service-to-service communication.
  • To improve developer experience with generated client stubs and auto-completion.

Related issues

N/A


Additional Notes

I don't yet have a set of client-side tests. These will be provided shortly.


Checklist

  • mvn -DskipTests install
  • Create a Docker image with mvn clean package -Pdocker in the package module

@gemini-code-assist gemini-code-assist 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.

Summary of Changes

Hello @robfrank, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances ArcadeDB's communication capabilities by integrating a gRPC protocol. This new feature provides a more performant and robust alternative to the existing HTTP API, particularly beneficial for high-throughput data operations and real-time streaming. The changes span both server and client components, ensuring a comprehensive and well-tested implementation, alongside improvements to server-side monitoring for better operational visibility.

Highlights

  • New gRPC Protocol Implementation: A complete gRPC layer has been added, including .proto definitions for various database operations (CRUD, queries, commands, transactions, admin tasks).
  • Dedicated gRPC Client Library: A new arcadedb-grpc-client module provides a Java client that uses the gRPC protocol, offering methods for standard database interactions as well as new streaming and bulk ingest capabilities.
  • Server-Side gRPC Plugin: The arcadedb-grpcw module introduces GrpcServerPlugin to enable and configure the gRPC server within ArcadeDB, supporting standard and XDS modes, TLS, and message compression.
  • Enhanced Observability and Security: Server-side gRPC includes interceptors for logging, metrics (Micrometer), authentication, and compression, providing better insights and control over gRPC traffic.
  • Comprehensive Testing and Benchmarking: New end-to-end tests (RemoteGrpcDatabaseTest, RemoteGrpcDatabaseRegressionTest) and a benchmarking tool (ArcadeDbHTTPTvsGRPCBench) have been added to validate functionality and compare performance against the existing HTTP protocol.
  • Improved Server Monitoring: The ServerMonitor has been refactored to leverage JMX for more robust JVM monitoring, including heap and safepoint metrics.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@robfrank robfrank linked an issue Sep 11, 2025 that may be closed by this pull request
8 tasks
@robfrank robfrank self-assigned this Sep 11, 2025
@robfrank robfrank added enhancement New feature or request java labels Sep 11, 2025
@robfrank robfrank added this to the 25.9.1 milestone Sep 11, 2025
Comment thread grpc-client/pom.xml Fixed
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

@codacy-production

codacy-production Bot commented Sep 11, 2025

Copy link
Copy Markdown

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
-1.08% 0.32%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (a074591) 70999 45646 64.29%
Head commit (65bb979) 72486 (+1487) 45819 (+173) 63.21% (-1.08%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#2499) 1551 5 0.32%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

@robfrank

Copy link
Copy Markdown
Collaborator Author

/gemini review

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request introduces comprehensive gRPC support for ArcadeDB, including a new gRPC client, server plugin, and Protobuf definitions. The implementation covers streaming queries, bulk inserts, record operations, and transaction management, which is a significant and valuable addition. My review focuses on improving robustness, performance, and maintainability. Key areas for improvement include removing hardcoded debug statements, addressing a bug in JDK version compatibility, making debugging features opt-in, and replacing fragile reflection-based calls with type-safe interfaces. Additionally, there are some cleanup opportunities regarding temporary or duplicated files.

Comment on lines +2191 to +2193
private static String legacyTidName(Thread t) {
return t.threadId() + ":" + t.getName();
}

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.

high

The legacyTidName method is intended as a fallback for JDKs older than 19, but it incorrectly calls t.threadId(), which was introduced in Java 19. This will cause a NoSuchMethodError on older supported JDKs. The correct fallback should use the deprecated t.getId() to maintain compatibility.

Suggested change
private static String legacyTidName(Thread t) {
return t.threadId() + ":" + t.getName();
}
private static String legacyTidName(Thread t) {
return t.getId() + ":" + t.getName();
}

Comment on lines +326 to +496
@SuppressWarnings("unchecked")
private Collection<String> getDatabaseNames() {
// Replace with your server API:
// e.g., ((ArcadeDBServer)server).getDatabaseNames()
try {
var m = server.getClass().getMethod("getDatabaseNames");
Object res = m.invoke(server);
if (res instanceof Collection<?> c) {
return (Collection<String>) c;
} else if (res instanceof String[] arr) {
return Arrays.asList(arr);
}
} catch (Throwable ignore) {
}
return Collections.emptyList();
}

private boolean containsDatabaseIgnoreCase(String name) {
for (String n : getDatabaseNames()) {
if (n.equalsIgnoreCase(name))
return true;
}
return false;
}

/**
* Create DB physically with READ_WRITE mode. Adjust to your server signature.
*/
private void createDatabasePhysical(String name) throws Exception {
// Typical signature: createDatabase(String, ComponentFile.MODE)
var m = server.getClass().getMethod("createDatabase", String.class, ComponentFile.MODE.class);
m.invoke(server, name, ComponentFile.MODE.READ_WRITE);
}

/**
* Drop DB physically. Prefer API with 'removeFiles' boolean if available.
*/
private void dropDatabasePhysical(String name) throws Exception {
try {
var m = server.getClass().getMethod("dropDatabase", String.class, boolean.class);
m.invoke(server, name, Boolean.TRUE);
} catch (NoSuchMethodException nsme) {
// Fallback: dropDatabase(String) if present
var m2 = server.getClass().getMethod("dropDatabase", String.class);
m2.invoke(server, name);
}
}

/**
* Open database for read ops. Adjust to your server's open/get method.
*/
private Database openDatabase(String name) throws Exception {
// Commonly: server.getDatabase(name) or server.openDatabase(name)
try {
var m = server.getClass().getMethod("getDatabase", String.class);
Object db = m.invoke(server, name);
return (Database) db;
} catch (NoSuchMethodException nsme) {
var m2 = server.getClass().getMethod("openDatabase", String.class);
Object db = m2.invoke(server, name);
return (Database) db;
}
}

/**
* Approximate record count with a quick pass across types.
*/
private long approximateRecordCount(Database db) {
long total = 0L;
try {
for (DocumentType t : db.getSchema().getTypes()) {
try {
// exact=false when supported; otherwise this counts exactly
total += db.countType(t.getName(), false);
} catch (Throwable ignore) {
}
}
} catch (Throwable ignore) {
}
return total;
}

private boolean existsVertexType(Schema s, String name) {

try {
return s.existsType(name);
} catch (Throwable t) {
return false;
}
}

private boolean existsEdgeType(Schema s, String name) {

try {

return s.existsType(name);
} catch (Throwable t) {
return false;
}
}

// ---------- safe server info fallbacks (optional; return sentinel values if
// not exposed) ----------

private String safeServerVersion() {
try {
var m = server.getClass().getMethod("getProductVersion");
Object v = m.invoke(server);
return (v != null) ? v.toString() : "unknown";
} catch (Throwable t) {
return "unknown";
}
}

private long safeServerStartMs() {
try {
var m = server.getClass().getMethod("getStartTime");
Object v = m.invoke(server);
if (v instanceof Number n)
return n.longValue();
} catch (Throwable t) {
// ignore
}
return 0L;
}

private int safeHttpPort() {
try {
var m = server.getClass().getMethod("getHttpServer");
Object http = m.invoke(server);
if (http != null) {
var pm = http.getClass().getMethod("getPort");
Object p = pm.invoke(http);
if (p instanceof Number n)
return n.intValue();
}
} catch (Throwable ignore) {
}
return -1;
}

private int safeGrpcPort() {
try {
var m = server.getClass().getMethod("getGrpcServer");
Object g = m.invoke(server);
if (g != null) {
var pm = g.getClass().getMethod("getPort");
Object p = pm.invoke(g);
if (p instanceof Number n)
return n.intValue();
}
} catch (Throwable ignore) {
}
return -1;
}

private int safeBinaryPort() {
try {
var m = server.getClass().getMethod("getBinaryServer");
Object b = m.invoke(server);
if (b != null) {
var pm = b.getClass().getMethod("getPort");
Object p = pm.invoke(b);
if (p instanceof Number n)
return n.intValue();
}
} catch (Throwable ignore) {
}
return -1;
}
}

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.

high

This class uses reflection extensively to interact with ArcadeDBServer (e.g., in getDatabaseNames, createDatabasePhysical, safeServerVersion). This approach is brittle and can lead to runtime errors if the method names or signatures in ArcadeDBServer change. It would be much safer and more maintainable to define an interface with the required methods and have ArcadeDBServer implement it. The gRPC service could then call the methods through the interface, ensuring type safety and compile-time checks.

Comment on lines +1 to +60

PWD: /Users/ocohen/git/Verdance/ArcadeDB-GRPC/arcadedb-25.8.1-SNAPSHOT


./bin/server.sh
-Darcadedb.server.rootPassword=root1234
-Darcadedb.server.name=Arcade_GRPC_Test
-Darcadedb.dumpConfigAtStartup=true
-Darcadedb.server.mode=development
-Darcadedb.server.rootPath=../var/arcadedb
-Darcadedb.server.plugins=GRPC:com.arcadedb.server.grpc.GrpcServerPlugin
-Xms512M -Xmx4096M -XX:InitialRAMPercentage=50.0 -XX:MaxRAMPercentage=75.0
-Darcadedb.server.httpIncomingPort=2489
-Darcadedb.grpc.enabled=true
-Darcadedb.grpc.port=50059
-Darcadedb.grpc.mode=standard
-Darcadedb.grpc.reflection.enabled=true
-Darcadedb.grpc.health.enabled=true


Ports:

HTTP: 2489
GTPC: 50059

root
root1234

Logging:

d exec -it arcadedb1-vulcan sh


vi /home/arcadedb/config/arcadedb-log.properties


handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler

.level = INFO
com.arcadedb.level = INFO
com.arcadedb.server.grpc.level = FINE

java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = com.arcadedb.utility.AnsiLogFormatter

java.util.logging.FileHandler.level = FINE
java.util.logging.FileHandler.pattern=./log/arcadedb.log
java.util.logging.FileHandler.formatter = com.arcadedb.log.LogFormatter
java.util.logging.FileHandler.limit=100000000
java.util.logging.FileHandler.count=10




tail -f /home/arcadedb/log/arcadedb.log.0




d exec -it arcadedb1-vulcan sh

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.

medium

This file appears to contain temporary developer notes, including a user-specific local path (/Users/ocohen/...). Such files should generally not be committed to the repository. Please consider removing this file or cleaning it up and moving it to a more appropriate location if it contains valuable documentation.

Comment on lines +2027 to +2060
private String mapRecordType(GrpcRecord grpcRecord) {

// Determine record category from type name
String typeName = grpcRecord.getType();

// Check schema to determine actual type
try {

if (typeName != null && !typeName.isBlank() && getSchema().existsType(typeName)) {

Object type = getSchema().getType(typeName);

if (type instanceof com.arcadedb.schema.VertexType) {

return "v";
} else if (type instanceof com.arcadedb.schema.EdgeType) {

return "e";
} else if (type instanceof com.arcadedb.schema.DocumentType) {

return "d";
} else {

return null;
}
} else {

return null;
}
} catch (Exception e) {

throw new RuntimeException(e);
}
}

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.

medium

The mapRecordType method is called as a fallback when a GrpcRecord doesn't contain the @cat property. This method performs a schema lookup for every record, which can be a performance bottleneck when processing large result sets. To optimize this, the server should always include the @cat property in the GrpcRecord payload, making this client-side lookup unnecessary.

}

// Optional knobs you can toggle from the TM for a single run
private volatile boolean txDebugEnabled = true;

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.

medium

The transaction debugging feature (txDebugEnabled) is enabled by default. This can add performance overhead and verbose logging in production environments. It's recommended to have debugging features disabled by default and enabled only when needed.

Suggested change
private volatile boolean txDebugEnabled = true;
private volatile boolean txDebugEnabled = false;

for (String propName : doc.getPropertyNames()) {
Object value = doc.get(propName);

System.out.print("toProtoRecord: " + propName + ": " + value);

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.

medium

This System.out.print statement appears to be a leftover from debugging. It should be removed or replaced with a proper logging statement guarded by a log level check (e.g., logger.debug(...)).

Comment on lines +1 to +281
syntax = "proto3";

package com.arcadedb.grpc;

option java_multiple_files = true;
option java_package = "com.arcadedb.server.grpc";
option java_outer_classname = "ArcadeDbProto";

import "google/protobuf/empty.proto";
import "google/protobuf/struct.proto";

// Main ArcadeDB Service
service ArcadeDbService {
// Database operations
rpc CreateDatabase(CreateDatabaseRequest) returns (CreateDatabaseResponse);
rpc DropDatabase(DropDatabaseRequest) returns (DropDatabaseResponse);
rpc ListDatabases(ListDatabasesRequest) returns (ListDatabasesResponse);
rpc GetDatabaseInfo(GetDatabaseInfoRequest) returns (GetDatabaseInfoResponse);

// Query operations
rpc ExecuteQuery(ExecuteQueryRequest) returns (ExecuteQueryResponse);
rpc ExecuteCommand(ExecuteCommandRequest) returns (ExecuteCommandResponse);

// Transaction operations
rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse);
rpc CommitTransaction(CommitTransactionRequest) returns (CommitTransactionResponse);
rpc RollbackTransaction(RollbackTransactionRequest) returns (RollbackTransactionResponse);

// Record operations
rpc CreateRecord(CreateRecordRequest) returns (CreateRecordResponse);
rpc GetRecord(GetRecordRequest) returns (GetRecordResponse);
rpc UpdateRecord(UpdateRecordRequest) returns (UpdateRecordResponse);
rpc DeleteRecord(DeleteRecordRequest) returns (DeleteRecordResponse);

// Streaming operations
rpc StreamQuery(StreamQueryRequest) returns (stream QueryResult);
rpc BulkInsert(stream BulkInsertRequest) returns (BulkInsertResponse);

// Server operations
rpc GetServerStatus(google.protobuf.Empty) returns (ServerStatusResponse);
rpc Ping(google.protobuf.Empty) returns (PingResponse);
}

// Common messages
message DatabaseCredentials {
string username = 1;
string password = 2;
}

message TransactionContext {
string transaction_id = 1;
string database = 2;
}

// Database operations
message CreateDatabaseRequest {
string database_name = 1;
DatabaseCredentials credentials = 2;
map<string, string> options = 3;
}

message CreateDatabaseResponse {
bool success = 1;
string message = 2;
string database_id = 3;
}

message DropDatabaseRequest {
string database_name = 1;
DatabaseCredentials credentials = 2;
}

message DropDatabaseResponse {
bool success = 1;
string message = 2;
}

message ListDatabasesRequest {
DatabaseCredentials credentials = 1;
}

message ListDatabasesResponse {
repeated DatabaseInfo databases = 1;
}

message DatabaseInfo {
string name = 1;
int64 size = 2;
string status = 3;
map<string, string> properties = 4;
}

message GetDatabaseInfoRequest {
string database_name = 1;
DatabaseCredentials credentials = 2;
}

message GetDatabaseInfoResponse {
DatabaseInfo info = 1;
}

// Query operations
message ExecuteQueryRequest {
string database = 1;
string query = 2;
map<string, google.protobuf.Value> parameters = 3;
DatabaseCredentials credentials = 4;
TransactionContext transaction = 5;
int32 limit = 6;
int32 timeout_ms = 7;
}

message ExecuteQueryResponse {
repeated QueryResult results = 1;
int64 execution_time_ms = 2;
string query_plan = 3;
}

message ExecuteCommandRequest {
string database = 1;
string command = 2;
map<string, google.protobuf.Value> parameters = 3;
DatabaseCredentials credentials = 4;
TransactionContext transaction = 5;
}

message ExecuteCommandResponse {
bool success = 1;
string message = 2;
int64 affected_records = 3;
int64 execution_time_ms = 4;
}

message QueryResult {
repeated Record records = 1;
repeated ColumnMetadata columns = 2;
int64 total_records = 3;
}

message ColumnMetadata {
string name = 1;
string type = 2;
bool nullable = 3;
}

// Transaction operations
message BeginTransactionRequest {
string database = 1;
DatabaseCredentials credentials = 2;
TransactionIsolation isolation = 3;
}

enum TransactionIsolation {
READ_UNCOMMITTED = 0;
READ_COMMITTED = 1;
REPEATABLE_READ = 2;
SERIALIZABLE = 3;
}

message BeginTransactionResponse {
string transaction_id = 1;
int64 timestamp = 2;
}

message CommitTransactionRequest {
TransactionContext transaction = 1;
DatabaseCredentials credentials = 2;
}

message CommitTransactionResponse {
bool success = 1;
string message = 2;
int64 timestamp = 3;
}

message RollbackTransactionRequest {
TransactionContext transaction = 1;
DatabaseCredentials credentials = 2;
}

message RollbackTransactionResponse {
bool success = 1;
string message = 2;
}

// Record operations
message Record {
string rid = 1;
string type = 2;
map<string, google.protobuf.Value> properties = 3;
int32 version = 4;
}

message CreateRecordRequest {
string database = 1;
string type = 2;
map<string, google.protobuf.Value> properties = 3;
DatabaseCredentials credentials = 4;
TransactionContext transaction = 5;
}

message CreateRecordResponse {
Record record = 1;
bool success = 2;
string message = 3;
}

message GetRecordRequest {
string database = 1;
string rid = 2;
DatabaseCredentials credentials = 3;
TransactionContext transaction = 4;
}

message GetRecordResponse {
Record record = 1;
bool found = 2;
}

message UpdateRecordRequest {
string database = 1;
string rid = 2;
map<string, google.protobuf.Value> properties = 3;
DatabaseCredentials credentials = 4;
TransactionContext transaction = 5;
int32 expected_version = 6;
}

message UpdateRecordResponse {
Record record = 1;
bool success = 2;
string message = 3;
}

message DeleteRecordRequest {
string database = 1;
string rid = 2;
DatabaseCredentials credentials = 3;
TransactionContext transaction = 4;
}

message DeleteRecordResponse {
bool success = 1;
string message = 2;
}

// Streaming operations
message StreamQueryRequest {
string database = 1;
string query = 2;
map<string, google.protobuf.Value> parameters = 3;
DatabaseCredentials credentials = 4;
int32 batch_size = 5;
}

message BulkInsertRequest {
string database = 1;
string type = 2;
Record record = 3;
DatabaseCredentials credentials = 4;
}

message BulkInsertResponse {
int64 total_inserted = 1;
int64 total_failed = 2;
repeated string errors = 3;
}

// Server operations
message ServerStatusResponse {
string version = 1;
string status = 2;
int64 uptime_ms = 3;
int32 active_connections = 4;
map<string, string> metrics = 5;
}

message PingResponse {
int64 timestamp = 1;
string message = 2;
}

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.

medium

This file appears to be a duplicate or an older version of the protobuf definition located in grpc/src/main/proto/arcadedb-server.proto. Maintaining multiple versions of the API contract can lead to confusion and build issues. This file should likely be removed to ensure there is a single source of truth for the gRPC API.

@robfrank
robfrank merged commit aae1b32 into main Sep 11, 2025
15 of 21 checks passed
@robfrank
robfrank deleted the feat/2498-grpc-protocol branch September 11, 2025 13:50
@robfrank robfrank mentioned this pull request Sep 11, 2025
2 tasks
robfrank added a commit that referenced this pull request Nov 10, 2025
)

Co-authored-by: Oleg Cohen <oleg.cohen@shakeiq.ai>

(cherry picked from commit aae1b32)
tae898 pushed a commit to humemai/arcadedb-embedded-python that referenced this pull request Jun 28, 2026
… tests (ArcadeData#2499)

Co-authored-by: Oleg Cohen <oleg.cohen@shakeiq.ai>
mergify Bot added a commit that referenced this pull request Jul 26, 2026
…updates [skip ci]

Bumps the github-actions group with 6 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `7.0.0` | `7.0.1` |
| [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) | `1.0.178` | `1.0.183` |
| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.37.1` | `4.37.3` |
| [docker/login-action](https://github.com/docker/login-action) | `4.4.0` | `4.5.1` |
| [github/codeql-action/init](https://github.com/github/codeql-action) | `4.37.1` | `4.37.3` |
| [github/codeql-action/analyze](https://github.com/github/codeql-action) | `4.37.1` | `4.37.3` |
Updates `actions/checkout` from 7.0.0 to 7.0.1
Release notes

*Sourced from [actions/checkout's releases](https://github.com/actions/checkout/releases).*

> v7.0.1
> ------
>
> What's Changed
> --------------
>
> * skip running unsafe pr check if input is default by [`@​aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2518](https://redirect.github.com/actions/checkout/pull/2518)
> * trim only ascii whitespace for branch by [`@​aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2521](https://redirect.github.com/actions/checkout/pull/2521)
> * escape values passed to --unset by [`@​aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2530](https://redirect.github.com/actions/checkout/pull/2530)
> * Various dependency updates
>
> **Full Changelog**: <actions/checkout@v7...v7.0.1>


Changelog

*Sourced from [actions/checkout's changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md).*

> Changelog
> =========
>
> v7.0.1
> ------
>
> * Skip running unsafe pr check if input is default by [`@​aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2518](https://redirect.github.com/actions/checkout/pull/2518)
> * Trim only ascii whitespace for branch by [`@​aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2521](https://redirect.github.com/actions/checkout/pull/2521)
> * Escape values passed to --unset by [`@​aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2530](https://redirect.github.com/actions/checkout/pull/2530)
> * Various dependency updates
>
> v7.0.0
> ------
>
> * Block checking out fork PR for pull\_request\_target and workflow\_run by [`@​aiqiaoy`](https://github.com/aiqiaoy) in [actions/checkout#2454](https://redirect.github.com/actions/checkout/pull/2454)
> * Various dependency updates
>
> v6.0.3
> ------
>
> * Fix checkout init for SHA-256 repositories by [`@​yaananth`](https://github.com/yaananth) in [actions/checkout#2439](https://redirect.github.com/actions/checkout/pull/2439)
> * fix: expand merge commit SHA regex and add SHA-256 test cases by [`@​yaananth`](https://github.com/yaananth) in [actions/checkout#2414](https://redirect.github.com/actions/checkout/pull/2414)
>
> v6.0.2
> ------
>
> * Fix tag handling: preserve annotations and explicit fetch-tags by [`@​ericsciple`](https://github.com/ericsciple) in [actions/checkout#2356](https://redirect.github.com/actions/checkout/pull/2356)
>
> v6.0.1
> ------
>
> * Add worktree support for persist-credentials includeIf by [`@​ericsciple`](https://github.com/ericsciple) in [actions/checkout#2327](https://redirect.github.com/actions/checkout/pull/2327)
>
> v6.0.0
> ------
>
> * Persist creds to a separate file by [`@​ericsciple`](https://github.com/ericsciple) in [actions/checkout#2286](https://redirect.github.com/actions/checkout/pull/2286)
> * Update README to include Node.js 24 support details and requirements by [`@​salmanmkc`](https://github.com/salmanmkc) in [actions/checkout#2248](https://redirect.github.com/actions/checkout/pull/2248)
>
> v5.0.1
> ------
>
> * Port v6 cleanup to v5 by [`@​ericsciple`](https://github.com/ericsciple) in [actions/checkout#2301](https://redirect.github.com/actions/checkout/pull/2301)
>
> v5.0.0
> ------
>
> * Update actions checkout to use node 24 by [`@​salmanmkc`](https://github.com/salmanmkc) in [actions/checkout#2226](https://redirect.github.com/actions/checkout/pull/2226)
>
> v4.3.1
> ------
>
> * Port v6 cleanup to v4 by [`@​ericsciple`](https://github.com/ericsciple) in [actions/checkout#2305](https://redirect.github.com/actions/checkout/pull/2305)
>
> v4.3.0
> ------
>
> * docs: update README.md by [`@​motss`](https://github.com/motss) in [actions/checkout#1971](https://redirect.github.com/actions/checkout/pull/1971)
> * Add internal repos for checking out multiple repositories by [`@​mouismail`](https://github.com/mouismail) in [actions/checkout#1977](https://redirect.github.com/actions/checkout/pull/1977)
> * Documentation update - add recommended permissions to Readme by [`@​benwells`](https://github.com/benwells) in [actions/checkout#2043](https://redirect.github.com/actions/checkout/pull/2043)
> * Adjust positioning of user email note and permissions heading by [`@​joshmgross`](https://github.com/joshmgross) in [actions/checkout#2044](https://redirect.github.com/actions/checkout/pull/2044)
> * Update README.md by [`@​nebuk89`](https://github.com/nebuk89) in [actions/checkout#2194](https://redirect.github.com/actions/checkout/pull/2194)
> * Update CODEOWNERS for actions by [`@​TingluoHuang`](https://github.com/TingluoHuang) in [actions/checkout#2224](https://redirect.github.com/actions/checkout/pull/2224)
> * Update package dependencies by [`@​salmanmkc`](https://github.com/salmanmkc) in [actions/checkout#2236](https://redirect.github.com/actions/checkout/pull/2236)
>
> v4.2.2
> ------
>
> * `url-helper.ts` now leverages well-known environment variables by [`@​jww3`](https://github.com/jww3) in [actions/checkout#1941](https://redirect.github.com/actions/checkout/pull/1941)
> * Expand unit test coverage for `isGhes` by [`@​jww3`](https://github.com/jww3) in [actions/checkout#1946](https://redirect.github.com/actions/checkout/pull/1946)
>
> v4.2.1
> ------
>
> * Check out other refs/\* by commit if provided, fall back to ref by [`@​orhantoy`](https://github.com/orhantoy) in [actions/checkout#1924](https://redirect.github.com/actions/checkout/pull/1924)

... (truncated)


Commits

* [`3d3c42e`](actions/checkout@3d3c42e) prep v7.0.1 release ([#2531](https://redirect.github.com/actions/checkout/issues/2531))
* [`2880268`](actions/checkout@2880268) escape values passed to --unset ([#2530](https://redirect.github.com/actions/checkout/issues/2530))
* [`12cd223`](actions/checkout@12cd223) trim only ascii whitespace for branch ([#2521](https://redirect.github.com/actions/checkout/issues/2521))
* [`62661c4`](actions/checkout@62661c4) skip running unsafe pr check if input is default ([#2518](https://redirect.github.com/actions/checkout/issues/2518))
* [`e8d4307`](actions/checkout@e8d4307) Bump the minor-actions-dependencies group with 2 updates ([#2499](https://redirect.github.com/actions/checkout/issues/2499))
* [`631c942`](actions/checkout@631c942) eslint 9 ([#2474](https://redirect.github.com/actions/checkout/issues/2474))
* [`4f1f4ae`](actions/checkout@4f1f4ae) Bump actions/upload-artifact from 4 to 7 ([#2476](https://redirect.github.com/actions/checkout/issues/2476))
* [`ba09753`](actions/checkout@ba09753) Bump actions/checkout from 6 to 7 ([#2488](https://redirect.github.com/actions/checkout/issues/2488))
* [`b9e0990`](actions/checkout@b9e0990) Bump docker/login-action from 3.3.0 to 4.2.0 ([#2479](https://redirect.github.com/actions/checkout/issues/2479))
* [`e8cb398`](actions/checkout@e8cb398) Bump docker/build-push-action from 6.5.0 to 7.2.0 ([#2478](https://redirect.github.com/actions/checkout/issues/2478))
* Additional commits viewable in [compare view](actions/checkout@9c091bb...3d3c42e)
  
Updates `anthropics/claude-code-action` from 1.0.178 to 1.0.183
Release notes

*Sourced from [anthropics/claude-code-action's releases](https://github.com/anthropics/claude-code-action/releases).*

> v1.0.183
> --------
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.183>
>
> v1.0.182
> --------
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.182>
>
> v1.0.181
> --------
>
> What's Changed
> --------------
>
> * fix: share one exchanged WIF credential across spawned Claude processes by [`@​KeisukeYamashita`](https://github.com/KeisukeYamashita) in [anthropics/claude-code-action#1407](https://redirect.github.com/anthropics/claude-code-action/pull/1407)
>
> New Contributors
> ----------------
>
> * [`@​KeisukeYamashita`](https://github.com/KeisukeYamashita) made their first contribution in [anthropics/claude-code-action#1407](https://redirect.github.com/anthropics/claude-code-action/pull/1407)
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.181>
>
> v1.0.180
> --------
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.180>
>
> v1.0.179
> --------
>
> **Full Changelog**: <anthropics/claude-code-action@v1...v1.0.179>


Commits

* [`be7b93b`](anthropics/claude-code-action@be7b93b) chore: bump Claude Code to 2.1.220 and Agent SDK to 0.3.220
* [`e0cf66d`](anthropics/claude-code-action@e0cf66d) chore: bump Claude Code to 2.1.219 and Agent SDK to 0.3.219
* [`44423bd`](anthropics/claude-code-action@44423bd) chore: bump Claude Code to 2.1.218 and Agent SDK to 0.3.218
* [`b00a341`](anthropics/claude-code-action@b00a341) fix: share one exchanged WIF credential across spawned Claude processes ([#1407](https://redirect.github.com/anthropics/claude-code-action/issues/1407))
* [`fa7e2f0`](anthropics/claude-code-action@fa7e2f0) chore: bump Claude Code to 2.1.217 and Agent SDK to 0.3.217
* [`b76a077`](anthropics/claude-code-action@b76a077) chore: bump Claude Code to 2.1.216 and Agent SDK to 0.3.216
* See full diff in [compare view](anthropics/claude-code-action@af0559e...be7b93b)
  
Updates `github/codeql-action/upload-sarif` from 4.37.1 to 4.37.3
Release notes

*Sourced from [github/codeql-action/upload-sarif's releases](https://github.com/github/codeql-action/releases).*

> v4.37.3
> -------
>
> No user facing changes.
>
> v4.37.2
> -------
>
> * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023)
> * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007)


Changelog

*Sourced from [github/codeql-action/upload-sarif's changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md).*

> CodeQL Action Changelog
> =======================
>
> See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
>
> [UNRELEASED]
> ------------
>
> * This version of the CodeQL Action adds support for the `tools` input for the `codeql-action/init` step to be specified using a `github-codeql-tools` [repository property](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to `toolcache` to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for `tools` in the workflow definition always takes precedence unless the value of the repository property starts with `!`. [#4037](https://redirect.github.com/github/codeql-action/pull/4037)
>
> 4.37.3 - 22 Jul 2026
> --------------------
>
> No user facing changes.
>
> 4.37.2 - 21 Jul 2026
> --------------------
>
> * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023)
> * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007)
>
> 4.37.1 - 16 Jul 2026
> --------------------
>
> * *Upcoming breaking change*: Add a deprecation warning for customers using CodeQL version 2.20.6 and earlier. These versions of CodeQL were discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and will be unsupported by the next minor release of the CodeQL Action. [#3956](https://redirect.github.com/github/codeql-action/pull/3956)
> * Update default CodeQL bundle version to [2.26.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.1). [#4019](https://redirect.github.com/github/codeql-action/pull/4019)
>
> 4.37.0 - 08 Jul 2026
> --------------------
>
> * Update default CodeQL bundle version to [2.26.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.0). [#3995](https://redirect.github.com/github/codeql-action/pull/3995)
> * In addition to the existing input format, the `config-file` input for the `codeql-action/init` step will soon support a new `[owner/]repo[@ref][:path]` format. All components except the repository name are optional. If omitted, `owner` defaults to the same owner as the repository the analysis is running for, `ref` to `main`, and `path` to `.github/codeql-action.yaml`. Support for this format ships in this version of the CodeQL Action, but will only be enabled over the coming weeks. [#3973](https://redirect.github.com/github/codeql-action/pull/3973)
>
> 4.36.3 - 01 Jul 2026
> --------------------
>
> No user facing changes.
>
> 4.36.2 - 04 Jun 2026
> --------------------
>
> * Cache CodeQL CLI version information across Actions steps. [#3943](https://redirect.github.com/github/codeql-action/pull/3943)
> * Reduce requests while waiting for analysis processing by using exponential backoff when polling SARIF processing status. [#3937](https://redirect.github.com/github/codeql-action/pull/3937)
> * Update default CodeQL bundle version to [2.25.6](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.6). [#3948](https://redirect.github.com/github/codeql-action/pull/3948)
>
> 4.36.1 - 02 Jun 2026
> --------------------
>
> No user facing changes.
>
> 4.36.0 - 22 May 2026
> --------------------
>
> * *Breaking change*: Bump the minimum required CodeQL bundle version to 2.19.4. [#3894](https://redirect.github.com/github/codeql-action/pull/3894)
> * Add support for SHA-256 Git object IDs. [#3893](https://redirect.github.com/github/codeql-action/pull/3893)
> * Update default CodeQL bundle version to [2.25.5](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.5). [#3926](https://redirect.github.com/github/codeql-action/pull/3926)
>
> 4.35.5 - 15 May 2026
> --------------------
>
> * We have improved how the JavaScript bundles for the CodeQL Action are generated to avoid duplication across bundles and reduce the size of the repository by around 70%. This should have no effect on the runtime behaviour of the CodeQL Action. [#3899](https://redirect.github.com/github/codeql-action/pull/3899)

... (truncated)


Commits

* [`e4fba86`](github/codeql-action@e4fba86) Merge pull request [#4031](https://redirect.github.com/github/codeql-action/issues/4031) from github/update-v4.37.3-72f6a9da0
* [`fb50ab5`](github/codeql-action@fb50ab5) Update changelog for v4.37.3
* [`72f6a9d`](github/codeql-action@72f6a9d) Merge pull request [#4030](https://redirect.github.com/github/codeql-action/issues/4030) from github/mbg/fix/no-proxy
* [`3b5ee58`](github/codeql-action@3b5ee58) Use default `request` options instead of `undefined`
* [`bfb6be4`](github/codeql-action@bfb6be4) Merge pull request [#4028](https://redirect.github.com/github/codeql-action/issues/4028) from github/mergeback/v4.37.2-to-main-e0647621
* [`526ab84`](github/codeql-action@526ab84) Rebuild
* [`d6217b9`](github/codeql-action@d6217b9) Update changelog and version after v4.37.2
* [`e064762`](github/codeql-action@e064762) Merge pull request [#4027](https://redirect.github.com/github/codeql-action/issues/4027) from github/update-v4.37.2-385bcdc5a
* [`e0faed8`](github/codeql-action@e0faed8) Add a couple of change notes
* [`73aad0e`](github/codeql-action@73aad0e) Update changelog for v4.37.2
* Additional commits viewable in [compare view](github/codeql-action@7188fc3...e4fba86)
  
Updates `docker/login-action` from 4.4.0 to 4.5.1
Release notes

*Sourced from [docker/login-action's releases](https://github.com/docker/login-action/releases).*

> v4.5.1
> ------
>
> * Support `dhi.io` as Docker Hub OIDC registry by [`@​crazy-max`](https://github.com/crazy-max) in [docker/login-action#1054](https://redirect.github.com/docker/login-action/pull/1054)
>
> **Full Changelog**: <docker/login-action@v4.5.0...v4.5.1>
>
> v4.5.0
> ------
>
> * [Docker Hub OIDC](https://github.com/docker/login-action#docker-hub) login support by [`@​crazy-max`](https://github.com/crazy-max) in [docker/login-action#1048](https://redirect.github.com/docker/login-action/pull/1048)
> * Bump `@​aws-sdk/client-ecr` and `@​aws-sdk/client-ecr-public` to 3.1091.0 in [docker/login-action#1037](https://redirect.github.com/docker/login-action/pull/1037)
> * Bump `@​docker/actions-toolkit` from 0.92.0 to 0.94.0 in [docker/login-action#1044](https://redirect.github.com/docker/login-action/pull/1044) [docker/login-action#1050](https://redirect.github.com/docker/login-action/pull/1050)
> * Bump brace-expansion from 1.1.13 to 1.1.16 in [docker/login-action#1046](https://redirect.github.com/docker/login-action/pull/1046)
> * Bump js-yaml from 5.2.0 to 5.2.1 in [docker/login-action#1038](https://redirect.github.com/docker/login-action/pull/1038)
>
> **Full Changelog**: <docker/login-action@v4.4.0...v4.5.0>


Commits

* [`abd2ef4`](docker/login-action@abd2ef4) Merge pull request [#1055](https://redirect.github.com/docker/login-action/issues/1055) from crazy-max/test-registry-auth-oidc
* [`d49d3a9`](docker/login-action@d49d3a9) Merge pull request [#1054](https://redirect.github.com/docker/login-action/issues/1054) from crazy-max/oidc-missing-dhi
* [`b58b17c`](docker/login-action@b58b17c) test: cover Docker Hub OIDC with registry-auth
* [`be646c2`](docker/login-action@be646c2) chore: update generated content
* [`d77c059`](docker/login-action@d77c059) support dhi.io as Docker Hub OIDC registry
* [`06fb636`](docker/login-action@06fb636) Merge pull request [#1037](https://redirect.github.com/docker/login-action/issues/1037) from docker/dependabot/npm\_and\_yarn/aws-sdk-dependen...
* [`a8bc953`](docker/login-action@a8bc953) [dependabot skip] chore: update generated content
* [`f54b901`](docker/login-action@f54b901) build(deps): bump the aws-sdk-dependencies group across 1 directory with 2 up...
* [`77f18f6`](docker/login-action@77f18f6) Merge pull request [#1049](https://redirect.github.com/docker/login-action/issues/1049) from docker/dependabot/github\_actions/codeql-actions...
* [`ec0bf28`](docker/login-action@ec0bf28) Merge pull request [#1050](https://redirect.github.com/docker/login-action/issues/1050) from docker/dependabot/npm\_and\_yarn/docker/actions-t...
* Additional commits viewable in [compare view](docker/login-action@af1e73f...abd2ef4)
  
Updates `github/codeql-action/init` from 4.37.1 to 4.37.3
Release notes

*Sourced from [github/codeql-action/init's releases](https://github.com/github/codeql-action/releases).*

> v4.37.3
> -------
>
> No user facing changes.
>
> v4.37.2
> -------
>
> * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023)
> * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007)


Changelog

*Sourced from [github/codeql-action/init's changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md).*

> CodeQL Action Changelog
> =======================
>
> See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
>
> [UNRELEASED]
> ------------
>
> * This version of the CodeQL Action adds support for the `tools` input for the `codeql-action/init` step to be specified using a `github-codeql-tools` [repository property](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to `toolcache` to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for `tools` in the workflow definition always takes precedence unless the value of the repository property starts with `!`. [#4037](https://redirect.github.com/github/codeql-action/pull/4037)
>
> 4.37.3 - 22 Jul 2026
> --------------------
>
> No user facing changes.
>
> 4.37.2 - 21 Jul 2026
> --------------------
>
> * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023)
> * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007)
>
> 4.37.1 - 16 Jul 2026
> --------------------
>
> * *Upcoming breaking change*: Add a deprecation warning for customers using CodeQL version 2.20.6 and earlier. These versions of CodeQL were discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and will be unsupported by the next minor release of the CodeQL Action. [#3956](https://redirect.github.com/github/codeql-action/pull/3956)
> * Update default CodeQL bundle version to [2.26.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.1). [#4019](https://redirect.github.com/github/codeql-action/pull/4019)
>
> 4.37.0 - 08 Jul 2026
> --------------------
>
> * Update default CodeQL bundle version to [2.26.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.0). [#3995](https://redirect.github.com/github/codeql-action/pull/3995)
> * In addition to the existing input format, the `config-file` input for the `codeql-action/init` step will soon support a new `[owner/]repo[@ref][:path]` format. All components except the repository name are optional. If omitted, `owner` defaults to the same owner as the repository the analysis is running for, `ref` to `main`, and `path` to `.github/codeql-action.yaml`. Support for this format ships in this version of the CodeQL Action, but will only be enabled over the coming weeks. [#3973](https://redirect.github.com/github/codeql-action/pull/3973)
>
> 4.36.3 - 01 Jul 2026
> --------------------
>
> No user facing changes.
>
> 4.36.2 - 04 Jun 2026
> --------------------
>
> * Cache CodeQL CLI version information across Actions steps. [#3943](https://redirect.github.com/github/codeql-action/pull/3943)
> * Reduce requests while waiting for analysis processing by using exponential backoff when polling SARIF processing status. [#3937](https://redirect.github.com/github/codeql-action/pull/3937)
> * Update default CodeQL bundle version to [2.25.6](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.6). [#3948](https://redirect.github.com/github/codeql-action/pull/3948)
>
> 4.36.1 - 02 Jun 2026
> --------------------
>
> No user facing changes.
>
> 4.36.0 - 22 May 2026
> --------------------
>
> * *Breaking change*: Bump the minimum required CodeQL bundle version to 2.19.4. [#3894](https://redirect.github.com/github/codeql-action/pull/3894)
> * Add support for SHA-256 Git object IDs. [#3893](https://redirect.github.com/github/codeql-action/pull/3893)
> * Update default CodeQL bundle version to [2.25.5](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.5). [#3926](https://redirect.github.com/github/codeql-action/pull/3926)
>
> 4.35.5 - 15 May 2026
> --------------------
>
> * We have improved how the JavaScript bundles for the CodeQL Action are generated to avoid duplication across bundles and reduce the size of the repository by around 70%. This should have no effect on the runtime behaviour of the CodeQL Action. [#3899](https://redirect.github.com/github/codeql-action/pull/3899)

... (truncated)


Commits

* [`e4fba86`](github/codeql-action@e4fba86) Merge pull request [#4031](https://redirect.github.com/github/codeql-action/issues/4031) from github/update-v4.37.3-72f6a9da0
* [`fb50ab5`](github/codeql-action@fb50ab5) Update changelog for v4.37.3
* [`72f6a9d`](github/codeql-action@72f6a9d) Merge pull request [#4030](https://redirect.github.com/github/codeql-action/issues/4030) from github/mbg/fix/no-proxy
* [`3b5ee58`](github/codeql-action@3b5ee58) Use default `request` options instead of `undefined`
* [`bfb6be4`](github/codeql-action@bfb6be4) Merge pull request [#4028](https://redirect.github.com/github/codeql-action/issues/4028) from github/mergeback/v4.37.2-to-main-e0647621
* [`526ab84`](github/codeql-action@526ab84) Rebuild
* [`d6217b9`](github/codeql-action@d6217b9) Update changelog and version after v4.37.2
* [`e064762`](github/codeql-action@e064762) Merge pull request [#4027](https://redirect.github.com/github/codeql-action/issues/4027) from github/update-v4.37.2-385bcdc5a
* [`e0faed8`](github/codeql-action@e0faed8) Add a couple of change notes
* [`73aad0e`](github/codeql-action@73aad0e) Update changelog for v4.37.2
* Additional commits viewable in [compare view](github/codeql-action@7188fc3...e4fba86)
  
Updates `github/codeql-action/analyze` from 4.37.1 to 4.37.3
Release notes

*Sourced from [github/codeql-action/analyze's releases](https://github.com/github/codeql-action/releases).*

> v4.37.3
> -------
>
> No user facing changes.
>
> v4.37.2
> -------
>
> * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023)
> * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007)


Changelog

*Sourced from [github/codeql-action/analyze's changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md).*

> CodeQL Action Changelog
> =======================
>
> See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
>
> [UNRELEASED]
> ------------
>
> * This version of the CodeQL Action adds support for the `tools` input for the `codeql-action/init` step to be specified using a `github-codeql-tools` [repository property](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization). This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to `toolcache` to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for `tools` in the workflow definition always takes precedence unless the value of the repository property starts with `!`. [#4037](https://redirect.github.com/github/codeql-action/pull/4037)
>
> 4.37.3 - 22 Jul 2026
> --------------------
>
> No user facing changes.
>
> 4.37.2 - 21 Jul 2026
> --------------------
>
> * The new address format for the `config-file` input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the `remote=` prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. [#4023](https://redirect.github.com/github/codeql-action/pull/4023)
> * The CodeQL Action can now make use of [configured private registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries) in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. [#4007](https://redirect.github.com/github/codeql-action/pull/4007)
>
> 4.37.1 - 16 Jul 2026
> --------------------
>
> * *Upcoming breaking change*: Add a deprecation warning for customers using CodeQL version 2.20.6 and earlier. These versions of CodeQL were discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and will be unsupported by the next minor release of the CodeQL Action. [#3956](https://redirect.github.com/github/codeql-action/pull/3956)
> * Update default CodeQL bundle version to [2.26.1](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.1). [#4019](https://redirect.github.com/github/codeql-action/pull/4019)
>
> 4.37.0 - 08 Jul 2026
> --------------------
>
> * Update default CodeQL bundle version to [2.26.0](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.0). [#3995](https://redirect.github.com/github/codeql-action/pull/3995)
> * In addition to the existing input format, the `config-file` input for the `codeql-action/init` step will soon support a new `[owner/]repo[@ref][:path]` format. All components except the repository name are optional. If omitted, `owner` defaults to the same owner as the repository the analysis is running for, `ref` to `main`, and `path` to `.github/codeql-action.yaml`. Support for this format ships in this version of the CodeQL Action, but will only be enabled over the coming weeks. [#3973](https://redirect.github.com/github/codeql-action/pull/3973)
>
> 4.36.3 - 01 Jul 2026
> --------------------
>
> No user facing changes.
>
> 4.36.2 - 04 Jun 2026
> --------------------
>
> * Cache CodeQL CLI version information across Actions steps. [#3943](https://redirect.github.com/github/codeql-action/pull/3943)
> * Reduce requests while waiting for analysis processing by using exponential backoff when polling SARIF processing status. [#3937](https://redirect.github.com/github/codeql-action/pull/3937)
> * Update default CodeQL bundle version to [2.25.6](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.6). [#3948](https://redirect.github.com/github/codeql-action/pull/3948)
>
> 4.36.1 - 02 Jun 2026
> --------------------
>
> No user facing changes.
>
> 4.36.0 - 22 May 2026
> --------------------
>
> * *Breaking change*: Bump the minimum required CodeQL bundle version to 2.19.4. [#3894](https://redirect.github.com/github/codeql-action/pull/3894)
> * Add support for SHA-256 Git object IDs. [#3893](https://redirect.github.com/github/codeql-action/pull/3893)
> * Update default CodeQL bundle version to [2.25.5](https://github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.5). [#3926](https://redirect.github.com/github/codeql-action/pull/3926)
>
> 4.35.5 - 15 May 2026
> --------------------
>
> * We have improved how the JavaScript bundles for the CodeQL Action are generated to avoid duplication across bundles and reduce the size of the repository by around 70%. This should have no effect on the runtime behaviour of the CodeQL Action. [#3899](https://redirect.github.com/github/codeql-action/pull/3899)

... (truncated)


Commits

* [`e4fba86`](github/codeql-action@e4fba86) Merge pull request [#4031](https://redirect.github.com/github/codeql-action/issues/4031) from github/update-v4.37.3-72f6a9da0
* [`fb50ab5`](github/codeql-action@fb50ab5) Update changelog for v4.37.3
* [`72f6a9d`](github/codeql-action@72f6a9d) Merge pull request [#4030](https://redirect.github.com/github/codeql-action/issues/4030) from github/mbg/fix/no-proxy
* [`3b5ee58`](github/codeql-action@3b5ee58) Use default `request` options instead of `undefined`
* [`bfb6be4`](github/codeql-action@bfb6be4) Merge pull request [#4028](https://redirect.github.com/github/codeql-action/issues/4028) from github/mergeback/v4.37.2-to-main-e0647621
* [`526ab84`](github/codeql-action@526ab84) Rebuild
* [`d6217b9`](github/codeql-action@d6217b9) Update changelog and version after v4.37.2
* [`e064762`](github/codeql-action@e064762) Merge pull request [#4027](https://redirect.github.com/github/codeql-action/issues/4027) from github/update-v4.37.2-385bcdc5a
* [`e0faed8`](github/codeql-action@e0faed8) Add a couple of change notes
* [`73aad0e`](github/codeql-action@73aad0e) Update changelog for v4.37.2
* Additional commits viewable in [compare view](github/codeql-action@7188fc3...e4fba86)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add grpc protocol wrapper

3 participants