asf-tooling commented on issue #498:
URL:
https://github.com/apache/tooling-trusted-releases/issues/498#issuecomment-4410195630
<!-- gofannon-issue-triage-bot v2 -->
**Automated triage** — analyzed at `main@2da7807a`
**Type:** `discussion` • **Classification:** `no_action` •
**Confidence:** `high` • ⚠️ **Stale — consider closing**
**Application domain(s):** `project_committee_management`,
`release_lifecycle`, `announcement_publishing`
### Summary
This issue requests integrating external ASF infrastructure (projects VM,
CHI, reporter) to use ATR as the source of truth for project and release data.
@dave2wave identified this as a duplicate of #469 on 2026-02-16. The work
described is primarily about external systems consuming ATR data rather than
changes within this repository itself, and the duplicate status means this
issue should be closed in favor of #469.
### Where this lives in the code today
#### `atr/datasources/apache.py` — `update_metadata` (lines 298-307)
_currently does this_
Currently ATR pulls project data FROM external sources; the issue asks for
the reverse direction where external systems pull FROM ATR.
```python
async def update_metadata() -> tuple[int, int]:
"""Update metadata from remote data sources."""
ldap_projects = await get_ldap_projects_data()
projects = await get_projects_data()
podlings_data = await get_current_podlings_data()
committees = await get_active_committee_data()
ldap_projects_by_name: Mapping[str, LDAPProject] = {p.name: p for p in
ldap_projects.projects}
committees_by_name: Mapping[str, Committee] = {c.name: c for c in
committees.committees}
```
#### `atr/get/release.py` — `releases` (lines 33-45)
_currently does this_
Existing public release listing endpoint that could serve as the basis for
the API that external systems would consume, though the issue's scope is
primarily on those external systems.
```python
@get.typed
async def releases(_session: web.Public, _releases: Literal["releases"]) ->
str:
"""
URL: /releases
View all releases.
"""
# Releases are public, so we don't need to filter by user
async with db.session() as data:
releases = await data.release(
phase=sql.ReleasePhase.RELEASE,
_committee=True,
_project=True,
).all()
```
#### `atr/get/projects.py` — `projects` (lines 47-54)
_currently does this_
Existing public project listing page; external systems would need a JSON API
equivalent rather than this HTML-rendering endpoint.
```python
@get.typed
async def projects(_session: web.Public, _projects: Literal["projects"]) ->
str:
"""
URL: /projects
Main project directory page.
"""
async with db.session() as data:
projects = await
data.project(_committee=True).order_by(sql.Project.name).all()
```
### Proposed approach
This issue has been identified as a duplicate of #469 by @dave2wave and
should be closed. The work described (making projects VM, CHI, and reporter
consume ATR data) is primarily about changes to external ASF infrastructure
systems, not changes within this repository. Any ATR-side work needed (exposing
JSON API endpoints for project and release data) would be tracked under #469.
No code changes are proposed here since the issue is a confirmed duplicate.
### Open questions
- What is the status of issue #469 which this duplicates?
- Are there already JSON API endpoints in atr/api/ that expose project and
release data for external consumers, or does that need to be built?
### Staleness assessment
_opened 119 days ago; last human comment 81 days ago._
The issue was marked as a duplicate of #469 by @dave2wave 81 days ago with
no subsequent activity. Since it's been explicitly identified as a duplicate by
a contributor, it should be closed in favor of the original issue.
**Recommendation: consider closing this issue.** If the maintainer agrees,
the agent's assessment above provides the rationale to include in a closing
comment.
_The agent reviewed this issue and is not proposing patches in this run.
Review the existing-code citations and open questions above before deciding
next steps._
### Files examined
- `atr/datasources/apache.py`
- `atr/get/projects.py`
- `atr/post/projects.py`
- `atr/storage/writers/project.py`
- `atr/get/release.py`
- `atr/shared/projects.py`
- `atr/storage/readers/releases.py`
- `atr/storage/writers/release.py`
---
*Draft from a triage agent. A human reviewer should validate before merging
any change. The agent did not run tests or verify diffs apply.*
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]