studylife-cli 1.8.2__tar.gz → 1.8.3__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.
Files changed (22) hide show
  1. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/.github/workflows/ci.yml +46 -0
  2. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/CHANGELOG.md +7 -0
  3. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/PKG-INFO +1 -1
  4. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/src/studylife_cli/_version.py +2 -2
  5. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/.github/dependabot.yml +0 -0
  6. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/.gitignore +0 -0
  7. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/.releaserc.json +0 -0
  8. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/LICENSE +0 -0
  9. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/README.md +0 -0
  10. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/pyproject.toml +0 -0
  11. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/src/studylife_cli/__init__.py +0 -0
  12. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/src/studylife_cli/cli.py +0 -0
  13. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/src/studylife_cli/client.py +0 -0
  14. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/src/studylife_cli/credentials.py +0 -0
  15. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/src/studylife_cli/login.py +0 -0
  16. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/src/studylife_cli/models.py +0 -0
  17. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/src/studylife_cli/tui.py +0 -0
  18. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/tests/test_cli.py +0 -0
  19. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/tests/test_client.py +0 -0
  20. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/tests/test_login.py +0 -0
  21. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/tests/test_tui.py +0 -0
  22. {studylife_cli-1.8.2 → studylife_cli-1.8.3}/uv.lock +0 -0
@@ -53,6 +53,29 @@ jobs:
53
53
  - uses: actions/checkout@v7.0.1
54
54
  with:
55
55
  fetch-depth: 0
56
+ # Ruleset bypass for the release commit (2026-09-11 main-protection rollout): main is
57
+ # protected by a ruleset (pull request + green test stage) that the GitHub Actions app
58
+ # cannot be a bypass actor for on a personal repository, so semantic-release pushes over
59
+ # SSH as a write-enabled DEPLOY KEY instead, which can. No-op while the secret is unset -
60
+ # the push then goes through the GITHUB_TOKEN https remote exactly as before. Needed in
61
+ # get-version too: @semantic-release/git's verifyConditions runs `git push --dry-run`
62
+ # even in dry-run mode. Same mechanism as lukislp/studylife's ci-cd.yml.
63
+ - name: Push as the semantic-release deploy key (if configured)
64
+ env:
65
+ DEPLOY_KEY: ${{ secrets.SEMANTIC_RELEASE_DEPLOY_KEY }}
66
+ run: |
67
+ if [ -z "$DEPLOY_KEY" ]; then
68
+ echo "SEMANTIC_RELEASE_DEPLOY_KEY is not set - semantic-release pushes with GITHUB_TOKEN"
69
+ exit 0
70
+ fi
71
+ mkdir -p ~/.ssh && chmod 700 ~/.ssh
72
+ printf '%s\n' "$DEPLOY_KEY" > ~/.ssh/semantic_release
73
+ chmod 600 ~/.ssh/semantic_release
74
+ # github.com's published ed25519 host key, pinned instead of ssh-keyscan'd at runtime:
75
+ # https://docs.github.com/en/authentication/keychain/githubs-ssh-key-fingerprints
76
+ echo "github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl" >> ~/.ssh/known_hosts
77
+ git remote set-url origin "git@github.com:${{ github.repository }}.git"
78
+ echo "GIT_SSH_COMMAND=ssh -i ~/.ssh/semantic_release -o IdentitiesOnly=yes" >> "$GITHUB_ENV"
56
79
  - name: Sync to the current tip of main
57
80
  run: |
58
81
  git fetch origin main
@@ -83,6 +106,29 @@ jobs:
83
106
  - uses: actions/checkout@v7.0.1
84
107
  with:
85
108
  fetch-depth: 0
109
+ # Ruleset bypass for the release commit (2026-09-11 main-protection rollout): main is
110
+ # protected by a ruleset (pull request + green test stage) that the GitHub Actions app
111
+ # cannot be a bypass actor for on a personal repository, so semantic-release pushes over
112
+ # SSH as a write-enabled DEPLOY KEY instead, which can. No-op while the secret is unset -
113
+ # the push then goes through the GITHUB_TOKEN https remote exactly as before. Needed in
114
+ # get-version too: @semantic-release/git's verifyConditions runs `git push --dry-run`
115
+ # even in dry-run mode. Same mechanism as lukislp/studylife's ci-cd.yml.
116
+ - name: Push as the semantic-release deploy key (if configured)
117
+ env:
118
+ DEPLOY_KEY: ${{ secrets.SEMANTIC_RELEASE_DEPLOY_KEY }}
119
+ run: |
120
+ if [ -z "$DEPLOY_KEY" ]; then
121
+ echo "SEMANTIC_RELEASE_DEPLOY_KEY is not set - semantic-release pushes with GITHUB_TOKEN"
122
+ exit 0
123
+ fi
124
+ mkdir -p ~/.ssh && chmod 700 ~/.ssh
125
+ printf '%s\n' "$DEPLOY_KEY" > ~/.ssh/semantic_release
126
+ chmod 600 ~/.ssh/semantic_release
127
+ # github.com's published ed25519 host key, pinned instead of ssh-keyscan'd at runtime:
128
+ # https://docs.github.com/en/authentication/keychain/githubs-ssh-key-fingerprints
129
+ echo "github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl" >> ~/.ssh/known_hosts
130
+ git remote set-url origin "git@github.com:${{ github.repository }}.git"
131
+ echo "GIT_SSH_COMMAND=ssh -i ~/.ssh/semantic_release -o IdentitiesOnly=yes" >> "$GITHUB_ENV"
86
132
  - id: semrel
87
133
  uses: cycjimmy/semantic-release-action@b12c8f6015dc215fe37bc154d4ad456dd3833c90 # v6.0.0
88
134
  with:
@@ -1,3 +1,10 @@
1
+ ## [1.8.3](https://github.com/lukislp/studylife-cli/compare/v1.8.2...v1.8.3) (2026-09-11)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **ci:** push release commits as a deploy key so the default branch can be ruleset-protected ([deb7440](https://github.com/lukislp/studylife-cli/commit/deb7440b07cd58380deda44711e0bce342968c42))
7
+
1
8
  ## [1.8.2](https://github.com/lukislp/studylife-cli/compare/v1.8.1...v1.8.2) (2026-09-04)
2
9
 
3
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: studylife-cli
3
- Version: 1.8.2
3
+ Version: 1.8.3
4
4
  Summary: Command-line client for StudyLife (self-hosted study organizer) - notes, sessions, course goals, and webhooks from your terminal.
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.8.2'
22
- __version_tuple__ = version_tuple = (1, 8, 2)
21
+ __version__ = version = '1.8.3'
22
+ __version_tuple__ = version_tuple = (1, 8, 3)
23
23
 
24
24
  __commit_id__ = commit_id = None
File without changes
File without changes
File without changes
File without changes