Expose FilegroupPathProvider to Starlark builtins.

Required for internal migration and should be removable in the future.

PiperOrigin-RevId: 407530904
diff --git a/src/main/java/com/google/devtools/build/lib/rules/BUILD b/src/main/java/com/google/devtools/build/lib/rules/BUILD
index ac40eb4..b747a15 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/BUILD
@@ -252,8 +252,10 @@
     deps = [
         "//src/main/java/com/google/devtools/build/lib/analysis:transitive_info_provider",
         "//src/main/java/com/google/devtools/build/lib/concurrent",
+        "//src/main/java/com/google/devtools/build/lib/packages",
         "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
         "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
+        "//src/main/java/net/starlark/java/annot",
     ],
 )
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/filegroup/Filegroup.java b/src/main/java/com/google/devtools/build/lib/rules/filegroup/Filegroup.java
index c5371ae..ad6df08 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/filegroup/Filegroup.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/filegroup/Filegroup.java
@@ -103,9 +103,7 @@
             .setFilesToBuild(filesToBuild)
             .setRunfilesSupport(null, getExecutable(filesToBuild))
             .addNativeDeclaredProvider(instrumentedFilesProvider)
-            .addProvider(
-                FilegroupPathProvider.class,
-                new FilegroupPathProvider(getFilegroupPath(ruleContext)));
+            .addNativeDeclaredProvider(new FilegroupPathProvider(getFilegroupPath(ruleContext)));
 
     return builder.build();
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/filegroup/FilegroupPathProvider.java b/src/main/java/com/google/devtools/build/lib/rules/filegroup/FilegroupPathProvider.java
index 53566f3..6c43299 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/filegroup/FilegroupPathProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/filegroup/FilegroupPathProvider.java
@@ -14,17 +14,27 @@
 
 package com.google.devtools.build.lib.rules.filegroup;
 
-import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.packages.BuiltinProvider;
+import com.google.devtools.build.lib.packages.NativeInfo;
+import com.google.devtools.build.lib.packages.Provider;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.vfs.PathFragment;
+import net.starlark.java.annot.StarlarkBuiltin;
+import net.starlark.java.annot.StarlarkMethod;
 
 /** A transitive info provider for dependent targets to query {@code path} attributes. */
 @Immutable
+@StarlarkBuiltin(name = "FilegroupPathInfo", documented = false)
 @AutoCodec
-public final class FilegroupPathProvider implements TransitiveInfoProvider {
+public final class FilegroupPathProvider extends NativeInfo {
   private final PathFragment pathFragment;
 
+  /** Provider class for FilegroupPathProvider. */
+  public static final BuiltinProvider<FilegroupPathProvider> PROVIDER =
+      new BuiltinProvider<FilegroupPathProvider>(
+          "FilegroupPathInfo", FilegroupPathProvider.class) {};
+
   @AutoCodec.Instantiator
   public FilegroupPathProvider(PathFragment pathFragment) {
     this.pathFragment = pathFragment;
@@ -36,4 +46,14 @@
   public PathFragment getFilegroupPath() {
     return pathFragment;
   }
+
+  @StarlarkMethod(name = "path", structField = true, documented = false)
+  public String getFilegroupPathForStarlark() {
+    return getFilegroupPath().getPathString();
+  }
+
+  @Override
+  public Provider getProvider() {
+    return PROVIDER;
+  }
 }