github-agent 2.4.6__tar.gz → 2.4.8__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 (141) hide show
  1. {github_agent-2.4.6 → github_agent-2.4.8}/PKG-INFO +2 -2
  2. {github_agent-2.4.6 → github_agent-2.4.8}/README.md +1 -1
  3. github_agent-2.4.8/github_agent/__init__.py +1 -0
  4. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp_server.py +1 -1
  5. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/ontology/github.ttl +5 -27
  6. github_agent-2.4.8/github_agent/ontology/ingest_sources.json +24 -0
  7. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent.egg-info/PKG-INFO +2 -2
  8. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent.egg-info/SOURCES.txt +3 -0
  9. {github_agent-2.4.6 → github_agent-2.4.8}/pyproject.toml +1 -1
  10. github_agent-2.4.8/tests/test_cq_paths.py +50 -0
  11. github_agent-2.4.8/tests/test_ingest_sources.py +34 -0
  12. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_ontology_parent_link.py +1 -7
  13. github_agent-2.4.6/github_agent/__init__.py +0 -1
  14. {github_agent-2.4.6 → github_agent-2.4.8}/LICENSE +0 -0
  15. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/__main__.py +0 -0
  16. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/__init__.py +0 -0
  17. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_base.py +0 -0
  18. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_branches.py +0 -0
  19. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_comments.py +0 -0
  20. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_commits.py +0 -0
  21. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_contents.py +0 -0
  22. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_dependabot.py +0 -0
  23. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_issues.py +0 -0
  24. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_orgs.py +0 -0
  25. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_pages.py +0 -0
  26. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_pulls.py +0 -0
  27. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_releases.py +0 -0
  28. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_repos.py +0 -0
  29. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_search.py +0 -0
  30. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api/api_client_workflows.py +0 -0
  31. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/api_client.py +0 -0
  32. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/auth.py +0 -0
  33. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/connectors/__init__.py +0 -0
  34. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/connectors/mcp_source_presets.json +0 -0
  35. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/connectors/tool_schema_fingerprints.json +0 -0
  36. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/github_gql.py +0 -0
  37. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/github_http.py +0 -0
  38. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/github_input_models.py +0 -0
  39. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/github_response_models.py +0 -0
  40. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/kg_ingest.py +0 -0
  41. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/__init__.py +0 -0
  42. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_action.py +0 -0
  43. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_branch.py +0 -0
  44. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_collaborator.py +0 -0
  45. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_commit.py +0 -0
  46. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_content.py +0 -0
  47. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_dependabot.py +0 -0
  48. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_issue.py +0 -0
  49. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_org.py +0 -0
  50. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_pull.py +0 -0
  51. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_release.py +0 -0
  52. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_repo.py +0 -0
  53. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp/mcp_search.py +0 -0
  54. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/mcp_config.json +0 -0
  55. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/ontology/__init__.py +0 -0
  56. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/ontology/certification.json +0 -0
  57. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/ontology/fixtures/records.json +0 -0
  58. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/ontology/mappings/source.yaml +0 -0
  59. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/ontology/migrations/manifest.json +0 -0
  60. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/ontology/shapes/connector.shacl.ttl +0 -0
  61. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/prompts/__init__.py +0 -0
  62. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/__init__.py +0 -0
  63. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-actions-ci-review/SKILL.md +0 -0
  64. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-actions-ci-review/WORKFLOW.md +0 -0
  65. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-agent-operations/SKILL.md +0 -0
  66. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-agent-operations/agents/openai.yaml +0 -0
  67. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-agent-operations/references/catalog.md +0 -0
  68. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-backlog-planner/SKILL.md +0 -0
  69. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-backlog-planner/WORKFLOW.md +0 -0
  70. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-backlog-planner/references/addressed-heuristics.md +0 -0
  71. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-backlog-planner/scripts/build_plan.py +0 -0
  72. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-ci-failure-sweep/SKILL.md +0 -0
  73. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-ci-failure-sweep/WORKFLOW.md +0 -0
  74. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-ci-failure-sweep/references/actions-tool-cheatsheet.md +0 -0
  75. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-ci-failure-sweep/scripts/summarize_runs.py +0 -0
  76. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-dependabot-review/SKILL.md +0 -0
  77. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-dependabot-review/WORKFLOW.md +0 -0
  78. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-issue-tracking/SKILL.md +0 -0
  79. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-issue-tracking/WORKFLOW.md +0 -0
  80. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-org-remediation-loop/SKILL.md +0 -0
  81. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-org-remediation-loop/WORKFLOW.md +0 -0
  82. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-org-remediation-loop/scripts/classify_fix_risk.py +0 -0
  83. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-pr-review-sweep/SKILL.md +0 -0
  84. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-pr-review-sweep/WORKFLOW.md +0 -0
  85. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-pr-review-sweep/references/pulls-tool-cheatsheet.md +0 -0
  86. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-pr-review-sweep/scripts/summarize_prs.py +0 -0
  87. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-project-provisioner/SKILL.md +0 -0
  88. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-project-provisioner/WORKFLOW.md +0 -0
  89. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-project-provisioner/scripts/enable_pages.py +0 -0
  90. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-pull-request-create/SKILL.md +0 -0
  91. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-pull-request-create/WORKFLOW.md +0 -0
  92. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-pull-request-review/SKILL.md +0 -0
  93. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-pull-request-review/WORKFLOW.md +0 -0
  94. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-repository-management/SKILL.md +0 -0
  95. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-repository-management/WORKFLOW.md +0 -0
  96. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-tools/SKILL.md +0 -0
  97. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-tools/WORKFLOW.md +0 -0
  98. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-tools/code-reviewer.md +0 -0
  99. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-tools/scripts/fetch_comments.py +0 -0
  100. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-tools/scripts/inspect_pr_checks.py +0 -0
  101. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-triage-resolver/SKILL.md +0 -0
  102. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-triage-resolver/WORKFLOW.md +0 -0
  103. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-triage-resolver/references/resolution-rules.md +0 -0
  104. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-triage-resolver/scripts/classify_safe.py +0 -0
  105. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent/skills/github-triage-resolver/scripts/gh_write.py +0 -0
  106. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent.egg-info/dependency_links.txt +0 -0
  107. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent.egg-info/entry_points.txt +0 -0
  108. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent.egg-info/requires.txt +0 -0
  109. {github_agent-2.4.6 → github_agent-2.4.8}/github_agent.egg-info/top_level.txt +0 -0
  110. {github_agent-2.4.6 → github_agent-2.4.8}/scripts/security_sanitizer.py +0 -0
  111. {github_agent-2.4.6 → github_agent-2.4.8}/scripts/verify_api_integration.py +0 -0
  112. {github_agent-2.4.6 → github_agent-2.4.8}/setup.cfg +0 -0
  113. {github_agent-2.4.6 → github_agent-2.4.8}/tests/conftest.py +0 -0
  114. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_action_discovery.py +0 -0
  115. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_api_client_endpoints.py +0 -0
  116. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_api_validation.py +0 -0
  117. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_auth_client_edge_cases.py +0 -0
  118. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_comment_crud.py +0 -0
  119. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_default_content_surfaces.py +0 -0
  120. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_fleet_name.py +0 -0
  121. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_github_agent_api_brute_force_coverage.py +0 -0
  122. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_github_agent_brute_force_coverage.py +0 -0
  123. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_github_gql.py +0 -0
  124. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_github_http.py +0 -0
  125. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_hardening.py +0 -0
  126. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_init_dynamics.py +0 -0
  127. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_kg_ingest.py +0 -0
  128. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_mcp_coverage.py +0 -0
  129. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_mcp_package_dispatch.py +0 -0
  130. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_model_fields.py +0 -0
  131. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_org_crud.py +0 -0
  132. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_pages.py +0 -0
  133. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_repo_secrets_characterization.py +0 -0
  134. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_skill_backlog_build_plan.py +0 -0
  135. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_skill_ci_failure_sweep_summarize_runs.py +0 -0
  136. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_skill_github_tools_fetch_comments.py +0 -0
  137. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_skill_github_tools_inspect_pr_checks.py +0 -0
  138. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_skill_org_remediation_classify_fix_risk.py +0 -0
  139. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_skill_pr_review_sweep_summarize_prs.py +0 -0
  140. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_skill_triage_resolver_classify_safe.py +0 -0
  141. {github_agent-2.4.6 → github_agent-2.4.8}/tests/test_startup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 2.4.6
3
+ Version: 2.4.8
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Project Maintainers <maintainers@users.noreply.github.com>
6
6
  License: MIT
@@ -44,7 +44,7 @@ Dynamic: license-file
44
44
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
45
45
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
46
46
 
47
- *Version: 2.4.6*
47
+ *Version: 2.4.8*
48
48
 
49
49
  > **Documentation** — Installation, deployment, and usage across the MCP, API, and
50
50
  > [official documentation](https://knuckles-team.github.io/github-agent/).
@@ -20,7 +20,7 @@
20
20
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
21
21
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
22
22
 
23
- *Version: 2.4.6*
23
+ *Version: 2.4.8*
24
24
 
25
25
  > **Documentation** — Installation, deployment, and usage across the MCP, API, and
26
26
  > [official documentation](https://knuckles-team.github.io/github-agent/).
@@ -0,0 +1 @@
1
+ __version__ = "2.4.8"
@@ -39,7 +39,7 @@ from github_agent.auth import (
39
39
  )
40
40
  from github_agent.github_response_models import PagesAlreadyEnabled, PagesNotEnabled
41
41
 
42
- __version__ = "2.4.6"
42
+ __version__ = "2.4.8"
43
43
  logger = get_logger("GithubMCPServer")
44
44
  logger.setLevel(logging.INFO)
45
45
 
@@ -13,36 +13,18 @@
13
13
  # github_branches / github_commits / github_actions / github_orgs). The shared
14
14
  # :Person / :Document classes (users, release notes) are REUSED, never redefined.
15
15
 
16
+ # Shared concepts owned by the epistemic-graph ontology and referenced here, never redeclared:
17
+ # Repository, PullRequest, Release, Branch, Commit, PipelineRun. Only the GitHub-specific subclasses and properties are declared in this pack.
18
+
16
19
  :Organization a owl:Class ;
17
20
  rdfs:label "Organization" ;
18
21
  rdfs:comment "A GitHub organization that owns repositories and members (github_orgs)." .
19
22
 
20
- :Repository a owl:Class ;
21
- rdfs:subClassOf :SoftwareProject ;
22
- rdfs:label "Repository" ;
23
- rdfs:comment "A GitHub repository / codebase (github_repos)." .
24
-
25
- :PullRequest a owl:Class ;
26
- rdfs:label "Pull Request" ;
27
- rdfs:comment "A proposed change under review, from a head to a base branch (github_pulls)." .
28
-
29
23
  :Issue a owl:Class ;
30
24
  rdfs:subClassOf :WorkItem ;
31
25
  rdfs:label "Issue" ;
32
26
  rdfs:comment "A tracked work item, bug, or discussion in a repository (github_issues)." .
33
27
 
34
- :Release a owl:Class ;
35
- rdfs:label "Release" ;
36
- rdfs:comment "A tagged, published repository release with release notes (github_releases)." .
37
-
38
- :Branch a owl:Class ;
39
- rdfs:label "Branch" ;
40
- rdfs:comment "A named git branch within a repository (github_branches)." .
41
-
42
- :Commit a owl:Class ;
43
- rdfs:label "Commit" ;
44
- rdfs:comment "A git commit recorded in a repository (github_commits)." .
45
-
46
28
  :Workflow a owl:Class ;
47
29
  rdfs:label "Workflow" ;
48
30
  rdfs:comment "A GitHub Actions CI/CD workflow definition (github_actions)." .
@@ -52,13 +34,8 @@
52
34
  rdfs:label "Workflow Run" ;
53
35
  rdfs:comment "A single execution of a GitHub Actions workflow for a ref/commit (github_actions)." .
54
36
 
55
- :PipelineRun a owl:Class ;
56
- rdfs:label "Pipeline Run" ;
57
- rdfs:comment """A single CI/CD execution for a ref/commit (github_actions workflow run).
58
- Shares its class name with the twin gitlab-api producer so GitHub Actions and GitLab
59
- CI/CD unify under one node shape in the knowledge graph.""" .
60
-
61
37
  :CheckRun a owl:Class ;
38
+ rdfs:subClassOf :PipelineRun ;
62
39
  rdfs:label "Check Run" ;
63
40
  rdfs:comment """A single job/check within a PipelineRun (github_actions workflow-run job or
64
41
  GitHub Checks-API check run). Shares its class name with the twin gitlab-api producer.""" .
@@ -140,6 +117,7 @@
140
117
  :state a owl:DatatypeProperty ;
141
118
  rdfs:label "state" ;
142
119
  rdfs:comment "Lifecycle state (open, closed, merged)." ;
120
+ rdfs:domain [ a owl:Class ; owl:unionOf ( :Issue :PullRequest ) ] ;
143
121
  rdfs:range xsd:string .
144
122
 
145
123
  :number a owl:DatatypeProperty ;
@@ -0,0 +1,24 @@
1
+ {
2
+ "connector": "github-mcp",
3
+ "sources": [
4
+ {
5
+ "source_id": "issues",
6
+ "record_type": "Issue",
7
+ "tools": [
8
+ "github_search_issues"
9
+ ],
10
+ "records_path": "data.items",
11
+ "id_field": "id",
12
+ "title_field": "title",
13
+ "text_field": "body",
14
+ "cursor_field": "updated_at",
15
+ "incremental": false,
16
+ "arguments": {
17
+ "q": "is:issue is:open involves:@me",
18
+ "per_page": 50,
19
+ "max_pages": 1
20
+ },
21
+ "description": "Open GitHub issues involving the authenticated user (first 50)."
22
+ }
23
+ ]
24
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-agent
3
- Version: 2.4.6
3
+ Version: 2.4.8
4
4
  Summary: GitHub Agent for MCP
5
5
  Author-email: Project Maintainers <maintainers@users.noreply.github.com>
6
6
  License: MIT
@@ -44,7 +44,7 @@ Dynamic: license-file
44
44
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/github-agent)
45
45
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/github-agent)
46
46
 
47
- *Version: 2.4.6*
47
+ *Version: 2.4.8*
48
48
 
49
49
  > **Documentation** — Installation, deployment, and usage across the MCP, API, and
50
50
  > [official documentation](https://knuckles-team.github.io/github-agent/).
@@ -52,6 +52,7 @@ github_agent/mcp/mcp_search.py
52
52
  github_agent/ontology/__init__.py
53
53
  github_agent/ontology/certification.json
54
54
  github_agent/ontology/github.ttl
55
+ github_agent/ontology/ingest_sources.json
55
56
  github_agent/ontology/fixtures/records.json
56
57
  github_agent/ontology/mappings/source.yaml
57
58
  github_agent/ontology/migrations/manifest.json
@@ -109,6 +110,7 @@ tests/test_api_client_endpoints.py
109
110
  tests/test_api_validation.py
110
111
  tests/test_auth_client_edge_cases.py
111
112
  tests/test_comment_crud.py
113
+ tests/test_cq_paths.py
112
114
  tests/test_default_content_surfaces.py
113
115
  tests/test_fleet_name.py
114
116
  tests/test_github_agent_api_brute_force_coverage.py
@@ -116,6 +118,7 @@ tests/test_github_agent_brute_force_coverage.py
116
118
  tests/test_github_gql.py
117
119
  tests/test_github_http.py
118
120
  tests/test_hardening.py
121
+ tests/test_ingest_sources.py
119
122
  tests/test_init_dynamics.py
120
123
  tests/test_kg_ingest.py
121
124
  tests/test_mcp_coverage.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "github-agent"
7
- version = "2.4.6"
7
+ version = "2.4.8"
8
8
  readme = "README.md"
9
9
  description = "GitHub Agent for MCP"
10
10
  requires-python = ">=3.12"
@@ -0,0 +1,50 @@
1
+ """Competency-question paths of the GitHub pack (CONN-GITHUB-AGENT-CONNECTOR-CONTENT-R004)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import re
6
+ from pathlib import Path
7
+
8
+ import pytest
9
+ import yaml
10
+
11
+ import github_agent
12
+
13
+ pytestmark = pytest.mark.spec("CONN-GITHUB-AGENT-CONNECTOR-CONTENT-R004")
14
+
15
+ PACKAGE = Path(github_agent.__file__).parent
16
+ TTL = (PACKAGE / "ontology" / "github.ttl").read_text("utf-8")
17
+ # Concepts the epistemic-graph ontology owns: referenced, never declared here.
18
+ SHARED = ("Repository", "PullRequest", "Release", "Branch", "Commit", "PipelineRun")
19
+
20
+
21
+ def _block(name: str) -> str:
22
+ match = re.search(rf"^:{name} a [^\n]*\n(?:[^\n]+\n)*", TTL, flags=re.M)
23
+ assert match, name
24
+ return match.group(0)
25
+
26
+
27
+ @pytest.mark.parametrize("name", SHARED)
28
+ def test_shared_concepts_are_not_redeclared(name: str) -> None:
29
+ assert not re.search(rf"^:{name} a owl:Class", TTL, flags=re.M), name
30
+
31
+
32
+ def test_state_is_declared_on_the_issue_type() -> None:
33
+ block = _block("state")
34
+ assert re.search(r"rdfs:domain \[ a owl:Class ; owl:unionOf \( :Issue ", block)
35
+
36
+
37
+ def test_check_run_extends_pipeline_run() -> None:
38
+ assert "rdfs:subClassOf :PipelineRun" in _block("CheckRun")
39
+
40
+
41
+ def test_no_mapping_has_a_null_ontology_class() -> None:
42
+ manifest = yaml.safe_load(
43
+ (PACKAGE.parent / "connector_manifest.yml").read_text("utf-8")
44
+ )
45
+ unmapped = [
46
+ name
47
+ for name, mapping in manifest["schema_mappings"].items()
48
+ if not mapping["ontology_class"]
49
+ ]
50
+ assert unmapped == []
@@ -0,0 +1,34 @@
1
+ """The packaged ingestible-source declaration (CONN-GITHUB-AGENT-CONNECTOR-CONTENT-R003)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+
7
+ import pytest
8
+ import yaml
9
+ from agent_connector_sdk.ingest.sources import load_ingest_sources
10
+ from agent_connector_sdk.mcp.method_tools import operation_annotations, operation_verb
11
+ from agent_connector_sdk.mcp.tool_surface import operation_prefix
12
+
13
+ import github_agent
14
+ from github_agent.api_client import Api
15
+
16
+
17
+ @pytest.mark.spec("CONN-GITHUB-AGENT-CONNECTOR-CONTENT-R003")
18
+ def test_declares_ingestible_sources() -> None:
19
+ package_root = Path(github_agent.__file__).parent
20
+ declaration = load_ingest_sources(package_root)
21
+ assert declaration is not None
22
+ assert declaration.connector == "github-mcp"
23
+ source = declaration.source("issues")
24
+ assert source is not None and source.record_type == "Issue"
25
+ prefix = operation_prefix("github-agent")
26
+ assert source.tools == (f"{prefix}_search_issues",)
27
+ # The engine admits a record only under the pack mapping of its type.
28
+ manifest = yaml.safe_load(
29
+ (package_root.parent / "connector_manifest.yml").read_text("utf-8")
30
+ )
31
+ assert source.record_type in manifest["schema_mappings"]
32
+ method = getattr(Api, "search_issues")
33
+ annotations = operation_annotations("search_issues", operation_verb(method))
34
+ assert annotations.read_only_hint is True
@@ -32,13 +32,7 @@ PARENT_CLASSES = frozenset(
32
32
  )
33
33
  # Classes for which the parent ontology has no fitting class yet. Each is a candidate for a new
34
34
  # parent class (see the orphan mapping report); a class leaves this set when it gains a parent.
35
- PENDING_NEW_PARENT: frozenset[str] = frozenset(
36
- (
37
- "http://knuckles.team/kg#Branch",
38
- "http://knuckles.team/kg#CheckRun",
39
- "http://knuckles.team/kg#Release",
40
- )
41
- )
35
+ PENDING_NEW_PARENT: frozenset[str] = frozenset()
42
36
 
43
37
  _STRING = re.compile(r'"""(?:.|\n)*?"""|"(?:[^"\\\n]|\\.)*"')
44
38
  _IRI = re.compile(r"<([^<>\s]*)>")
@@ -1 +0,0 @@
1
- __version__ = "2.4.6"
File without changes
File without changes