Почему мой токен GitHub усечен при получении из конфигурации DICT в действии GitHub (режим отладки)?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему мой токен GitHub усечен при получении из конфигурации DICT в действии GitHub (режим отладки)?

Сообщение Anonymous »

Я сталкиваюсь с странной проблемой со сценарием Python, работающим внутри действия GitHub, где Secrets.github_token , кажется, усекается после , хранящегося в словаре конфигурации, но только тогда, когда включен флаг отладки. Сценарий Python () работает как часть рабочего процесса действий GitHub. os.environ.get () .
[*] вызовы load_config () из config.py , чтобы получить словарь, затем извлекает токен из словаря для инициализации клиента Github API.
Я отлаживает журнал на различных этапах.

Код: Выделить всё

.github/workflows/...yml
):

Код: Выделить всё

jobs:
analyze-milestones:
runs-on: ubuntu-latest
steps:
# ... checkout, setup python ...
- name: Run Milestone Assistant
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# OPENROUTER_API_KEY: ...
DEBUG: ${{ github.event.inputs.debug_mode == 'true' && '1' || '0' }} # Debug flag
run: |
cd tools/milestone-assistant
python -m src.main \
# ... other args ...
${{ github.event.inputs.debug_mode == 'true' && '--debug' || '' }}
< /code>
[b] Загрузка конфигурации (src/config.py
): [/b]

Код: Выделить всё

import os
import logging

logger = logging.getLogger(__name__)
DEFAULT_CONFIG = { "github": { "token": "", ... }, ... }

def load_config():
config = DEFAULT_CONFIG.copy()
github_token_env = os.environ.get("GITHUB_TOKEN")
if github_token_env:
config["github"]["token"] = github_token_env
# Log right after reading
logger.debug(f"Read token from GITHUB_TOKEN. Type: {type(github_token_env)}, Length: {len(github_token_env)}")
# ... load other config ...
return config
< /code>
[b] фрагмент основного сценария (src/main.py
): [/b]

Код: Выделить всё

import argparse
import logging
import os
from .config import load_config
from .github.client import GitHubClient

logger = logging.getLogger(__name__)

def main():
args = parse_args() # Parses --debug flag
setup_logging(logging.DEBUG if args.debug else logging.INFO)

config = load_config()
config_token = config["github"]["token"]

# Log length retrieved from dict
logger.debug(f"Initializing GitHub client with token length: {len(config_token)}")

# Initialize client (fails with 401 when token is short)
github_client = GitHubClient(
token=config_token,
repository=config["github"]["repository"]
)
# ... rest of script ...

if __name__ == "__main__":
main()
Проблема:
При запуске рабочего процесса с разрешением отладки (, -debug флаг прошел), журналы показывают:

Код: Выделить всё

# Inside config.py, load_config()
DEBUG - Read token from GITHUB_TOKEN. Type: , Length: 40

# Inside main.py, after config = load_config()
DEBUG - Initializing GitHub client with token length: 14 # 
 

Подробнее здесь: [url]https://stackoverflow.com/questions/79562863/why-is-my-github-token-truncated-when-retrieved-from-config-dict-in-github-actio[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»