dockerhub-api 1.3.6__tar.gz → 1.3.7__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 (81) hide show
  1. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/PKG-INFO +1 -1
  2. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/ontology/certification.json +1 -1
  3. dockerhub_api-1.3.7/dockerhub_api/skills/dockerhub-api-development/SKILL.md +110 -0
  4. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api.egg-info/PKG-INFO +1 -1
  5. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api.egg-info/SOURCES.txt +1 -0
  6. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/pyproject.toml +1 -1
  7. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_init_dynamics.py +0 -2
  8. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_startup.py +0 -2
  9. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/LICENSE +0 -0
  10. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/README.md +0 -0
  11. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/__init__.py +0 -0
  12. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/__main__.py +0 -0
  13. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/__init__.py +0 -0
  14. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_access_tokens.py +0 -0
  15. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_audit_logs.py +0 -0
  16. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_auth.py +0 -0
  17. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_base.py +0 -0
  18. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_groups.py +0 -0
  19. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_org_access_tokens.py +0 -0
  20. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_orgs.py +0 -0
  21. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_registry.py +0 -0
  22. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_registry_base.py +0 -0
  23. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_repositories.py +0 -0
  24. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_scim.py +0 -0
  25. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api/api_client_scout.py +0 -0
  26. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/api_client.py +0 -0
  27. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/auth.py +1 -1
  28. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/connector_sources.py +0 -0
  29. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/dockerhub_input_models.py +0 -0
  30. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/dockerhub_response_models.py +0 -0
  31. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/kg_ingest.py +0 -0
  32. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/__init__.py +0 -0
  33. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_admin.py +0 -0
  34. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_audit.py +0 -0
  35. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_auth.py +0 -0
  36. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_kg.py +0 -0
  37. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_org.py +0 -0
  38. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_registry.py +0 -0
  39. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_repos.py +0 -0
  40. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_scim.py +0 -0
  41. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_scout.py +0 -0
  42. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp/mcp_teams.py +0 -0
  43. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp_config.json +0 -0
  44. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/mcp_server.py +0 -0
  45. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/ontology/__init__.py +0 -0
  46. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/ontology/dockerhub.ttl +0 -0
  47. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/ontology/fixtures/records.json +0 -0
  48. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/ontology/mappings/source.yaml +0 -0
  49. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/ontology/migrations/manifest.json +0 -0
  50. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/ontology/shapes/connector.shacl.ttl +0 -0
  51. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/skills/dockerhub-api-operations/SKILL.md +0 -0
  52. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/skills/dockerhub-api-operations/agents/openai.yaml +0 -0
  53. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/skills/dockerhub-api-operations/references/catalog.md +0 -0
  54. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/skills/dockerhub-image-registry-scout/SKILL.md +0 -0
  55. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/skills/dockerhub-image-registry-scout/WORKFLOW.md +0 -0
  56. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/skills/dockerhub-org-administration/SKILL.md +0 -0
  57. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/skills/dockerhub-org-administration/WORKFLOW.md +0 -0
  58. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/skills/dockerhub-repository-management/SKILL.md +0 -0
  59. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api/skills/dockerhub-repository-management/WORKFLOW.md +0 -0
  60. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api.egg-info/dependency_links.txt +0 -0
  61. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api.egg-info/entry_points.txt +0 -0
  62. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api.egg-info/requires.txt +0 -0
  63. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/dockerhub_api.egg-info/top_level.txt +0 -0
  64. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/setup.cfg +0 -0
  65. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_api_audit.py +0 -0
  66. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_api_org.py +0 -0
  67. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_api_registry.py +0 -0
  68. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_api_repositories.py +0 -0
  69. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_api_scim.py +0 -0
  70. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_api_scout.py +0 -0
  71. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_api_teams.py +0 -0
  72. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_api_tokens.py +0 -0
  73. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_api_wrapper.py +0 -0
  74. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_auth.py +0 -0
  75. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_dockerhub_a2a_validation.py +0 -0
  76. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_dockerhub_mcp_validation.py +0 -0
  77. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_fleet_name.py +0 -0
  78. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_identity_namespace_scoping.py +0 -0
  79. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_kg_ingest.py +0 -0
  80. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_models.py +0 -0
  81. {dockerhub_api-1.3.6 → dockerhub_api-1.3.7}/tests/test_rate_limit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dockerhub-api
3
- Version: 1.3.6
3
+ Version: 1.3.7
4
4
  Summary: Docker Hub API + MCP Server
5
5
  Author-email: Repository Maintainers <maintainers@knuckles.team>
6
6
  License: MIT
@@ -29,5 +29,5 @@
29
29
  "signer": "UNSIGNED-PREVIEW",
30
30
  "signing_public_key": "",
31
31
  "status": "source-validated",
32
- "validated_at": "2026-10-24T09:37:17Z"
32
+ "validated_at": "2026-10-26T16:04:54Z"
33
33
  }
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: dockerhub-api-development
3
+ skill_type: skill
4
+ description: >-
5
+ Develop, test, and publish the dockerhub-api connector without breaking its
6
+ typed Docker Hub API contract, packaged content, spec delivery dashboard, or
7
+ governed Pages workflow. Use when changing connector code, docs, skills,
8
+ workflows, or repository-owned specs.
9
+ license: MIT
10
+ tags: [dockerhub, connector, development, testing, pages, specs]
11
+ metadata:
12
+ author: Genius
13
+ version: '0.1.0'
14
+ ---
15
+ # Docker Hub API Development
16
+
17
+ Use this skill for changes inside the dockerhub-api package. The connector
18
+ exposes Docker Hub management, registry, Scout, and knowledge-graph operations
19
+ through typed HTTP clients, action-routed MCP tools, an A2A agent, and packaged
20
+ resource content. Keep those surfaces aligned when a change crosses a boundary.
21
+
22
+ ## Repository map
23
+
24
+ - dockerhub_api/api/ contains domain client mixins composed into the Api facade.
25
+ - dockerhub_api/auth.py owns JWT minting, caching, refresh, and client setup.
26
+ - dockerhub_api/mcp/ registers domain tools and keeps actions routed through the
27
+ corresponding client method.
28
+ - dockerhub_api/skills/, prompts/, ontology/, and connectors/ are packaged
29
+ resources exposed by the connector entry point.
30
+ - specs/connector-content/ and specs/connector-identity/ are the source
31
+ specifications; their status.json files are generated evidence, never hand
32
+ edited.
33
+
34
+ ## Before editing
35
+
36
+ 1. Work from a real worktree based on the repository's current origin/main.
37
+ 2. Find the owning row under specs/ before adding behavior, and preserve the
38
+ existing CONCEPT: registry when a domain capability is involved.
39
+ 3. Trace a changed action from its Pydantic input model through the MCP router,
40
+ client mixin, auth lifecycle, and response envelope. Do not duplicate an
41
+ existing HTTP path.
42
+ 4. Keep credentials and external Docker Hub calls out of tests; extend the
43
+ existing MockHub transport and assert the request and redacted result.
44
+
45
+ ## Implementation contract
46
+
47
+ - Preserve the dockerhub-mcp connector name and the uniform
48
+ status_code/data/rate_limit response envelope.
49
+ - Keep destructive operations behind DockerHubApiBase._guard_destructive and
50
+ never persist or return bearer tokens except the documented one-time create
51
+ response.
52
+ - Use Pydantic input and response models, action-routed tools, and the shared
53
+ agent-utilities server/agent factories.
54
+ - Add or update a focused test when behavior changes. Cover invalid action or
55
+ parameters and the successful response shape.
56
+ - Keep all package resources under the existing package-data globs so an sdist
57
+ and wheel expose the same skills, prompts, ontology, agent data, and
58
+ connector manifest.
59
+
60
+ ## Rapid delivery: the 5-minute contract
61
+
62
+ Specs are already designed. Deliver one small, reviewable change at a time.
63
+
64
+ - Start with one owning requirement and state its proof before editing.
65
+ - Keep a slice to one connector concern: source code, one test seam, one
66
+ workflow/configuration repair, or one substantive skill.
67
+ - Run the smallest relevant tests first, then the repository pre-commit suite
68
+ on the candidate worktree. Fix warnings and failures rather than bypassing a
69
+ hook.
70
+ - Record the exact source and test commands in the commit or review handoff.
71
+ - Never claim a Pages or spec row from a YAML marker alone: the dashboard config,
72
+ generated status records, successful exact-source workflow, and published
73
+ page must agree.
74
+ - Commit only reviewed paths with an explicit path list. Never stage a whole
75
+ shared checkout, credentials, caches, generated logs, or temporary output.
76
+
77
+ ## Spec delivery and Pages
78
+
79
+ The canonical Pages caller is .github/workflows/pages.yml. This repository uses
80
+ the docs/ content source, so the caller must pass content_source: docs, enable
81
+ spec_dashboard_enabled, and point spec_dashboard_config at
82
+ .github/spec-dashboard.json. The push path set must include specs/**, the
83
+ dashboard config, and the Pages workflow itself in addition to documentation
84
+ paths. Keep the config versioned and bounded to specs/*/status.json; the
85
+ central renderer owns the HTML layout.
86
+
87
+ Regenerate status evidence with the pipeline hook when a spec changes, inspect
88
+ the resulting diff, and verify that no status row was advanced without a real
89
+ implementation or test receipt. The Pages proof is complete only after the
90
+ published run uses the candidate commit and /spec-delivery/ serves the
91
+ candidate snapshot.
92
+
93
+ ## Verification
94
+
95
+ From the repository root:
96
+
97
+ pre-commit run --all-files
98
+ python -m pytest tests -q
99
+
100
+ Prefer focused tests for the touched module while iterating. For Pages changes,
101
+ also run the central dashboard renderer against a task-local output directory
102
+ and verify the config parses, status files are discovered, and the result
103
+ contains the connector content and identity records.
104
+
105
+ ## Safety
106
+
107
+ Never commit .env files, tokens, raw Docker Hub identifiers, or generated site
108
+ output. Never make live Docker Hub calls from tests. Preserve destructive
109
+ gating and secret redaction. If a dependency or packaged metadata change is
110
+ necessary, update the lockfile in the same slice and explain why in the review.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dockerhub-api
3
- Version: 1.3.6
3
+ Version: 1.3.7
4
4
  Summary: Docker Hub API + MCP Server
5
5
  Author-email: Repository Maintainers <maintainers@knuckles.team>
6
6
  License: MIT
@@ -48,6 +48,7 @@ dockerhub_api/ontology/fixtures/records.json
48
48
  dockerhub_api/ontology/mappings/source.yaml
49
49
  dockerhub_api/ontology/migrations/manifest.json
50
50
  dockerhub_api/ontology/shapes/connector.shacl.ttl
51
+ dockerhub_api/skills/dockerhub-api-development/SKILL.md
51
52
  dockerhub_api/skills/dockerhub-api-operations/SKILL.md
52
53
  dockerhub_api/skills/dockerhub-api-operations/agents/openai.yaml
53
54
  dockerhub_api/skills/dockerhub-api-operations/references/catalog.md
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dockerhub-api"
7
- version = "1.3.6"
7
+ version = "1.3.7"
8
8
  description = "Docker Hub API + MCP Server"
9
9
  readme = "README.md"
10
10
  classifiers = [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Environment :: Console", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3",]
@@ -13,5 +13,3 @@ def test_core_symbols_exposed():
13
13
  for symbol in ("Api", "get_client", "TokenManager"):
14
14
  assert symbol in module.__all__
15
15
  assert hasattr(module, symbol)
16
-
17
-
@@ -22,5 +22,3 @@ def test_mcp_server_help():
22
22
  timeout=120,
23
23
  )
24
24
  assert result.returncode == 0
25
-
26
-
File without changes
File without changes
@@ -66,8 +66,8 @@ def _entitled(namespace: str, names: list[str]) -> list[str]:
66
66
  fails closed — only the "nothing to check" case degrades.
67
67
  """
68
68
  try:
69
- from agent_connector_sdk.identity import IdentityRequiredError
70
69
  from agent_connector_sdk.entitlements import identity_scoped_resources
70
+ from agent_connector_sdk.identity import IdentityRequiredError
71
71
  except Exception:
72
72
  return list(names)
73
73
  try:
File without changes