Skip to content

Comments

Add script to update the git-sync image#2064

Open
Camila-B wants to merge 1 commit intoGoogleContainerTools:mainfrom
Camila-B:update-other-images
Open

Add script to update the git-sync image#2064
Camila-B wants to merge 1 commit intoGoogleContainerTools:mainfrom
Camila-B:update-other-images

Conversation

@Camila-B
Copy link
Contributor

This is a first step towards automating image updates

@google-oss-prow
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from camila-b. For more information see the Kubernetes Code Review Process.

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

Details Needs approval from an approver in each of these files:

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

@gemini-code-assist
Copy link

Summary of Changes

Hello @Camila-B, 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 introduces a new automation script and integrates it into the Makefile, marking a significant step towards automating image updates. The primary goal is to simplify the maintenance of the git-sync image version by providing a standardized and executable method for fetching and applying the latest versions or builds, thereby reducing manual effort and potential for errors.

Highlights

  • New Automation Script: A new shell script, scripts/update-git-sync-image.sh, has been added to automate the process of updating the git-sync image version in the Makefile.
  • Makefile Integration: A new make update-git-sync-image target has been introduced in the Makefile to easily execute the new automation script. Comments have also been added to guide users on how to run this command with different UPDATE_TYPE options.
  • Script Refinement: An unused err function was removed from scripts/update-debian-base-image.sh to streamline the script and remove dead code.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • Makefile
    • Added a new update-git-sync-image target to invoke the new update script.
    • Included comments explaining how to use the update-git-sync-image target with UPDATE_TYPE.
  • scripts/update-debian-base-image.sh
    • Removed an unused err function and related comments.
  • scripts/update-git-sync-image.sh
    • Added a new script to fetch the latest git-sync image tag from gcr.io/config-management-release/git-sync.
    • Implemented logic to determine the latest tag based on UPDATE_TYPE (latest-version or latest-build).
    • Updated the GIT_SYNC_VERSION in the Makefile if a newer tag is found.
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

@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

The pull request introduces a new script and Makefile target to automate the update of the git-sync image version. This is a positive step towards better dependency management. I have identified a few areas for improvement, primarily focusing on making the string parsing more robust against comments in the Makefile and ensuring consistency with existing update scripts.

UPDATE_TYPE=${UPDATE_TYPE:-latest-build}

# Get the current tag from the Makefile
CURRENT_TAG=$(grep "GIT_SYNC_VERSION :=" Makefile | sed 's/.*:= //')

Choose a reason for hiding this comment

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

high

The grep command here is not anchored to the start of the line. If a comment in the Makefile contains the string GIT_SYNC_VERSION :=, this command will return multiple lines, which will cause the script to fail or behave unexpectedly when processing CURRENT_TAG later. Anchoring the search to the beginning of the line ensures only the actual variable assignment is matched.

Suggested change
CURRENT_TAG=$(grep "GIT_SYNC_VERSION :=" Makefile | sed 's/.*:= //')
CURRENT_TAG=$(grep "^GIT_SYNC_VERSION :=" Makefile | sed 's/.*:= //')

fi

echo "Updating GIT_SYNC_VERSION from $CURRENT_TAG to $LATEST_TAG"
sed -i "s/^GIT_SYNC_VERSION := .*/GIT_SYNC_VERSION := ${LATEST_TAG}/" Makefile No newline at end of file

Choose a reason for hiding this comment

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

medium

For consistency with scripts/update-debian-base-image.sh and to avoid potential issues if the image tag ever contains a forward slash (though unlikely for this specific image), it is better to use a different delimiter like | for the sed command. Additionally, ensure the pattern is anchored to the start of the line to avoid accidental matches in comments.

Suggested change
sed -i "s/^GIT_SYNC_VERSION := .*/GIT_SYNC_VERSION := ${LATEST_TAG}/" Makefile
sed -i "s|^GIT_SYNC_VERSION := .*|GIT_SYNC_VERSION := ${LATEST_TAG}|" Makefile

@Camila-B Camila-B force-pushed the update-other-images branch 2 times, most recently from 6d354c4 to eaf6939 Compare February 20, 2026 00:40
@Camila-B Camila-B force-pushed the update-other-images branch from eaf6939 to 9fa8043 Compare February 20, 2026 01:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant