Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Add support for cli completion in git bash for windows

Đang mở Phù hợp với người mới
#34,150 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
68/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
bash
Lĩnh vực
cli

Hướng nghiên cứu

Start with the upstream az.completion script referenced in the issue and reproduce completion on Windows 11 using Git Bash and the Windows MSI installation. Compare its behavior with the provided tempfile-aware workaround and the related discussion in Azure CLI #26051. Done means pressing Tab after az offers Azure CLI commands instead of filesystem paths, or the Git Bash limitation and workaround are documented.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

customer-reported

Request

Please make the Azure CLI Bash completion script honor
ARGCOMPLETE_USE_TEMPFILES by using _ARGCOMPLETE_STDOUT_FILENAME and
reading the completion results from that file. This would allow Git Bash on
Windows to use the completion script without users replacing its completion
function in their .bashrc.

Alternatively, document the Git Bash limitation and this workaround.

Reproduction

On Windows 11 with Git Bash and Azure CLI installed via the Windows MSI,
sourcing the upstream az.completion script and setting
ARGCOMPLETE_USE_TEMPFILES=1 is not sufficient: pressing Tab after az
offers filesystem paths instead of CLI commands.

The tempfile-aware function below works in this environment. I tested it with
Azure CLI 2.90.0. It creates _ARGCOMPLETE_STDOUT_FILENAME, reads the
completion results from the temporary file, and cleans it up.

Related discussion: Azure CLI #26051, which describes the Git Bash file
descriptor limitation.

Environment

  • OS: Windows 11
  • Shell: Git Bash (MINGW64)
  • Azure CLI installation: Windows MSI
  • Azure CLI version:
{
  "azure-cli": "2.90.0",
  "azure-cli-core": "2.90.0",
  "azure-cli-telemetry": "1.1.0",
  "extensions": {
    "azure-devops": "1.0.8"
  }
}

Workaround

Using the stock bash completion file
curl -fsSL https://raw.githubusercontent.com/Azure/azure-cli/dev/az.completion -o ~/.azure/.az.completion

The completion in this scenario needs to use temp files and to get this going you need the completion to also be temp-file aware like this:

if [[ -r "$HOME/.azure/.az.completion" ]]; then
  export ARGCOMPLETE_USE_TEMPFILES=1
  source "$HOME/.azure/.az.completion"

  _az_python_argcomplete() {
    local IFS=$'\013'
    local SUPPRESS_SPACE=0
    local TMPFILE
    local STATUS

    if compopt +o nospace 2>/dev/null; then
      SUPPRESS_SPACE=1
    fi

    TMPFILE=$(mktemp) || return 1

    COMPREPLY=($(
      IFS="$IFS" \
        COMP_LINE="$COMP_LINE" \
        COMP_POINT="$COMP_POINT" \
        COMP_TYPE="$COMP_TYPE" \
        _ARGCOMPLETE_COMP_WORDBREAKS="$COMP_WORDBREAKS" \
        _ARGCOMPLETE=1 \
        _ARGCOMPLETE_SUPPRESS_SPACE=$SUPPRESS_SPACE \
        ARGCOMPLETE_USE_TEMPFILES=1 \
        _ARGCOMPLETE_STDOUT_FILENAME="$TMPFILE" \
        "$1" 8>&1 9>&2 1>/dev/null 2>/dev/null
      STATUS=$?
      cat "$TMPFILE"
      rm -f "$TMPFILE"
      exit "$STATUS"
    ))

    STATUS=$?
    if [[ $STATUS != 0 ]]; then
      unset COMPREPLY
    elif [[ $SUPPRESS_SPACE == 1 ]] && [[ "${COMPREPLY[0]}" =~ [=/:]$ ]]; then
      compopt -o nospace
    fi
  }
fi
Ngôn ngữ chính
Python
Star
4.6k
Fork
3.5k
Merge trung bình
4 ngày 13 giờ
Pull request đã merge (30 ngày)
53

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Azure/azure-cli

Tất cả issue của Azure/azure-cli

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.