podojo-cli 0.4.3__tar.gz → 0.4.4__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 (31) hide show
  1. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/.github/workflows/publish.yml +4 -2
  2. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/CHANGELOG.md +6 -0
  3. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/PKG-INFO +1 -1
  4. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/pyproject.toml +1 -1
  5. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/commands/usertests.py +27 -0
  6. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/tests/test_usertests.py +9 -0
  7. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/uv.lock +1 -1
  8. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/.gitignore +0 -0
  9. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/CLAUDE.md +0 -0
  10. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/README.md +0 -0
  11. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/__init__.py +0 -0
  12. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/client.py +0 -0
  13. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/commands/__init__.py +0 -0
  14. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/commands/auth.py +0 -0
  15. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/commands/gdrive.py +0 -0
  16. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/commands/projects.py +0 -0
  17. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/commands/showreel.py +0 -0
  18. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/commands/transcripts.py +0 -0
  19. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/commands/videos.py +0 -0
  20. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/config.py +0 -0
  21. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/gdrive/__init__.py +0 -0
  22. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/gdrive/list.py +0 -0
  23. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/gdrive/upload.py +0 -0
  24. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/main.py +0 -0
  25. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/video/__init__.py +0 -0
  26. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/src/podojo_cli/video/showreel.py +0 -0
  27. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/tests/conftest.py +0 -0
  28. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/tests/test_auth.py +0 -0
  29. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/tests/test_gdrive.py +0 -0
  30. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/tests/test_projects.py +0 -0
  31. {podojo_cli-0.4.3 → podojo_cli-0.4.4}/tests/test_showreel.py +0 -0
@@ -14,10 +14,12 @@ jobs:
14
14
  id-token: write
15
15
  attestations: write
16
16
  steps:
17
- - uses: actions/checkout@v4
17
+ - uses: actions/checkout@v6
18
18
 
19
- - uses: astral-sh/setup-uv@v4
19
+ - uses: astral-sh/setup-uv@v8.0.0
20
20
 
21
21
  - run: uv build
22
22
 
23
23
  - uses: pypa/gh-action-pypi-publish@release/v1
24
+ with:
25
+ skip-existing: true
@@ -5,6 +5,12 @@ All notable changes to the Podojo CLI will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org).
7
7
 
8
+ ## [0.4.4] - 2026-04-19
9
+
10
+ ### Added
11
+ - `usertests snippet` command prints the recorder script to embed in self-hosted prototypes
12
+ - `usertests create` now hints at the snippet command so users know how to enable screen recording
13
+
8
14
  ## [0.4.3] - 2026-04-14
9
15
 
10
16
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: podojo-cli
3
- Version: 0.4.3
3
+ Version: 0.4.4
4
4
  Summary: CLI for the Podojo user research platform
5
5
  Project-URL: Homepage, https://github.com/podojo/cli-podojo
6
6
  Project-URL: Source, https://github.com/podojo/cli-podojo
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "podojo-cli"
3
- version = "0.4.3"
3
+ version = "0.4.4"
4
4
  description = "CLI for the Podojo user research platform"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -16,6 +16,22 @@ VALID_STEP_TYPES = {"screen", "prototype"}
16
16
  VALID_STEP_VARIANTS = {"question", "task", "intro", "feedback", "instruction"}
17
17
  REQUIRED_STEP_FIELDS = ["type", "title"]
18
18
 
19
+ RECORDER_SNIPPET = """\
20
+ <script src="https://usertests.podojo.com/player.js"></script>
21
+ <script>
22
+ if (typeof rrweb === "undefined") {
23
+ console.error("[rrweb] failed to load — screen recording disabled");
24
+ } else {
25
+ rrweb.record({
26
+ emit(event) {
27
+ window.parent.postMessage({ type: "rrweb-event", event: event }, "*");
28
+ },
29
+ checkoutEveryNms: 30000,
30
+ });
31
+ }
32
+ </script>
33
+ """
34
+
19
35
  EXAMPLE_YAML = """\
20
36
  # Podojo Unmoderated User Test Configuration
21
37
  #
@@ -257,6 +273,11 @@ def create_usertest(
257
273
  if group:
258
274
  console.print(f" Preview: https://usertests.podojo.com/preview/{group}/{usertest_id}")
259
275
  console.print(f" Live: https://usertests.podojo.com/{group}?test={usertest_id}")
276
+ console.print(
277
+ "\n[dim]If your prototype is self-hosted, add the recorder script to its "
278
+ "[bold]<head>[/bold] to enable screen recording.\n"
279
+ "Run [bold]podojo usertests snippet[/bold] to print it.[/dim]"
280
+ )
260
281
 
261
282
 
262
283
  @app.command("update")
@@ -323,3 +344,9 @@ def validate(
323
344
  def example():
324
345
  """Print an example user test YAML template."""
325
346
  print(EXAMPLE_YAML)
347
+
348
+
349
+ @app.command("snippet")
350
+ def snippet():
351
+ """Print the recorder script to embed in self-hosted prototypes."""
352
+ print(RECORDER_SNIPPET)
@@ -126,6 +126,7 @@ def test_create_usertest(runner, httpx_mock, tmp_path):
126
126
  assert "test-usertest-1" in result.output
127
127
  assert "https://usertests.podojo.com/preview/test-group/test-usertest-1" in result.output
128
128
  assert "https://usertests.podojo.com/test-group?test=test-usertest-1" in result.output
129
+ assert "podojo usertests snippet" in result.output
129
130
 
130
131
 
131
132
  def test_create_usertest_file_not_found(runner):
@@ -280,3 +281,11 @@ def test_example(runner):
280
281
  assert "steps:" in result.output
281
282
  assert "prototype" in result.output
282
283
  assert "screen" in result.output
284
+
285
+
286
+ def test_snippet(runner):
287
+ result = runner.invoke(app, ["usertests", "snippet"])
288
+
289
+ assert result.exit_code == 0
290
+ assert "player.js" in result.output
291
+ assert "rrweb.record" in result.output
@@ -472,7 +472,7 @@ wheels = [
472
472
 
473
473
  [[package]]
474
474
  name = "podojo-cli"
475
- version = "0.4.3"
475
+ version = "0.4.4"
476
476
  source = { editable = "." }
477
477
  dependencies = [
478
478
  { name = "google-api-python-client" },
File without changes
File without changes
File without changes
File without changes