Skip to content

Investigate (and migrate) whether HIERO_LEDGER_READ token will allow a migration of activity by permission holders from config.yaml to github apiΒ #417

Description

@exploreriii

πŸ§‘β€πŸ”¬ Advanced Issue β€” the most complex work in this project: architectural, multi-module, or core-logic changes where the solution itself may need discovering.
Time: ~30+ hours Β· Prerequisites: a proven track record here (β‰₯1 completed intermediate issue; demonstrated CI/CD proficiency substitutes for workflow-focused issues).
The bar is production-ready: safe, maintainable, architecturally sound.

The task

Problem:
Reading permission holders in a given repository is gated by permissions, requires read permissions.

When we want to track who has permissions in a repo and their activity rates, such as in table:
https://hiero-hackers.github.io/analytics/#tab=Governance&widget=gonedark

We rely on approximating who is a role holder by looking at the config.yaml file from governance https://github.com/hiero-ledger/governance/blob/main/config.yaml and mapping their permissions, then tracking their activity based on these approximated permissions.

If instead we can confirm permissions directly from the github api, we can use our existing activity trackers to plug in to that data, making the solution much more accurate and also lightweight

Impact / what done looks like:
Confirm and migrate from approximating permissions from config.yaml to fetching from github directly with use of this token

Known unknowns and risks:
We do not know if the token will enable this, nor the codebase that needs to be updated

How to work on this

  1. Claim it: comment /assign β€” yes, even at this level; unassigned PRs are closed automatically.
  2. Propose your design as a comment before building. Cover the approach, the alternatives you rejected, and the system-wide impact. For large changes, say how you'll split the work into reviewable PRs. (@coderabbitai plan can sketch a starting point, but the design is yours.)

What tends to bite experienced contributors in this repo:

  • The dependency DAG in docs/architecture.md is deliberately strict (zero violations today) β€” a solution that needs a new cross-layer import needs a design conversation first, not an exception.
  • The output-contract test pins every CSV, chart, and dashboard artifact the pipelines produce. Changing the output surface means changing the contract on purpose, and downstream dashboard consumers exist.
  • Ingestion has deliberate two-layer staleness semantics (TTL cache vs. the durable incremental dataset store with reuse/refresh windows) β€” read the module docstrings before touching fetch paths; naive "fixes" here reintroduce bugs we've already removed.

πŸ€– AI: tools are welcome; verified work is required β€” see the AI policy. Fully automated bot PRs are closed.

Before opening your PR:

  • The PR includes a short design/impact note: approach, alternatives considered, affected modules, compatibility impact
  • Correctness, safety, and performance are evaluated, not assumed β€” and the evaluation is visible in the note or the tests
  • Testing is comprehensive, including deliberate output-contract updates where the output surface changes
  • I reviewed my own diff as if it were someone else's

Review expectations: advanced PRs get probing questions and may take longer than a day β€” that's the level working as intended. Stuck or want a design sounding board? Comment here β€” see getting help.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    advancedA broad, large or complex issue requiring architectural decisions and testingblockedblocked for developmentpythonTouches Python code (src/, tests/)

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions