Repository navigation
Skip archived repositories using installation listing metadata - #1099
Merged
decyjphr merged 6 commits intoSep 30, 2026
Merged
Conversation
Adapt PR #1065 commits e8d49dc and 3d5c064 to the current target's bounded batching and plugin-disable pipeline. Restore the coupled unknown-state archive guard, keep observed metadata out of repository PATCH payloads, and cover labels-only paths, precedence, and unarchive/NOP ordering with real Octokit transport tests. Add isolated maintained smoke phase 25. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Integrate base commit 3652444. Preserve archived repository behavior and update the native integration fixtures for the archive-state read, including archived child-plugin coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Merge yadhav/fix-recent-issues at 68adce9. Resolve smoke-test and README conflicts by preserving both archived-repository phase 25 and team-slug phase 26. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Move archived repository, variable pagination, and team transport tests under test/integration/transport using the existing .test.js discovery convention. Update relative imports, keep focused npm commands, and document automatic integration CI coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unknown-state syncs can still write to archived repositories when the archive plugin is disabled, and schema documentation remains inconsistent.
Review effort: Balanced
Findings: 1
Open (2)
What changed in this PR
Optimizes archived-repository synchronization by using installation-list metadata while preserving explicit unarchive behavior and fallback checks.
Changes:
- Threads archive metadata through repository processing.
- Adds regression, integration, and smoke coverage.
- Documents archive handling and focused test commands.
| File | Description |
|---|---|
lib/settings.js |
Adds metadata-aware archive guards and fallbacks. |
package.json |
Adds archived transport test command. |
README.md |
Documents transport tests and smoke phase. |
smoke-test.js |
Adds archived-repository lifecycle phase. |
docs/github-settings/1. repository-settings.md |
Documents archive-state behavior. |
test/unit/lib/settings.test.js |
Updates method-call expectations. |
test/unit/lib/settings-batching.test.js |
Tests metadata propagation and batching. |
test/integration/transport/archived-repositories.test.js |
Adds request-level archive regressions. |
test/integration/transport/variables.test.js |
Updates imports after relocation. |
test/integration/transport/teams.test.js |
Updates imports after relocation. |
test/integration/triggers/repository-created.test.js |
Mocks archive-state lookup. |
test/integration/triggers/repository-edited.test.js |
Mocks archive-state lookup. |
test/integration/plugins/teams.test.js |
Supports archive-state lookup. |
test/integration/plugins/collaborators.test.js |
Tests archived collaborator skipping. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Preserve the archived-repository safety guard for callers without listing metadata while leaving archive reconciliation disabled. Cover direct and listing callers, child-only configs, explicit unarchive, and NOP behavior, and correct the previously filtered-out unit regression. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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.


Archived repositories should not consume per-repository API calls or receive child-plugin writes unless configuration explicitly requests unarchiving. This selectively adapts #1065 to the current
yadhav/fix-recent-issuesimplementation without importing unrelated source history.Approach
archivedflag separately from the{ owner, repo }reference, preventing observed state from leaking into PATCH payloads and accidentally rearchiving a repository.Source audit
Both source commits require adaptation rather than a source-branch merge; source-only ancestry contains no additional merges or unrelated commits.
e8d49dc90a9b70a9ed148f68a55214979131c4c07a064fd3d5c064f253f30d3b40cfbff5dabbaeb041317eb7a064fdBase
3652444was merged in302ef36after the initial adaptation on55b52df.Validation
On Node 22.12.0:
Authorized live smoke on
7a064fdran only setup -> phase 25 -> teardown: 32 assertions passed, zero failures, no fatal error. It verified actual listing-to-processing metadata propagation, zero fixture requests for archived skips, unknown-state fallbacks, unarchive NOP/apply, safe PATCH payloads, and convergence. Independent before/after snapshots confirmed original files, policies, properties, and foreign refs were unchanged; owned fixtures and processes were removed, the port was freed, and the private environment copy was restored.The live smoke used controlled single-test-organization enumeration and fixture-only in-memory configuration. It does not establish webhook delivery, multi-organization behavior, or combined integration with #1070. The subsequent base merge was validated locally, not with another live smoke run.