Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Support a configurable or platform-appropriate location for .mg\mg.graphoptions.json

未关闭
#3,749 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 2 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃
技术栈
csharp, powershell

调研方向

从 Constants.cs 和 GraphSessionInitializer.cs 开始,跟踪 GraphDirectoryPath 和 GraphOptionsFilePath 的选择方式,然后检查 SetMgGraphOption.cs 及相关的身份验证常量。使用验收标准来定义受支持的配置、向后兼容性、独立的缓存处理、跨平台行为、文档和测试。

由索引模型根据 Issue 内容生成。

描述

Microsoft Graph PowerShell currently stores Graph SDK options at:

%USERPROFILE%\.mg\mg.graphoptions.json

The location is hard-coded in Microsoft.Graph.Authentication:

GraphDirectoryPath = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
    ".mg");

GraphOptionsFilePath is then constructed beneath that directory.

Source references in tag v2.36.1:

  • src/Authentication/Authentication.Core/Constants.cs
  • src/Authentication/Authentication/Constants.cs
  • src/Authentication/Authentication/Common/GraphSessionInitializer.cs
  • src/Authentication/Authentication/Cmdlets/SetMgGraphOption.cs

This creates another tool-specific dot-directory directly under the user profile, with no documented environment variable or configuration setting for relocating it.

Environment

OS: Windows
Microsoft.Graph.Authentication: 2.36.1
Current path: %USERPROFILE%\.mg\mg.graphoptions.json

The file contains SDK configuration options such as:

DisableWAMForMSGraph
DisableLoginByWAM

No authentication-token relocation is being requested in this issue; the immediate request concerns configuration files such as mg.graphoptions.json.

Expected behavior

Provide a supported way to relocate Microsoft Graph PowerShell configuration.

Possible approaches:

  1. Add an environment variable such as MSGRAPH_CONFIG_DIR.
  2. Follow platform conventions by default:
    • Windows: %APPDATA%\Microsoft\GraphPowerShell
    • Linux/macOS: $XDG_CONFIG_HOME/microsoft-graph, falling back to ~/.config/microsoft-graph
  3. Preserve the existing .mg location for backward compatibility and migrate or fall back to it when appropriate.

Motivation

A configurable location would:

  • Avoid adding application-specific directories to the profile root.
  • Support enterprise-managed and portable PowerShell environments.
  • Improve separation between configuration, cache, authentication state, and user data.
  • Allow consistent backup and profile-management policies.
  • Better align with platform conventions and the XDG Base Directory specification.

Existing related issue

#747 — Consider moving graph cache from .graph to .cache/graph to match XDG specification remains open.

That issue addresses Graph cache placement. This request is narrower and complementary: it covers the hard-coded .mg configuration directory and mg.graphoptions.json.

Acceptance criteria

  • A documented setting or environment variable controls the Graph PowerShell configuration directory.
  • Get-MgGraphOption and Set-MgGraphOption use the configured location.
  • Existing .mg configurations continue working through migration or backward-compatible fallback.
  • Windows, Linux, and macOS path behavior is documented and tested.
  • Configuration and cache locations can be controlled independently.
主要语言
C#
星标
902
派生
233
平均合并
1 天 22 小时
30 天内合并 PR
29

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

microsoftgraph/msgraph-sdk-powershell 的其他 Issue

查看 microsoftgraph/msgraph-sdk-powershell 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。