pytgcli 0.8.0__tar.gz → 0.8.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytgcli-0.8.0 → pytgcli-0.8.2}/.github/workflows/ci.yml +0 -1
- pytgcli-0.8.2/.github/workflows/publish.yml +80 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/AGENTS.md +1 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/PKG-INFO +2 -4
- {pytgcli-0.8.0 → pytgcli-0.8.2}/README.md +1 -3
- {pytgcli-0.8.0 → pytgcli-0.8.2}/pyproject.toml +1 -1
- {pytgcli-0.8.0 → pytgcli-0.8.2}/uv.lock +1 -1
- pytgcli-0.8.0/.github/workflows/publish.yml +0 -17
- {pytgcli-0.8.0 → pytgcli-0.8.2}/.github/dependabot.yml +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/.gitignore +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/.pre-commit-config.yaml +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/.python-version +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/CLAUDE.md +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/LICENSE +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/install.sh +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/src/tgcli/__init__.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/src/tgcli/auth.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/src/tgcli/cli.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/src/tgcli/client.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/src/tgcli/config.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/src/tgcli/formatting.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/src/tgcli/session.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/src/tgcli/update.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/tests/__init__.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/tests/conftest.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/tests/test_auth.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/tests/test_cli.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/tests/test_client.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/tests/test_config.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/tests/test_formatting.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/tests/test_session.py +0 -0
- {pytgcli-0.8.0 → pytgcli-0.8.2}/tests/test_update.py +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
verify:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
15
|
+
with:
|
|
16
|
+
ref: ${{ github.ref_name }}
|
|
17
|
+
- name: Verify tag matches pyproject version
|
|
18
|
+
run: |
|
|
19
|
+
TAG_VERSION="${{ github.ref_name }}"
|
|
20
|
+
TAG_VERSION="${TAG_VERSION#v}"
|
|
21
|
+
PROJECT_VERSION="$(python3 -c "import tomllib;print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")"
|
|
22
|
+
if [ "$TAG_VERSION" != "$PROJECT_VERSION" ]; then
|
|
23
|
+
echo "Tag version ($TAG_VERSION) does not match pyproject version ($PROJECT_VERSION)."
|
|
24
|
+
exit 1
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
build:
|
|
28
|
+
needs: verify
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
permissions:
|
|
31
|
+
contents: read
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
34
|
+
with:
|
|
35
|
+
ref: ${{ github.ref_name }}
|
|
36
|
+
- uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
|
|
37
|
+
- run: uv build
|
|
38
|
+
- uses: actions/upload-artifact@v4
|
|
39
|
+
with:
|
|
40
|
+
name: dist
|
|
41
|
+
path: dist/*
|
|
42
|
+
|
|
43
|
+
github-release:
|
|
44
|
+
needs: build
|
|
45
|
+
runs-on: ubuntu-latest
|
|
46
|
+
permissions:
|
|
47
|
+
contents: write
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/download-artifact@v4
|
|
50
|
+
with:
|
|
51
|
+
name: dist
|
|
52
|
+
path: dist
|
|
53
|
+
- name: Create GitHub release and upload assets
|
|
54
|
+
env:
|
|
55
|
+
GH_TOKEN: ${{ github.token }}
|
|
56
|
+
run: |
|
|
57
|
+
if gh release view "${{ github.ref_name }}" --repo "${{ github.repository }}" > /dev/null 2>&1; then
|
|
58
|
+
echo "Release ${{ github.ref_name }} already exists."
|
|
59
|
+
else
|
|
60
|
+
gh release create "${{ github.ref_name }}" \
|
|
61
|
+
--repo "${{ github.repository }}" \
|
|
62
|
+
--title "${{ github.ref_name }}" \
|
|
63
|
+
--notes "Automated release for ${{ github.ref_name }}"
|
|
64
|
+
fi
|
|
65
|
+
gh release upload "${{ github.ref_name }}" dist/* --repo "${{ github.repository }}" --clobber
|
|
66
|
+
|
|
67
|
+
publish-pypi:
|
|
68
|
+
needs: build
|
|
69
|
+
runs-on: ubuntu-latest
|
|
70
|
+
environment: pypi
|
|
71
|
+
permissions:
|
|
72
|
+
id-token: write
|
|
73
|
+
contents: read
|
|
74
|
+
steps:
|
|
75
|
+
- uses: actions/download-artifact@v4
|
|
76
|
+
with:
|
|
77
|
+
name: dist
|
|
78
|
+
path: dist
|
|
79
|
+
- uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
|
|
80
|
+
- run: uv publish --trusted-publishing always dist/*
|
|
@@ -10,6 +10,7 @@ src/tgcli/
|
|
|
10
10
|
config.py # Config loading (TOML + env vars)
|
|
11
11
|
formatting.py # Pure output formatting functions (no I/O)
|
|
12
12
|
session.py # Keychain-backed StringSession via keyring (cross-platform)
|
|
13
|
+
update.py # Update checking, install method detection (stdlib only)
|
|
13
14
|
tests/ # pytest + pytest-asyncio, Telethon fully mocked
|
|
14
15
|
```
|
|
15
16
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pytgcli
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.2
|
|
4
4
|
Summary: CLI tool to read Telegram messages from the terminal
|
|
5
5
|
Project-URL: Repository, https://github.com/tksohishi/tgcli
|
|
6
6
|
Author: Takeshi
|
|
@@ -35,8 +35,6 @@ Give AI agents (Claude Code, Codex, Cursor, etc.) direct access to your Telegram
|
|
|
35
35
|
|
|
36
36
|
## Installation
|
|
37
37
|
|
|
38
|
-
Requires Python 3.12+.
|
|
39
|
-
|
|
40
38
|
**One-liner** (installs [uv](https://docs.astral.sh/uv/) if needed):
|
|
41
39
|
|
|
42
40
|
```bash
|
|
@@ -154,7 +152,7 @@ Read recent messages from a chat. Returns JSONL by default, newest first.
|
|
|
154
152
|
|
|
155
153
|
### `tg update`
|
|
156
154
|
|
|
157
|
-
Upgrade tgcli to the latest version (
|
|
155
|
+
Upgrade tgcli to the latest version. Detects the install method and runs the right command (or tells you what to run for Homebrew installs).
|
|
158
156
|
|
|
159
157
|
tgcli checks PyPI for new versions once per day and prints a notice to stderr when an update is available. Set `TGCLI_NO_UPDATE_CHECK=1` to disable.
|
|
160
158
|
|
|
@@ -12,8 +12,6 @@ Give AI agents (Claude Code, Codex, Cursor, etc.) direct access to your Telegram
|
|
|
12
12
|
|
|
13
13
|
## Installation
|
|
14
14
|
|
|
15
|
-
Requires Python 3.12+.
|
|
16
|
-
|
|
17
15
|
**One-liner** (installs [uv](https://docs.astral.sh/uv/) if needed):
|
|
18
16
|
|
|
19
17
|
```bash
|
|
@@ -131,7 +129,7 @@ Read recent messages from a chat. Returns JSONL by default, newest first.
|
|
|
131
129
|
|
|
132
130
|
### `tg update`
|
|
133
131
|
|
|
134
|
-
Upgrade tgcli to the latest version (
|
|
132
|
+
Upgrade tgcli to the latest version. Detects the install method and runs the right command (or tells you what to run for Homebrew installs).
|
|
135
133
|
|
|
136
134
|
tgcli checks PyPI for new versions once per day and prints a notice to stderr when an update is available. Set `TGCLI_NO_UPDATE_CHECK=1` to disable.
|
|
137
135
|
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
name: Publish to PyPI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
release:
|
|
5
|
-
types: [published]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
publish:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
environment: pypi
|
|
11
|
-
permissions:
|
|
12
|
-
id-token: write
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
15
|
-
- uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
|
|
16
|
-
- run: uv build
|
|
17
|
-
- run: uv publish --trusted-publishing always
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|