Skip to content

Conversation

@taeold
Copy link
Contributor

@taeold taeold commented Oct 18, 2025

We'll gate all mutating functions:config:* commands behind the new legacyRuntimeConfigCommands experiment. We'll keep functions:config:{get,export} available for inspection.

Includes some minor refactoring to align deprecation message across all surfaces.

$ firebase functions:config:set FOO=bar

Error: DEPRECATION NOTICE: Action required before March 2026

The functions.config() API and the Cloud Runtime Config service are deprecated. Deploys that rely on functions.config() will fail once Runtime Config shuts down in March 2026.

The legacy functions:config:* CLI commands are deprecated and will be removed before March 2026.

Migrate configuration to the Firebase Functions params APIs:

  import { defineJsonSecret } from "firebase-functions/params";

  const config = defineJsonSecret("RUNTIME_CONFIG");

  exports.myFunction = functions
    .runWith({ secrets: [config] })
    .https.onRequest((req, res) => {
      const apiKey = config.value().service.key;
      // ...
    });

To convert existing runtime config values, try the interactive migration command:

  firebase functions:config:export

Learn more: https://firebase.google.com/docs/functions/config-env#migrate-config

To run this legacy command temporarily, run the following command and try again:

  firebase experiments:enable legacyRuntimeConfigCommands

We'll gate all mutating functions:config:* commands behind the new legacyRuntimeConfigCommands experiment. We'll keep functions:config:{get,export} available for inspection.

Some minor refactoring to align deprecation message across all surfaces.
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @taeold, 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 experiment flag, legacyRuntimeConfigCommands, to gate access to several functions:config:* commands, specifically those that modify configuration and the export command. This change is part of the ongoing deprecation of the functions.config() API and the underlying Cloud Runtime Config service, aiming to guide users towards newer Firebase Functions params APIs. The update also centralizes and refines the deprecation warning messages presented to users when interacting with these legacy features.

Highlights

  • Command Gating: The mutating functions:config:* commands (clone, set, unset) and the functions:config:export command are now guarded by a new experiment flag, legacyRuntimeConfigCommands.
  • Experiment Default State: The legacyRuntimeConfigCommands experiment is enabled by default, meaning the gated commands remain accessible unless the experiment is explicitly disabled. This behavior contradicts the pull request title's assertion of hiding commands by default.
  • Deprecation Warning Centralization: The logic for logging functions.config() deprecation warnings has been centralized within src/functionsConfig.ts and updated with more comprehensive migration guidance for users.
  • Experiment Renaming: The previous experiment flag dangerouslyAllowFunctionsConfig has been replaced by the new legacyRuntimeConfigCommands.
  • functions:config:get Accessibility: The functions:config:get command remains fully accessible and does not require the legacyRuntimeConfigCommands experiment flag to be enabled.
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 introduces a breaking change by hiding the functions:config:* commands behind the legacyRuntimeConfigCommands experiment, while keeping functions:config:{get,export} available. It also refactors the deprecation message for consistency. The review focuses on the correctness of the changes, particularly around the experiment flag and the deprecation warnings.

@taeold taeold requested a review from jhuleatt October 20, 2025 17:30
Co-authored-by: Jeff <3759507+jhuleatt@users.noreply.github.com>
@taeold taeold requested a review from jhuleatt October 20, 2025 21:05
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