rultor.com logo This build log was produced by rultor.com for yegor256/gitted#146
++ dirname ./run.sh
+ cd .
+ echo 1276
+ echo '2.0-SNAPSHOT BUILD'
2.0-SNAPSHOT BUILD
+ date
Thu Aug 13 16:54:04 UTC 2026
+ uptime
 16:54:04 up 1 min,  0 users,  load average: 0.43, 0.14, 0.05
+ ff=default
+ image=yegor256/python
+ rebase=false
+ head_branch=master
+ pull_title='Update astral-sh/setup-uv action to v10'
+ author=yegor256
+ directory=
+ head=git@github.com:yegor256/gitted.git
+ pull_id=146
+ fork=git@github.com:yegor256/gitted.git
+ fork_branch=renovate/astral-sh-setup-uv-10.x
+ squash=false
+ vars=('--env=head=git@github.com:yegor256/gitted.git' '--env=pull_id=146' '--env=fork=git@github.com:yegor256/gitted.git' '--env=fork_branch=renovate/astral-sh-setup-uv-10.x' '--env=head_branch=master' '--env=pull_title=Update astral-sh/setup-uv action to v10' '--env=author=yegor256' '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:yegor256/gitted.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_id=146'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork=git@github.com:yegor256/gitted.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork_branch=renovate/astral-sh-setup-uv-10.x'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_title=Update astral-sh/setup-uv action to v10'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''pdd -f /dev/null'\'' '\'';'\'' '\''pip install --progress-bar=off -r requirements.txt'\'' '\'';'\'' '\''pip install --progress-bar=off uv'\'' '\'';'\'' '\''GITTED_BATCH=true GITTED_TESTING=true make -e'\'' '\'';'\'' )')
+ scripts=('export '\''head=git@github.com:yegor256/gitted.git'\''' ';' 'export '\''pull_id=146'\''' ';' 'export '\''fork=git@github.com:yegor256/gitted.git'\''' ';' 'export '\''fork_branch=renovate/astral-sh-setup-uv-10.x'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''pull_title=Update astral-sh/setup-uv action to v10'\''' ';' 'export '\''author=yegor256'\''' ';' 'pdd -f /dev/null' ';' 'pip install --progress-bar=off -r requirements.txt' ';' 'pip install --progress-bar=off uv' ';' 'GITTED_BATCH=true GITTED_TESTING=true make -e' ';')
+ container=yegor256_gitted_146
+ as_root=false
+ set -e -o pipefail
+ hostname
ip-172-31-30-185
+ pwd
/tmp/rultor-MUf2
+ git --version
git version 2.34.1
+ docker --version
Docker version 25.0.3, build 4debf41
+ mkdir -p /home/ubuntu/.ssh
+ echo -e 'Host github.com\n\tStrictHostKeyChecking no\n'
+ chmod 600 /home/ubuntu/.ssh/config
+ git clone --recurse-submodules git@github.com:yegor256/gitted.git repo
Cloning into 'repo'...
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
+ cd repo
+ git config user.email gpg@rultor.com
+ git config user.name Rultor.com
+ '[' -z 'export '\''head=git@github.com:yegor256/gitted.git'\''' ']'
+ cd ..
+ cat
+ '[' false = true ']'
+ cat
+ chmod a+x entry.sh
+ cat
+ echo 'export '\''head=git@github.com:yegor256/gitted.git'\''' ';' 'export '\''pull_id=146'\''' ';' 'export '\''fork=git@github.com:yegor256/gitted.git'\''' ';' 'export '\''fork_branch=renovate/astral-sh-setup-uv-10.x'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''pull_title=Update astral-sh/setup-uv action to v10'\''' ';' 'export '\''author=yegor256'\''' ';' 'pdd -f /dev/null' ';' 'pip install --progress-bar=off -r requirements.txt' ';' 'pip install --progress-bar=off uv' ';' 'GITTED_BATCH=true GITTED_TESTING=true make -e' ';'
+ sensitive=()
+ set -ex -o pipefail
+ cd repo
+ git remote add fork git@github.com:yegor256/gitted.git
+ git remote update
Fetching origin
Fetching fork
From github.com:yegor256/gitted
 * [new branch]      125        -> fork/125
 * [new branch]      17         -> fork/17
 * [new branch]      30         -> fork/30
 * [new branch]      5          -> fork/5
 * [new branch]      claude/nifty-rubin-vyrofo -> fork/claude/nifty-rubin-vyrofo
 * [new branch]      master     -> fork/master
 * [new branch]      renovate/actions-setup-python-7.x -> fork/renovate/actions-setup-python-7.x
 * [new branch]      renovate/astral-sh-setup-uv-10.x -> fork/renovate/astral-sh-setup-uv-10.x
+ args=()
+ '[' default == default ']'
+ args+=(--ff)
+ '[' default == no ']'
+ '[' default == only ']'
+ '[' false == true ']'
+ BRANCH=__rultor
++ wc -l
++ git show-branch __rultor
+ '[' 0 -gt 0 ']'
+ export BRANCH
+ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
+ git checkout -B __rultor fork/renovate/astral-sh-setup-uv-10.x
Switched to a new branch '__rultor'
Branch '__rultor' set up to track remote branch 'renovate/astral-sh-setup-uv-10.x' from 'fork'.
+ git checkout -B master origin/master
Switched to and reset branch 'master'
Branch 'master' set up to track remote branch 'master' from 'origin'.
Your branch is up to date with 'origin/master'.
+ '[' false == true ']'
+ KEY=3FD3FA7E9AF0FA4C
+ git merge --gpg-sign=3FD3FA7E9AF0FA4C --no-edit -m 'Update astral-sh/setup-uv action to v10' --ff __rultor
Updating 45a2bb6..b618893
Fast-forward (no commit created; -m option ignored)
 .github/workflows/codecov.yml | 2 +-
 .github/workflows/make.yml    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
+ git log -1 --show-signature
commit b6188933b8cdd4b3f5e11309ceee7916502b9307
gpg: Signature made Wed Aug 12 14:00:50 2026 UTC
gpg:                using RSA key B5690EEEBB952194
gpg: Can't check signature: No public key
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Wed Aug 12 14:00:50 2026 +0000

    Update astral-sh/setup-uv action to v10
+ docker_when_possible
+ true
++ tail -n 1
++ sed 's/ /\n/g'
++ uptime
+ load=0.06
++ bc
++ echo 0.06 '>' 30
+ '[' 0 -eq 1 ']'
+ echo 'load average is 0.06, low enough to run a new Docker container'
load average is 0.06, low enough to run a new Docker container
+ break
+ cd ..
+ '[' -n '' ']'
+ use_image=yegor256/python
+ docker pull yegor256/python
Using default tag: latest
latest: Pulling from yegor256/python
cb259a83ac3d: Pulling fs layer
4f4fb700ef54: Pulling fs layer
50778be6ae7c: Pulling fs layer
de39015cb2a0: Pulling fs layer
c5d1f12c356a: Pulling fs layer
e9b75b04736a: Pulling fs layer
74aacb7acb4e: Pulling fs layer
b343964c14ed: Pulling fs layer
2da5d65999c3: Pulling fs layer
f8ae7b3bd9d2: Pulling fs layer
62bf76adc5c1: Pulling fs layer
6f3edb78ee5d: Pulling fs layer
48cc4bd1ce6f: Pulling fs layer
de39015cb2a0: Waiting
c5d1f12c356a: Waiting
e9b75b04736a: Waiting
74aacb7acb4e: Waiting
b343964c14ed: Waiting
2da5d65999c3: Waiting
f8ae7b3bd9d2: Waiting
62bf76adc5c1: Waiting
6f3edb78ee5d: Waiting
48cc4bd1ce6f: Waiting
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
50778be6ae7c: Verifying Checksum
50778be6ae7c: Download complete
cb259a83ac3d: Verifying Checksum
cb259a83ac3d: Download complete
e9b75b04736a: Verifying Checksum
e9b75b04736a: Download complete
74aacb7acb4e: Verifying Checksum
74aacb7acb4e: Download complete
b343964c14ed: Verifying Checksum
b343964c14ed: Download complete
2da5d65999c3: Verifying Checksum
2da5d65999c3: Download complete
de39015cb2a0: Verifying Checksum
de39015cb2a0: Download complete
c5d1f12c356a: Verifying Checksum
c5d1f12c356a: Download complete
62bf76adc5c1: Verifying Checksum
62bf76adc5c1: Download complete
cb259a83ac3d: Pull complete
4f4fb700ef54: Pull complete
f8ae7b3bd9d2: Verifying Checksum
f8ae7b3bd9d2: Download complete
6f3edb78ee5d: Verifying Checksum
6f3edb78ee5d: Download complete
48cc4bd1ce6f: Verifying Checksum
48cc4bd1ce6f: Download complete
50778be6ae7c: Pull complete
de39015cb2a0: Pull complete
c5d1f12c356a: Pull complete
e9b75b04736a: Pull complete
74aacb7acb4e: Pull complete
b343964c14ed: Pull complete
2da5d65999c3: Pull complete
f8ae7b3bd9d2: Pull complete
62bf76adc5c1: Pull complete
6f3edb78ee5d: Pull complete
48cc4bd1ce6f: Pull complete
Digest: sha256:4a235da63268baf89273793b7373ccc7d0d9d5e237eb3a098ce9d211100715f7
Status: Downloaded newer image for yegor256/python:latest
docker.io/yegor256/python:latest
+ docker ps --filter=status=exited
+ grep --quiet '\syegor256_gitted_146\s*$'
+ ls -al .
total 48
drwx------  3 ubuntu ubuntu 4096 Aug 13 16:54 .
drwxrwxrwt 12 root   root   4096 Aug 13 16:54 ..
-rwxrwxr-x  1 ubuntu ubuntu  666 Aug 13 16:54 end.sh
-rwxrwxr-x  1 ubuntu ubuntu  498 Aug 13 16:54 entry.sh
-rw-rw-r--  1 ubuntu ubuntu    5 Aug 13 16:54 pid
drwxrwxr-x 12 ubuntu ubuntu 4096 Aug 13 16:54 repo
-rwxrwxr-x  1 ubuntu ubuntu 6715 Aug 13 16:54 run.sh
-rw-rw-r--  1 ubuntu ubuntu  643 Aug 13 16:54 script.sh
-rw-rw-r--  1 ubuntu ubuntu 8103 Aug 13 16:55 stdout
-rw-rw-r--  1 ubuntu ubuntu  205 Aug 13 16:54 token.txt
++ pwd
++ pwd
+ docker run -t --rm -v /tmp/rultor-MUf2:/main --env=head=git@github.com:yegor256/gitted.git --env=pull_id=146 --env=fork=git@github.com:yegor256/gitted.git --env=fork_branch=renovate/astral-sh-setup-uv-10.x --env=head_branch=master '--env=pull_title=Update astral-sh/setup-uv action to v10' --env=author=yegor256 '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:yegor256/gitted.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_id=146'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork=git@github.com:yegor256/gitted.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork_branch=renovate/astral-sh-setup-uv-10.x'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_title=Update astral-sh/setup-uv action to v10'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''pdd -f /dev/null'\'' '\'';'\'' '\''pip install --progress-bar=off -r requirements.txt'\'' '\'';'\'' '\''pip install --progress-bar=off uv'\'' '\'';'\'' '\''GITTED_BATCH=true GITTED_TESTING=true make -e'\'' '\'';'\'' )' --hostname=docker --privileged --net=host --dns 8.8.8.8 --add-host docker:127.0.0.1 --memory=8g --memory-swap=16g --oom-kill-disable --cidfile=/tmp/rultor-MUf2/cid -w=/main -v /var/run/docker.sock:/var/run/docker.sock --name=yegor256_gitted_146 yegor256/python /main/entry.sh
WARNING: Your kernel does not support OomKillDisable. OomKillDisable discarded.
+ set -e
+ set -o pipefail
+ shopt -s dotglob
+ useradd -m -G sudo r
++ awk -F : '$3 > 100 { print $1 }'
++ cat /etc/group
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G nogroup r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G ubuntu r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G systemd-journal r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G systemd-network r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G messagebus r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G _ssh r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G polkitd r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G ssh r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G docker r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G r r
+ usermod -s /bin/bash r
+ echo '%sudo ALL=(ALL) NOPASSWD:ALL'
+ cp -R /root/.bashrc /root/.cache /root/.gemrc /root/.gradle /root/.m2 /root/.profile /root/.python_history /root/.ssh /root/.wget-hsts /home/r
+ cp -R ./cid ./end.sh ./entry.sh ./pid ./repo ./run.sh ./script.sh ./stdout ./token.txt /home/r
+ rm -rf repo
+ chown -R r:r /home/r
+ chmod a+x /home/r/script.sh
+ cat /home/r/script.sh
#!/usr/bin/env bash
set -e
set -o pipefail
if [ -e /home/r/.profile ]; then source /home/r/.profile; fi
shopt -s expand_aliases
alias 'sudo=sudo -i'
export HOME=/home/r
cd "${HOME}/repo"
export 'head=git@github.com:yegor256/gitted.git' ; export 'pull_id=146' ; export 'fork=git@github.com:yegor256/gitted.git' ; export 'fork_branch=renovate/astral-sh-setup-uv-10.x' ; export 'head_branch=master' ; export 'pull_title=Update astral-sh/setup-uv action to v10' ; export 'author=yegor256' ; pdd -f /dev/null ; pip install --progress-bar=off -r requirements.txt ; pip install --progress-bar=off uv ; GITTED_BATCH=true GITTED_TESTING=true make -e ;
+ su --login r --command /home/r/script.sh
Found 7 lines in /home/r/repo/.pdd
My version is 0.23.1
Ruby version is 3.4.9 at x86_64-linux
Reading from root dir .
Excluding target/**/*
Excluding coverage/**/*
/usr/local/bundle/gems/pdd-0.23.1/lib/pdd/sources.rb:90: warning: undefining the allocator of T_DATA class FileMagic
/home/r/repo/renovate.json is a binary file (107 bytes)
Reading .0pdd.yml ...
Reading .gitattributes ...
Reading .github/workflows/actionlint.yml ...
Reading .github/workflows/bashate.yml ...
Reading .github/workflows/checkmake.yml ...
Reading .github/workflows/codecov.yml ...
Reading .github/workflows/copyrights.yml ...
Reading .github/workflows/make.yml ...
Reading .github/workflows/markdown-lint.yml ...
Reading .github/workflows/pdd.yml ...
Reading .github/workflows/reuse.yml ...
Reading .github/workflows/shellcheck.yml ...
Reading .github/workflows/typos.yml ...
Reading .github/workflows/up.yml ...
Reading .github/workflows/xcop.yml ...
Reading .github/workflows/yamllint.yml ...
Reading .gitignore ...
Reading .pdd ...
Reading .python-version ...
Reading .rultor.yml ...
Reading LICENSE.txt ...
Reading LICENSES/MIT.txt ...
Reading MANIFEST.in ...
Reading Makefile ...
Reading README.md ...
Reading REUSE.toml ...
Reading help/branch.txt ...
Reading help/commit.txt ...
Reading help/pull.txt ...
Reading help/push.txt ...
Reading makes/one-test.sh ...
Reading pyproject.toml ...
Reading release.sh ...
Reading requirements.txt ...
Reading scripts/branch ...
Reading scripts/commit ...
Reading scripts/pull ...
Reading scripts/push ...
Reading setup.py ...
Reading src/gitted/__init__.py ...
Reading src/gitted/diff2msg.py ...
Reading sub-scripts/all.sh ...
Reading sub-scripts/commons.sh ...
Reading sub-scripts/intro.sh ...
Reading sub-scripts/sanity.sh ...
Reading tests/__init__.py ...
Reading tests/test_diff2msg.py ...
Reading tests/test_scripts.py ...
Reading tests.sh/branch-fails-if-exists-locally.sh ...
Reading tests.sh/branch-fails-if-name-has-letters.sh ...
Reading tests.sh/branch-fails-if-name-is-empty.sh ...
Reading tests.sh/branch-fails-if-name-is-zero.sh ...
Reading tests.sh/branch-fails-when-push-rejected.sh ...
Reading tests.sh/commit-fails-on-unknown-branch.sh ...
Reading tests.sh/commits-first-time.sh ...
Reading tests.sh/commits-from-sub-directory.sh ...
Reading tests.sh/commits-large-diff.sh ...
Reading tests.sh/commits-on-main-branch.sh ...
Reading tests.sh/commits-one-file.sh ...
Reading tests.sh/prints-help.sh ...
Reading tests.sh/pulls-from-upstream-into-branch.sh ...
Reading tests.sh/pulls-from-upstream.sh ...
Reading tests.sh/pulls-in-empty-repo.sh ...
Reading tests.sh/pulls-once.sh ...
Reading tests.sh/pulls-submodule-from-sub-directory.sh ...
Reading tests.sh/pulls-when-submodule-has-local-changes.sh ...
Reading tests.sh/pushes-simple-changes.sh ...
Reading tests.sh/pushes-to-empty-remote.sh ...
Reading tests.sh/pushes-to-non-existing-branch.sh ...
Reading tests.sh/pushes-when-no-changes.sh ...
Reading tests.sh/pushes-when-remote-has-new-commits.sh ...
Reading tests.sh/sanity-fails-when-git-is-not-installed.sh ...
Reading tests.sh/sanity-fails-when-git-is-too-old.sh ...
Reading tests.sh/skips-commit-when-no-changes.sh ...
Reading tests.sh/skips-stash-if-empty.sh ...
Reading tests.sh/starts-a-branch.sh ...
Reading uv.lock ...
Defaulting to user installation because normal site-packages is not writeable
Collecting openai>=1.82.1 (from -r requirements.txt (line 1))
  Obtaining dependency information for openai>=1.82.1 from https://files.pythonhosted.org/packages/7b/0d/9850e7eddb5e66da4439ed503e78e09ad1fd0195e6df51e4236c75763581/openai-3.0.0-py3-none-any.whl.metadata
  Downloading openai-3.0.0-py3-none-any.whl.metadata (39 kB)
Collecting setuptools>=80.7.1 (from -r requirements.txt (line 2))
  Obtaining dependency information for setuptools>=80.7.1 from https://files.pythonhosted.org/packages/95/9c/c510029fc6ef33a6275cd2c5d3cecd6613dfd6aa401d57c54f1c18852ccf/setuptools-84.0.0-py3-none-any.whl.metadata
  Downloading setuptools-84.0.0-py3-none-any.whl.metadata (6.6 kB)
Collecting anyio&lt;5,&gt;=4.10.0 (from openai&gt;=1.82.1-&gt;-r requirements.txt (line 1))
  Obtaining dependency information for anyio<5,>=4.10.0 from https://files.pythonhosted.org/packages/da/35/f2287558c17e29fafc8ef3daf819bb9834061cfa43bff8014f7df7f63bdc/anyio-4.14.2-py3-none-any.whl.metadata
  Downloading anyio-4.14.2-py3-none-any.whl.metadata (4.6 kB)
Collecting distro<2,>=1.7.0 (from openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for distro<2,>=1.7.0 from https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl.metadata
  Downloading distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)
Collecting httpx2<3,>=2.7.0 (from openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for httpx2<3,>=2.7.0 from https://files.pythonhosted.org/packages/b9/6d/a637d52449d98a6892d9a4dc0262587afdb6a66f201871842dce5a97b1c1/httpx2-2.10.0-py3-none-any.whl.metadata
  Downloading httpx2-2.10.0-py3-none-any.whl.metadata (10 kB)
Collecting jiter<1,>=0.10.0 (from openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for jiter<1,>=0.10.0 from https://files.pythonhosted.org/packages/a8/d2/4839422241aa12860ce597b20068727094ba0bc480723c74924ca5bad483/jiter-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Downloading jiter-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.2 kB)
Collecting pydantic<3,>=1.9.0 (from openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for pydantic<3,>=1.9.0 from https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl.metadata
  Downloading pydantic-2.13.4-py3-none-any.whl.metadata (109 kB)
Collecting sniffio (from openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for sniffio from https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl.metadata
  Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)
Collecting tqdm>4 (from openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for tqdm>4 from https://files.pythonhosted.org/packages/f9/1c/01bfd571a64e7f270e6bab5e33777debe0edc56759233ce84f27dec92d14/tqdm-4.70.0-py3-none-any.whl.metadata
  Downloading tqdm-4.70.0-py3-none-any.whl.metadata (57 kB)
Collecting typing-extensions<5,>=4.14 (from openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for typing-extensions<5,>=4.14 from https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl.metadata
  Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)
Collecting idna>=2.8 (from anyio<5,>=4.10.0->openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for idna>=2.8 from https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl.metadata
  Downloading idna-3.18-py3-none-any.whl.metadata (6.1 kB)
Collecting httpcore2==2.10.0 (from httpx2<3,>=2.7.0->openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for httpcore2==2.10.0 from https://files.pythonhosted.org/packages/e5/4f/d149104195a35e2853a2fc203a8e3477747e58c80e17dda686dace174383/httpcore2-2.10.0-py3-none-any.whl.metadata
  Downloading httpcore2-2.10.0-py3-none-any.whl.metadata (25 kB)
Collecting truststore>=0.10 (from httpx2<3,>=2.7.0->openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for truststore>=0.10 from https://files.pythonhosted.org/packages/19/97/56608b2249fe206a67cd573bc93cd9896e1efb9e98bce9c163bcdc704b88/truststore-0.10.4-py3-none-any.whl.metadata
  Downloading truststore-0.10.4-py3-none-any.whl.metadata (4.4 kB)
Collecting h11>=0.16 (from httpcore2==2.10.0->httpx2<3,>=2.7.0->openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for h11>=0.16 from https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl.metadata
  Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)
Collecting annotated-types>=0.6.0 (from pydantic<3,>=1.9.0->openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for annotated-types>=0.6.0 from https://files.pythonhosted.org/packages/99/91/8acff4f5e50511b911bbccb72b8628a49c68ce14148cd9f6431094859a90/annotated_types-0.8.0-py3-none-any.whl.metadata
  Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.46.4 (from pydantic<3,>=1.9.0->openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for pydantic-core==2.46.4 from https://files.pythonhosted.org/packages/5f/97/2aab507d3d00ca626e8e57c1eac6a79e4e5fbcc63eb99733ff55d1717f65/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Downloading pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
Collecting typing-inspection>=0.4.2 (from pydantic<3,>=1.9.0->openai>=1.82.1->-r requirements.txt (line 1))
  Obtaining dependency information for typing-inspection>=0.4.2 from https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl.metadata
  Downloading typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB)
Downloading openai-3.0.0-py3-none-any.whl (1.7 MB)
Downloading setuptools-84.0.0-py3-none-any.whl (818 kB)
Downloading anyio-4.14.2-py3-none-any.whl (125 kB)
Downloading distro-1.9.0-py3-none-any.whl (20 kB)
Downloading httpx2-2.10.0-py3-none-any.whl (94 kB)
Downloading httpcore2-2.10.0-py3-none-any.whl (83 kB)
Downloading jiter-0.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (343 kB)
Downloading pydantic-2.13.4-py3-none-any.whl (472 kB)
Downloading pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
Downloading tqdm-4.70.0-py3-none-any.whl (80 kB)
Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB)
Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)
Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB)
Downloading idna-3.18-py3-none-any.whl (65 kB)
Downloading truststore-0.10.4-py3-none-any.whl (18 kB)
Downloading typing_inspection-0.4.4-py3-none-any.whl (14 kB)
Downloading h11-0.16.0-py3-none-any.whl (37 kB)
Installing collected packages: typing-extensions, truststore, tqdm, sniffio, setuptools, jiter, idna, h11, distro, annotated-types, typing-inspection, pydantic-core, httpcore2, anyio, pydantic, httpx2, openai
Successfully installed annotated-types-0.8.0 anyio-4.14.2 distro-1.9.0 h11-0.16.0 httpcore2-2.10.0 httpx2-2.10.0 idna-3.18 jiter-0.16.0 openai-3.0.0 pydantic-2.13.4 pydantic-core-2.46.4 setuptools-84.0.0 sniffio-1.3.1 tqdm-4.70.0 truststore-0.10.4 typing-extensions-4.16.0 typing-inspection-0.4.4

1m[0m34;49mnotice0m1;39;49m]0m39;49m A new release of pip is available: 0m31;49m23.2.10m39;49m -> 0m32;49m26.2.10m
1m[0m34;49mnotice0m1;39;49m]0m39;49m To update, run: 0m32;49mpip3 install --upgrade pip0m
Defaulting to user installation because normal site-packages is not writeable
Collecting uv
  Obtaining dependency information for uv from https://files.pythonhosted.org/packages/8d/c4/97fdd4fca11d06633bb500849f70e4e6b201bcba3833894732e709be2d60/uv-0.12.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Downloading uv-0.12.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Downloading uv-0.12.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.3 MB)
Installing collected packages: uv
Successfully installed uv-0.12.3

1m[0m34;49mnotice0m1;39;49m]0m39;49m A new release of pip is available: 0m31;49m23.2.10m39;49m -&gt; 0m32;49m26.2.10m
1m[0m34;49mnotice0m1;39;49m]0m39;49m To update, run: 0m32;49mpip3 install --upgrade pip0m
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
Using CPython 3.12.0 interpreter at: /usr/local/bin/python3.12
Creating virtual environment at: .venv
2KInstalled█55█packages[in/88ms2mtwine==6.1.0t==6.0.10.10mm                         0m          3737m⠹0mm2mPreparinggpackages...0mm(54/55))                                              1A1Amypyaigerenderers   0mm32m-----------------------------30m2m-0m0mm12.05MMiB/12.11MMiBiB       2Amypytographyerers   0mm32m-------------------------30m2m-----0m0mm10.26MMiB/12.11MMiBiB       3Amypytographyerers   0mm32m------------------------30m2m------0m0mm10.08MMiB/12.11MMiBiB       4Amypytographyolbelt  0mm32m---------------------30m2m---------0m0mm8.884MiB/12.115MiBiBBB      5Amypytographyolbelt  0mm32m-------------30m2m-----------------0m0mm5.284MiB/12.11MMiBKiBB      6Amypytographyylselt  0mm32m---------30m2m---------------------0m0mm3.684MiB/12.116MiBBiBB      7Amypyftographyeselt  0mm32m-------30m2m-----------------------0m0mm3.080MiB/12.119MiBBiB       8Amypyytographyeselt  0mm32m-------30m2m-----------------------0m0mm3.086MiB/12.111MiBBiB       9AAmypytographyeselt  00m332m-----30m2m-------------------------0m0m12.064MiB/12.11MMiBiB       210Aypytographyeselt  00m332m----30m2m--------------------------0m0m11.731MiB/12.119MiBiB       211Aypytographyeselt  00m332m----30m2m--------------------------0m0m11.735MiB/12.119MiBBB       112Aypytographyeselt   0m 32m----30m2m--------------------------0m0m 1.735MiB/12.119MiBBB        13Aypytographyeselt   0m 32m----30m2m--------------------------0m0m 1.735MiB/12.119MiBBB        14Aypytographyeselt   0m 32m---30m2m---------------------------0m0m 1.555MiB/12.119MiBBB        15Aypytographyeselt   0m 32m---30m2m---------------------------0m0m 1.555MiB/12.119MiBBB        16Aypytographyeselt   0m 32m---30m2m---------------------------0m0m 1.555MiB/12.119MiBBB        17Aypytographyeselt   0m 32m---30m2m---------------------------0m0m 1.285MiB/12.119MiBBB        18Aypytographyeselt   0m 32m---30m2m---------------------------0m0m 1.285MiB/12.119MiBBB        19Aypytographyey      0m 32m---30m2m---------------------------0m0m 1.285MiB/12.119MiBBBB       20Aypytographyey      0m 32m---30m2m---------------------------0m0m 1.285MiB/12.119MiBBB        21Aypytographyey      0m 32m---30m2m---------------------------0m0m 1.285MiB/12.119MiBBB        22Aypytographyey      0m 32m---30m2m---------------------------0m0m 1.285MiB/12.119MiBBB        23A
All checks passed!
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
1m32mSuccess: no issues found in 5 source filesBm
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
============================= test session starts ==============================
platform linux -- Python 3.12.0, pytest-8.3.5, pluggy-1.6.0 -- /home/r/repo/.venv/bin/python
cachedir: .pytest_cache
rootdir: /home/r/repo
configfile: pyproject.toml
plugins: anyio-4.9.0, cov-6.1.1
collectedg313itemss

tests/test_diff2msg.py::TestIsSummarizableChunk::test_include_text_file PASSED [  3%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_include_new_file PASSED [  6%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_exclude_svg_files PASSED [  9%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_exclude_binary_files PASSED [ 12%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_handle_filenames_with_spaces PASSED [ 16%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_handle_files_without_extension PASSED [ 19%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_handle_files_with_multiple_dots PASSED [ 22%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_handle_files_in_subdirectories PASSED [ 25%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_handle_quoted_filenames_with_unicode PASSED [ 29%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_exclude_quoted_svg_filename PASSED [ 32%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_raise_error_when_header_is_invalid PASSED [ 35%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_exclude_large_lockfile_chunk PASSED [ 38%]
tests/test_diff2msg.py::TestIsSummarizableChunk::test_include_small_chunk PASSED [ 41%]
tests/test_diff2msg.py::TestPrepareDiff::test_return_empty_string_for_empty_input PASSED [ 45%]
tests/test_diff2msg.py::TestPrepareDiff::test_handle_single_chunk_diff PASSED [ 48%]
tests/test_diff2msg.py::TestPrepareDiff::test_handle_multiple_chunks_diff PASSED [ 51%]
tests/test_diff2msg.py::TestPrepareDiff::test_return_empty_when_no_chunks_are_summarizable PASSED [ 54%]
tests/test_diff2msg.py::TestPrepareDiff::test_drop_large_chunk_keep_small_ones PASSED [ 58%]
tests/test_diff2msg.py::TestDiff2Msg::test_empty_diff PASSED             [ 61%]
tests/test_diff2msg.py::TestDiff2Msg::test_falls_back_to_user_message_when_diff_is_empty PASSED [ 64%]
tests/test_diff2msg.py::TestDiff2Msg::test_falls_back_to_user_message_when_all_chunks_are_filtered PASSED [ 67%]
tests/test_diff2msg.py::TestDiff2Msg::test_testing_mode PASSED           [ 70%]
tests/test_diff2msg.py::TestDiff2Msg::test_openai_call PASSED            [ 74%]
tests/test_diff2msg.py::TestDiff2Msg::test_model_overridden_by_env PASSED [ 77%]
tests/test_diff2msg.py::TestDiff2Msg::test_openai_call_with_message PASSED [ 80%]
tests/test_diff2msg.py::TestDiff2Msg::test_retries_on_api_timeout_then_succeeds PASSED [ 83%]
tests/test_diff2msg.py::TestDiff2Msg::test_retries_on_api_connection_error_then_succeeds PASSED [ 87%]
tests/test_diff2msg.py::TestDiff2Msg::test_raises_after_max_retries_exhausted PASSED [ 90%]
tests/test_scripts.py::test_scripts_exist PASSED                         [ 93%]
tests/test_scripts.py::test_scripts_have_shebang PASSED                  [ 96%]
tests/test_scripts.py::test_branch_script_no_args PASSED                 [100%]

================================ tests coverage ================================
_______________ coverage: platform linux, python 3.12.0-final-0 ________________

Name                     Stmts   Miss  Cover   Missing
------------------------------------------------------
src/gitted/__init__.py       1      0   100%
src/gitted/diff2msg.py      58      1    98%   66
------------------------------------------------------
TOTAL                       59      1    98%
============================== 31 passed in 1.79s ==============================
Running branch-fails-if-exists-locally.sh
Running branch-fails-if-name-has-letters.sh
Running branch-fails-if-name-is-empty.sh
Running branch-fails-if-name-is-zero.sh
Running branch-fails-when-push-rejected.sh
Running commit-fails-on-unknown-branch.sh
Running commits-first-time.sh
Running commits-from-sub-directory.sh
Running commits-large-diff.sh
Running commits-one-file.sh
Running commits-on-main-branch.sh
Running prints-help.sh
Running pulls-from-upstream-into-branch.sh
Running pulls-from-upstream.sh
Running pulls-in-empty-repo.sh
Running pulls-once.sh
Running pulls-submodule-from-sub-directory.sh
Running pulls-when-submodule-has-local-changes.sh
Running pushes-simple-changes.sh
Running pushes-to-empty-remote.sh
Running pushes-to-non-existing-branch.sh
Running pushes-when-no-changes.sh
Running pushes-when-remote-has-new-commits.sh
Running sanity-fails-when-git-is-not-installed.sh
Running sanity-fails-when-git-is-too-old.sh
Running skips-commit-when-no-changes.sh
Running skips-stash-if-empty.sh
Running starts-a-branch.sh
+ mv /home/r/repo .
++ whoami
+ chown -R root repo
+ '[' -n '' ']'
++ whoami
+ sudo chown -R ubuntu repo
+ cd repo
+ git push origin master
To github.com:yegor256/gitted.git
   45a2bb6..b618893  master -> master
container 308b743c2d923bab2857790764fc1ad3ad768ffd7db7672fe3d05a6ee1f44a84 is dead
Thu Aug 13 16:56:43 UTC 2026