youtrack-cli 0.3.1__tar.gz → 0.3.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.
Files changed (94) hide show
  1. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/.claude/settings.local.json +2 -1
  2. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/PKG-INFO +1 -1
  3. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/justfile +2 -2
  4. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/pyproject.toml +1 -1
  5. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_admin.py +1 -1
  6. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/uv.lock +1 -1
  7. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/admin.py +7 -6
  8. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/.github/dependabot.yml +0 -0
  9. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/.github/workflows/ci.yml +0 -0
  10. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/.github/workflows/release.yml +0 -0
  11. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/.gitignore +0 -0
  12. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/.pre-commit-config.yaml +0 -0
  13. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/.readthedocs.yaml +0 -0
  14. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/CLAUDE.md +0 -0
  15. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/PUBLISHING.md +0 -0
  16. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/README.md +0 -0
  17. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/Makefile +0 -0
  18. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/api/index.rst +0 -0
  19. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/changelog.rst +0 -0
  20. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/command-aliases.rst +0 -0
  21. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/admin.rst +0 -0
  22. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/articles.rst +0 -0
  23. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/auth.rst +0 -0
  24. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/boards.rst +0 -0
  25. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/config.rst +0 -0
  26. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/index.rst +0 -0
  27. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/issues.rst +0 -0
  28. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/projects.rst +0 -0
  29. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/reports.rst +0 -0
  30. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/time.rst +0 -0
  31. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/commands/users.rst +0 -0
  32. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/conf.py +0 -0
  33. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/configuration.rst +0 -0
  34. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/development.rst +0 -0
  35. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/index.rst +0 -0
  36. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/installation.rst +0 -0
  37. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/learning-path.rst +0 -0
  38. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/logging.rst +0 -0
  39. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/performance.md +0 -0
  40. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/progress-indicators.md +0 -0
  41. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/quickstart.rst +0 -0
  42. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/requirements.txt +0 -0
  43. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/security.rst +0 -0
  44. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/troubleshooting.rst +0 -0
  45. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/workflows.rst +0 -0
  46. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/docs/youtrack-concepts.rst +0 -0
  47. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/package-lock.json +0 -0
  48. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/package.json +0 -0
  49. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/__init__.py +0 -0
  50. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/conftest.py +0 -0
  51. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_articles.py +0 -0
  52. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_auth.py +0 -0
  53. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_boards.py +0 -0
  54. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_config.py +0 -0
  55. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_issues.py +0 -0
  56. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_logging.py +0 -0
  57. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_main.py +0 -0
  58. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_projects.py +0 -0
  59. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_reports.py +0 -0
  60. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_security.py +0 -0
  61. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_time.py +0 -0
  62. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tests/test_users.py +0 -0
  63. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/tox.ini +0 -0
  64. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/__init__.py +0 -0
  65. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/articles.py +0 -0
  66. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/auth.py +0 -0
  67. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/boards.py +0 -0
  68. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/cache.py +0 -0
  69. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/cli_utils/__init__.py +0 -0
  70. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/cli_utils/aliases.py +0 -0
  71. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/client.py +0 -0
  72. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/commands/__init__.py +0 -0
  73. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/commands/articles.py +0 -0
  74. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/commands/boards.py +0 -0
  75. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/commands/common.py +0 -0
  76. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/commands/issues.py +0 -0
  77. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/commands/projects.py +0 -0
  78. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/commands/time_tracking.py +0 -0
  79. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/commands/users.py +0 -0
  80. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/common.py +0 -0
  81. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/config.py +0 -0
  82. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/exceptions.py +0 -0
  83. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/issues.py +0 -0
  84. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/logging.py +0 -0
  85. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/main.py +0 -0
  86. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/performance.py +0 -0
  87. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/progress.py +0 -0
  88. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/projects.py +0 -0
  89. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/py.typed +0 -0
  90. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/reports.py +0 -0
  91. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/security.py +0 -0
  92. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/time.py +0 -0
  93. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/users.py +0 -0
  94. {youtrack_cli-0.3.1 → youtrack_cli-0.3.2}/youtrack_cli/utils.py +0 -0
@@ -40,7 +40,8 @@
40
40
  "mcp__github__create_issue",
41
41
  "mcp__claude-code__Read",
42
42
  "mcp__claude-code__Grep",
43
- "WebFetch(domain:github.com)"
43
+ "WebFetch(domain:github.com)",
44
+ "Bash(git remote get-url:*)"
44
45
  ],
45
46
  "deny": []
46
47
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: youtrack-cli
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: YouTrack CLI - Command line interface for JetBrains YouTrack issue tracking system
5
5
  Project-URL: Homepage, https://github.com/ryan-murphy/yt-cli
6
6
  Project-URL: Documentation, https://yt-cli.readthedocs.io/
@@ -52,8 +52,8 @@ format-check:
52
52
  [group('quality')]
53
53
  typecheck:
54
54
  #!/usr/bin/env bash
55
- echo "Running mypy type checker..."
56
- uv run mypy youtrack_cli
55
+ echo "Running ty type checker..."
56
+ uv run ty youtrack_cli
57
57
  echo "✅ Type checking complete"
58
58
 
59
59
  [group('quality')]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "youtrack-cli"
3
- version = "0.3.1"
3
+ version = "0.3.2"
4
4
  description = "YouTrack CLI - Command line interface for JetBrains YouTrack issue tracking system"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9, <3.14"
@@ -209,7 +209,7 @@ class TestAdminManager:
209
209
 
210
210
  with patch("httpx.AsyncClient") as mock_client:
211
211
  mock_response = Mock()
212
- mock_response.json.return_value = mock_groups
212
+ mock_response.json.return_value = {"usergroups": mock_groups}
213
213
  mock_response.raise_for_status.return_value = None
214
214
 
215
215
  mock_client.return_value.__aenter__.return_value.get.return_value = mock_response
@@ -1751,7 +1751,7 @@ wheels = [
1751
1751
 
1752
1752
  [[package]]
1753
1753
  name = "youtrack-cli"
1754
- version = "0.3.1"
1754
+ version = "0.3.2"
1755
1755
  source = { editable = "." }
1756
1756
  dependencies = [
1757
1757
  { name = "click" },
@@ -151,7 +151,7 @@ class AdminManager:
151
151
  async with httpx.AsyncClient() as client:
152
152
  try:
153
153
  response = await client.get(
154
- f"{credentials.base_url.rstrip('/')}/api/admin/license",
154
+ f"{credentials.base_url.rstrip('/')}/api/admin/globalSettings/license",
155
155
  headers=headers,
156
156
  timeout=10.0,
157
157
  )
@@ -192,7 +192,7 @@ class AdminManager:
192
192
  async with httpx.AsyncClient() as client:
193
193
  try:
194
194
  response = await client.get(
195
- f"{credentials.base_url.rstrip('/')}/api/admin/license/usage",
195
+ f"{credentials.base_url.rstrip('/')}/api/admin/globalSettings/license/usage",
196
196
  headers=headers,
197
197
  timeout=10.0,
198
198
  )
@@ -234,7 +234,7 @@ class AdminManager:
234
234
  async with httpx.AsyncClient() as client:
235
235
  try:
236
236
  response = await client.get(
237
- f"{credentials.base_url.rstrip('/')}/api/admin/health",
237
+ f"{credentials.base_url.rstrip('/')}/api/admin/globalSettings/systemSettings",
238
238
  headers=headers,
239
239
  timeout=10.0,
240
240
  )
@@ -327,14 +327,15 @@ class AdminManager:
327
327
  async with httpx.AsyncClient() as client:
328
328
  try:
329
329
  response = await client.get(
330
- f"{credentials.base_url.rstrip('/')}/api/admin/groups",
330
+ f"{credentials.base_url.rstrip('/')}/api/rest/usergroups",
331
331
  headers=headers,
332
332
  params=params,
333
333
  timeout=10.0,
334
334
  )
335
335
  response.raise_for_status()
336
336
 
337
- groups = response.json()
337
+ groups_response = response.json()
338
+ groups = groups_response.get("usergroups", [])
338
339
  return {"status": "success", "data": groups}
339
340
 
340
341
  except httpx.HTTPError as e:
@@ -378,7 +379,7 @@ class AdminManager:
378
379
  async with httpx.AsyncClient() as client:
379
380
  try:
380
381
  response = await client.post(
381
- f"{credentials.base_url.rstrip('/')}/api/admin/groups",
382
+ f"{credentials.base_url.rstrip('/')}/api/rest/usergroups",
382
383
  headers=headers,
383
384
  json=group_data,
384
385
  params={"fields": "id,name,description"},
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes