Skip to content

Conversation

@feeblefakie
Copy link
Contributor

This is an automated backport of the following:

Please merge this PR after all checks have passed.

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @feeblefakie, 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 focuses on enhancing the modularity and maintainability of the Ledger component. It involves a significant refactoring of the AssetProofComposer to decouple it from specific database implementations and a strategic relocation to a more appropriate package. Furthermore, it streamlines test code by centralizing frequently used cryptographic constants, thereby reducing redundancy and improving test clarity.

Highlights

  • AssetProofComposer Refactoring: The AssetProofComposer class has been refactored to remove its direct dependency on ScalarDB's Put object, making it more generic and reusable. A new create method was introduced that accepts primitive data types, and the logic for extracting these from Put objects was moved to ScalarTamperEvidentAssetLedger.
  • Package Relocation: The AssetProofComposer class has been moved from the com.scalar.dl.ledger.database.scalardb package to the more general com.scalar.dl.ledger.database package, reflecting its reduced dependency on ScalarDB specifics.
  • Centralized Test Constants: Common test constants, specifically private keys and certificates, have been extracted from various test and integration-test files into a new dedicated TestConstants.java file. This improves code organization, reduces duplication, and simplifies maintenance across test suites.
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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request 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.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

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 is a backport of a refactoring that primarily focuses on two areas. First, it decouples AssetProofComposer from ScalarDB-specific dependencies by moving the logic that handles com.scalar.db.api.Put objects into ScalarTamperEvidentAssetLedger. This is a good design improvement that increases modularity. Second, it centralizes duplicated test constants for private keys and certificates into a new TestConstants class, which improves maintainability by reducing code duplication. The changes are well-executed and improve the overall code quality. I have reviewed the changes and found no issues.

@jnmt jnmt merged commit f1c1cfa into 3 Dec 3, 2025
11 checks passed
@jnmt jnmt deleted the 3-pull-333 branch December 3, 2025 01:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants