[WIP] feat: add GitHub Projects v2 exporter for FOC GA Tracker#7
Closed
BigLep wants to merge 1 commit into
Closed
Conversation
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.
Contributor
Author
|
Closing since we have https://github.com/FilOzone/tpm-utils/tree/master/github-project-export |
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>
This was referenced May 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
foc-ga-tracker/directory with GitHub Projects v2 exportergqldependency to requirements.txtFeatures
See
foc-ga-tracker/README.mdfor detailed usage instructions.