Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Credentials input not working with contex.run from within a Devcontainer

オープン
#1,069 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
55/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
python
領域
cli

調査の方向性

Start by running the provided reproduction script inside a VSCode devcontainer, then trace Context.run with in_stream=True and pty=True/False, including the interaction with Python's input() and getpass(). Done means username and password entry work correctly without the first character being swallowed or the password prompt becoming unresponsive.

索引モデルが issue の本文から書いたものです。

説明

While I found several different issues where something related to stdin did or does not work - this one does not seem to be covered, yet:

What happens:
Entering user name/pw from stdin to programm started with c.run does not work. What (mostly) happens:

  1. First character gets swallowed somehow. Have to press the first character twice. Found some issues about that one. And: Looks ike in_stream=False makes the first character appear on the first key press.
  2. PW entry not working: When running inside the devcontainer, after pressing enter to confirm the user name, the password prompt is missing, and nothing happens when I press any key.
  • pty=True/False does not seem to have an effect
  • in_stream=False will avoid the 'first-character-gets-swallowed` problem, but still not fix the passwort-entry-problem

You should be able to use the following script to reproduce the issue - when executed from within a devcontainer in VSCode:

import shlex
import sys
import textwrap

from invoke import Context

INNER_SCRIPT = textwrap.dedent(
    """
    from getpass import getpass

    print('=== Please enter your USERNAME ===', flush=True)
    username = input()
    print('=== Please enter your PASSWORD ===', flush=True)
    password = getpass('')
    print(f'You entered username: {username}')
    print(f'You entered password: {password}')
    """
).strip()


print(">>> running via invoke Context.run(pty=True)")
cmd = f"{shlex.quote(sys.executable)} -c {shlex.quote(INNER_SCRIPT)}"
Context().run(cmd, in_stream=True)
主要言語
Python
スター
4.8k
フォーク
412
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pyinvoke/invoke のほかの issue

pyinvoke/invoke の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。