Skip to content

[WIP] feat: add GitHub Projects v2 exporter for FOC GA Tracker#7

Closed
BigLep wants to merge 1 commit into
masterfrom
biglep/github-project-exporter
Closed

[WIP] feat: add GitHub Projects v2 exporter for FOC GA Tracker#7
BigLep wants to merge 1 commit into
masterfrom
biglep/github-project-exporter

Conversation

@BigLep
Copy link
Copy Markdown
Contributor

@BigLep BigLep commented Jan 23, 2026

I stopped pursuing this in January because the GraphQL query doesn't apply the same filter as the view or the same columns. This needs to be set in code. And while things are in flux, I didn't want to be modifying it in the GitHub UI and in this script. If any of us get annoyed by this manual step in the future, we can pick this up again.


Adds a new tool to export GitHub Projects v2 data with support for CSV/TSV/JSON formats.

Changes

  • Added foc-ga-tracker/ directory with GitHub Projects v2 exporter
  • Updated README.md with documentation for the new tool
  • Added gql dependency to requirements.txt

Features

  • Export project items to CSV/TSV/JSON formats
  • Preserve all custom fields and metadata
  • Compatible with spreadsheet applications
  • Full GraphQL API integration
  • Designed specifically for the FilOzone FOC GA Tracker project

See foc-ga-tracker/README.md for detailed usage instructions.

Add new tool to export GitHub Projects v2 data with support for CSV/TSV/JSON formats.
Includes full GraphQL API integration and preserves all custom fields and metadata.
Designed specifically for the FilOzone FOC GA Tracker project.
@BigLep BigLep changed the title feat: add GitHub Projects v2 exporter for FOC GA Tracker [WIP] feat: add GitHub Projects v2 exporter for FOC GA Tracker Jan 23, 2026
@BigLep BigLep added this to FOC Mar 27, 2026
@github-project-automation github-project-automation Bot moved this to 📌 Triage in FOC Mar 27, 2026
@BigLep BigLep moved this from 📌 Triage to 🐱 Todo in FOC Apr 1, 2026
@BigLep BigLep self-assigned this Apr 24, 2026
@BigLep
Copy link
Copy Markdown
Contributor Author

BigLep commented Apr 27, 2026

@BigLep BigLep closed this Apr 27, 2026
@github-project-automation github-project-automation Bot moved this from 🐱 Todo to 🎉 Done in FOC Apr 27, 2026
BigLep added a commit that referenced this pull request May 4, 2026
- Add general behavior rules #7-#9: flag unfamiliar Cycle Themes,
  reconcile bulk operation counts, prefer list_board_items over
  individual get_board_item calls (with note on relationship field
  string resolution)
- R-FC-003: broaden from Todo+ to all open issues, exclude
  zOrganizing Items, add parent issue milestone inheritance
- R-FC-004: add tpm-utils and foc-devnet repo defaults
- R-FC-006: simplify (remove milestone prerequisite for cycle)
- R-FC-009: new rule for active milestone cycle enforcement

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
BigLep added a commit that referenced this pull request May 4, 2026
* feat: add FOC board rules for automated board maintenance

Rules for keeping the FOC project board consistent, intended to be
applied by LLMs via the FilOzzy MCP server or by humans during triage.

- General behavior: 9 rules covering reporting, query strategy, batch
  PR metadata, bulk operations, external repos, unfamiliar theme
  flagging, and count reconciliation
- PR hygiene (R-PR-001–009): assignment, dependabot handling, triage
  routing, draft detection, reviewer requirements, merged/closed status
- Field completeness (R-FC-001–009): assignees, cycle theme defaults
  by repo, cycle assignment, milestone scoping (issues only),
  active milestone cycle enforcement
- Status lifecycle: status transition rules

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: expand board rules with query efficiency and milestone guidance

- Add general behavior rules #7-#9: flag unfamiliar Cycle Themes,
  reconcile bulk operation counts, prefer list_board_items over
  individual get_board_item calls (with note on relationship field
  string resolution)
- R-FC-003: broaden from Todo+ to all open issues, exclude
  zOrganizing Items, add parent issue milestone inheritance
- R-FC-004: add tpm-utils and foc-devnet repo defaults
- R-FC-006: simplify (remove milestone prerequisite for cycle)
- R-FC-009: new rule for active milestone cycle enforcement

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: refine board rules and add sweep playbook

- Add sweep-playbook.md with staged workflow (PRs → Triage issues → field completeness)
- R-PR-005: Broaden draft PR rule to cover all non-Done/non-Todo statuses
- R-PR-007: Check both reviewRequests and reviews for human engagement
- R-SL-001: Require write access verification before acting on approvals
- R-SL-004: Add rule for moving Triage issues to Todo when fields are set
- R-FC-006/009: Scope cycle rules to in-flight items only (not Todo/Triage)
- Add permissions checking guidance (rule 10) and future-ideas.md
- Renumber R-SL-004→005, update README with sweep playbook link

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: expand board rules with self-improvement, assignee inference, and PR status guard

Add rule 1 (self-improving system), rule 12 (batch GraphQL metadata),
R-FC-001 assignee investigation with zOrganizing exclusion, R-FC-008
recently-done reporting, R-SL-006 (flag PRs in "Issue awaiting PR
merge"), Docs heuristic for Cycle Theme, and consolidate sweep playbook
Stage 4 into a single query.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: refine board rules from Stage 1 and Stage 2 sweep feedback

Rules added or expanded based on sweep findings:
- R-PR-006: now covers In Progress PRs, checks review/commit timeline
  before moving (not just Triage → Awaiting Review)
- R-SL-001: expanded to In Progress PRs, added superseding logic for
  changes_requested, added flagging context guidance
- R-SL-006: flag PRs in "Issue awaiting PR merge" (data entry error)
- R-SL-007: PRs with write-access changes_requested move back to
  In Progress
- R-SL-008: issues with linked PRs move to "Issue awaiting PR merge"
- R-FC-006: dependabot/release Todo PRs get current cycle
- General rule 13: use REST API for mutations, not gh pr edit
- General rule 6: simplified to per-repo REST only, removed GraphQL
- Sweep playbook updated for all new rules in Stages 1 and 2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: refine board rules from Stage 3-5 sweep feedback

- Add FilOzone/filecoin-services to R-FC-004 repo defaults (flag for human review)
- Add "active items" terminology to status-lifecycle
- Add R-SL-009: stale active items (2+ weeks, two-pass board/GitHub check)
- Expand Stage 4 to cover linked PR detection, staleness, and cycle gaps
- Update R-PR-001: merged release PRs assigned to merger, not bot author
- Update Stage 5 to reflect release PR assignee rule

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add sweep agent prompt and refine rules from second sweep

- Add sweep-agent-prompt.md for running board sweeps in fresh sessions
- Formalize terminology: Item, Blessed orgs, external items
- Skip repo-level mutations on external items instead of try-once
- Exclude external items from milestone flagging (R-FC-003)
- Add R-PR-002 priority over R-FC-004 for dependabot PRs
- Add note that R-FC-004 repo defaults don't apply to dependabot
- Fix query syntax in README rule 5, add no:field guidance

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add cross-file relative hyperlinks between board rule files

Makes cross-references navigable for both humans and LLMs. Adds
convention as rule 15 in README and backfills links across all rule
files. Also adds sweep-agent-prompt.md to the Rule files list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add R-FC-010 (Dev Days Estimate gaps) and sweep Stage 6

Add rule requiring issues in active milestones to have a Dev Days
Estimate so effort remaining calculations are accurate. Add Stage 6
to sweep playbook as a report-only stage. Also clarify that sweep
playbook is exempt from cross-file hyperlinking convention, and add
a future idea for exposing updated_at/creator in list_board_items.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: document known API gaps in github-projects-client README

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address Copilot review feedback on board rules

- Fix "all open PRs/issues" wording to "non-Done" where queries don't
  constrain is:open (sweep-playbook.md, README.md)
- Add `maintain` permission level alongside write/admin for reviewer
  permission checks (status-lifecycle.md, README.md, pr-hygiene.md,
  sweep-playbook.md)
- Update sweep-agent-prompt.md to reference R-FC-010

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: implement two-phase PR metadata fetching in board rules

The first real sweep revealed that fetching full `reviews` bodies in
per-repo `gh pr list` calls consumed thousands of context lines (mostly
for PRs not on the board), causing scanning errors and missed items.

Phase 1 now fetches only lightweight fields (author, isDraft,
reviewDecision, reviewRequests). Phase 2 makes targeted `gh pr view`
calls only for PRs needing deep analysis (R-PR-006 status determination,
R-SL-001 approval verification, R-SL-007 changes-requested). Also adds
targeted `no:field` board queries for field-gap checks to the playbook,
and strengthens the MCP enhancement case in future-ideas.md with real
sweep failure data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

1 participant