Skip to content

docs: ADR 0033 — per-repo installation mode - #707

Merged
waynesun09 merged 11 commits into
mainfrom
adr-per-repo-installation
May 11, 2026
Merged

docs: ADR 0033 — per-repo installation mode#707
waynesun09 merged 11 commits into
mainfrom
adr-per-repo-installation

Conversation

@waynesun09

@waynesun09 waynesun09 commented May 6, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds ADR 0033: per-repo installation mode where fullsend runs entirely within a single repository — no .fullsend config repo, no cross-repo dispatch, no org-level secrets
  • Builds on ADR 0029 (token mint), ADR 0031 (reusable workflows), ADR 0034 (centralized routing), and ADR 0035 (layered content resolution) as foundations
  • Introduces reusable-dispatch.yml — an all-in-one routing + dispatch reusable workflow combining event routing with per-stage conditional workflow_call jobs
  • CLI: fullsend admin install <owner/repo> for per-repo, fullsend admin install <org> for per-org (unified command, implemented in PR feat: add per-repo installation mode (ADR 0033) #799)
  • Status: Accepted — implementation landed in PR feat: add per-repo installation mode (ADR 0033) #799

Changes since initial proposal

  • Updated status from Proposed to Accepted after PR feat: add per-repo installation mode (ADR 0033) #799 implementation
  • Rewrote CLI section to match fullsend admin install <owner/repo> (no separate fullsend init)
  • Added install_mode input parameter documentation for reusable workflows
  • Moved open questions to resolved questions with PR feat: add per-repo installation mode (ADR 0033) #799 references
  • Addressed Ralph's review feedback:
    • Fixed event suppression mechanism (token-based, not ownership-based)
    • Added "Git ref for config reads" paragraph (base-branch-only for security)
    • Added "Credential separation collapses" negative consequence
    • Expanded risks/mitigations with threat-priority ordering
  • Fixed dispatch mechanism references from gh workflow run to workflow_call (post-token-mint)
  • Fixed broken ADR 0034 cross-reference link

Test plan

  • Review ADR structure and content against existing ADR format conventions
  • Cross-check credential model against AgentAppConfig() in internal/forge/github/types.go
  • Validate workflow_call nesting depth claim (3 levels: shim → reusable-dispatch → reusable-stage, within GitHub's 4-level limit)
  • Verify CLI design matches PR feat: add per-repo installation mode (ADR 0033) #799 implementation
  • Fix lint: frontmatter status must match ## Status section

Proposes a per-repo installation mode where fullsend runs entirely
within a single repository, building on ADR 0030 (reusable workflows)
and ADR 0027 (central token mint). Enables users without org admin
access to adopt fullsend by adding a single ~30-line workflow file.

Signed-off-by: Wayne Sun <gsun@redhat.com>

@ralphbean ralphbean left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

This is a well-structured ADR that addresses a real adoption gap — users without org admin access currently cannot use fullsend. The per-repo approach is sound, building on reusable workflows (ADR 0030) and the token mint (ADR 0027) rather than creating a parallel system.

Strategic assessment: Good idea, fits project scope, no objections to the direction.

Requesting changes on the pull_request_target security analysis — given the project's threat priority order (external injection is highest), the per-repo model's unique risk surface (workflow file lives alongside code) deserves deeper treatment in the Risks section.

Two additional notes are deferred for future consideration (coder/fix role conflation, event payload trimming).

- `issues` + `labeled` → stage based on label name (`ready-to-code` → code, `ready-for-review` → review)
- `issue_comment` + slash commands → `/triage`, `/code`, `/review`, `/fix`
- `pull_request_target` → review (or retro on close)
- `pull_request_review` + `changes_requested` from bot → fix

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[important] Note (deferred): The ADR says coder and fix share one app ({user}-coder, role "Code + fix"), but AgentAppConfig() in internal/forge/github/types.go treats "fix" as a separate role — it falls through to the default case and gets only issues:read permissions, not the full coder permission set.

Is this an intentional proposal to consolidate fix into coder for per-repo mode, or an inaccuracy? If intentional, it's worth calling out explicitly as a deviation from the per-org model. If not, fix should be listed as a separate row in the table.

Comment thread docs/ADRs/0033-per-repo-installation-mode.md Outdated
- **Clear error messages**: Credential auto-detection reports why coder and review Apps must be separate, with a link to setup documentation.
- **Migration path**: Per-repo users who outgrow the model can migrate to per-org without changing agent behavior — the same reusable workflows power both modes.

## Open Questions

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[moderate] Note (deferred): The routing logic only needs a few fields (action type, label name, comment body, PR number). Passing the full toJSON(github.event) risks hitting the 65KB workflow_call input limit on large PRs with long descriptions or many changed files. Consider proposing selective field extraction from the start rather than deferring trimming until it becomes a problem — the fields needed for routing are well-defined and unlikely to change.

@maruiz93

maruiz93 commented May 7, 2026

Copy link
Copy Markdown
Contributor

/review

@fullsend-ai-review

fullsend-ai-review Bot commented May 7, 2026

Copy link
Copy Markdown

Review: #707

Head SHA: 89cd3a9
Timestamp: 2026-05-11T00:00:00Z
Outcome: comment-only

Summary

This PR adds ADR 0033 proposing a per-repo installation mode for fullsend. The document is thorough, well-structured, and technically sound — covering architecture, credential models, config layering, CLI support, coexistence, and security risks aligned with the project's threat priority order. One inconsistency was found: the frontmatter status and body status disagree. Cross-references to ADRs 0029 and 0035 depend on other open PRs landing first. No security, injection, or correctness concerns — this is a documentation-only change.

Findings

Medium

  • [Style/conventions] docs/ADRs/0033-per-repo-installation-mode.md:3,22 — Frontmatter YAML declares status: Proposed (line 3) but the body ## Status section says Accepted (line 22). These must be consistent per the ADR template. If the ADR has been accepted, update the frontmatter to status: Accepted. If it is still proposed, update the body to say Proposed.
    Remediation: Align both status fields to the same value.

Info

Footer

Outcome: comment-only
This review applies to SHA 89cd3a9e0db87631b6225a3db260fbc8e8ec0cb1. Any push to the PR head clears this review and requires a new evaluation.

Previous run

Review: #707

Head SHA: 3e4a50c
Timestamp: 2026-05-11T00:00:00Z
Outcome: comment-only

Summary

This PR adds ADR 0033, proposing a per-repo installation mode for fullsend. The ADR is well-structured, thoroughly covers architecture, credential models, coexistence, risks, and mitigations. It correctly identifies the key security surfaces (pull_request_target misconfiguration, insider workflow modification) and proposes appropriate mitigations (CODEOWNERS, base-branch config reads). Two internal inconsistencies should be resolved before merging: a status field contradiction and a nesting depth count discrepancy between sections.

Findings

Medium

  • [correctness] docs/ADRs/0033-per-repo-installation-mode.md:4 — Status inconsistency: the YAML frontmatter declares status: Proposed but the body section under ## Status says "Accepted". These should match. If the ADR is being proposed with this PR, both should say "Proposed". If it has been accepted, both should say "Accepted".
    Remediation: Align the frontmatter status field with the body ## Status section.

  • [correctness] docs/ADRs/0033-per-repo-installation-mode.md — Nesting depth inconsistency between sections. Section 4 states: "target-repo shim → reusable-dispatch.yml → reusable-code.yml = 2 levels of workflow_call (GitHub limit is 4)." The Resolved Questions section states: "The nesting depth is 3 levels (shim → reusable-dispatch.yml → reusable-{stage}.yml), within GitHub's 4-level limit." These describe the same chain but claim different counts (2 vs 3). In GitHub's terminology, the limit is 4 levels of reusable workflows where the calling workflow is not counted — so the correct count for shim→dispatch→stage is 2 levels of reusable workflow nesting.
    Remediation: Pick one consistent count and use it in both locations. If counting workflow_call nesting depth per GitHub's definition, 2 is correct.

Info

  • [correctness] docs/ADRs/0033-per-repo-installation-mode.md — Forward references to ADRs 0029 and 0035 which do not yet exist as files in docs/ADRs/. ADR 0029 is referenced by existing ADRs (0031, 0034) so this appears to be an in-flight ADR. ADR 0035 (layered content resolution) is also referenced but has no file yet. These links will be broken until those ADRs land.

Footer

Outcome: comment-only
This review applies to SHA 3e4a50c7e148813a5a0ff1dcde2685df588a5da9. Any push to the PR head clears this review and requires a new evaluation.

Previous run (2)

Review: #707

Head SHA: 3df07bb
Timestamp: 2026-05-11T00:00:00Z
Outcome: comment-only

Summary

This PR adds ADR 0033, a well-structured architectural decision record proposing a per-repo installation mode. The design is thorough, covers credential models, coexistence, and migration paths, and reuses existing ADR 0031/0034/0035 infrastructure appropriately. Three medium-severity findings relate to internal consistency: a status mismatch between frontmatter and body, a broken cross-reference link to ADR 0034 (wrong filename), and missing ADR files (0029, 0035) that are referenced throughout but don't exist in the repo. None are blocking.

Findings

Medium

  • [Correctness] docs/ADRs/0033-per-repo-installation-mode.md:22 — Status inconsistency: the YAML frontmatter declares status: Proposed but the body section at line 22 says Accepted. These should agree.
    Remediation: Align to one status — if the ADR is accepted, update the frontmatter to status: Accepted; if still proposed, change line 22 to Proposed.

  • [Correctness] docs/ADRs/0033-per-repo-installation-mode.md — Broken cross-reference to ADR 0034. The document links to 0034-centralized-event-routing.md in multiple places, but the actual file in the repo is 0034-centralized-shim-routing-via-dispatch.md. These links will 404.
    Remediation: Update all references from 0034-centralized-event-routing.md to 0034-centralized-shim-routing-via-dispatch.md.

Low

  • [Correctness] docs/ADRs/0033-per-repo-installation-mode.md — References to ADR 0029 (0029-central-token-mint-secretless-fullsend.md) and ADR 0035 (0035-layered-content-resolution.md) point to files that do not exist in the repo. If these ADRs are in-flight in other PRs, this is expected and will resolve on merge; if not, these are broken links.
    Remediation: Confirm ADRs 0029 and 0035 exist or are in-flight. If they won't land, remove or update the references.

Info

  • [Style/conventions] Commit history shows the ADR was renumbered from 0031 → 0033. The PR title and body test plan still reference "0031 is next available after 0030" — this is stale but only in the PR description (not the committed file), so no action needed.

Footer

Outcome: comment-only
This review applies to SHA 3df07bb95bf796787a8ea3f48dec69819bee0d9e. Any push to the PR head clears this review and requires a new evaluation.

Previous run (3)

Review: #707

Head SHA: 6455f27
Timestamp: 2026-05-10T00:00:00Z
Outcome: comment-only

Summary

This PR adds ADR 0033, proposing a per-repo installation mode for fullsend. The document is well-structured, follows the ADR template conventions, and thoroughly covers architecture, credential models, coexistence, and risks. The security considerations (pull_request_target enforcement, credential scoping, CODEOWNERS governance) are thoughtful and align with the project's threat model. Two broken cross-reference links need attention before merge to avoid dead links in the ADR corpus.

Findings

Medium

  • [correctness] docs/ADRs/0033-per-repo-installation-mode.md:26 — Broken ADR 0034 cross-reference link. The document links to 0034-centralized-event-routing.md but the actual file on the base branch is 0034-centralized-shim-routing-via-dispatch.md. This relative link will produce a 404 in any rendered view.
    Remediation: Update the link target from 0034-centralized-event-routing.md to 0034-centralized-shim-routing-via-dispatch.md.

Low

  • [correctness] docs/ADRs/0033-per-repo-installation-mode.md — References to ADR 0029 (0029-central-token-mint-secretless-fullsend.md) and ADR 0035 (0035-layered-content-resolution.md) point to files that do not exist on the base branch. If these are in-flight PRs, the links will be broken until those PRs merge. If they are not yet written, the references are forward-looking dead links.
    Remediation: Confirm ADRs 0029 and 0035 are in-flight and coordinate merge order, or add a note that these are forthcoming.

Info

  • [style] docs/ADRs/0033-per-repo-installation-mode.md — The ADR template includes a freeze comment after the Status section. This ADR omits it. Minor consistency point — not blocking since the ADR is in Proposed status.

  • [intent-alignment] PR body references "PR 792" and "ADR 0034" / "ADR 0035" as existing work. These claims were verified against the base branch: ADR 0034 exists (with a different filename), ADR 0029 and 0035 do not exist yet, and PR 792 was not checked. The document's technical claims about GitHub Actions nesting limits (2 levels, limit 4) and workflow_call behavior are accurate.

Footer

Outcome: comment-only
This review applies to SHA 6455f274d6de6b3394bbcafce6d3b5983e799334. Any push to the PR head clears this review and requires a new evaluation.

Previous run (4)

Review: #707

Head SHA: 515d279
Timestamp: 2026-05-10T00:00:00Z
Outcome: comment-only

Summary

Well-structured ADR that clearly motivates per-repo installation, documents rejected alternatives with reasoning, and reuses existing infrastructure (ADR 0031 reusable workflows, ADR 0029 token mint). The architecture section is thorough and the coexistence/migration story is well thought out. One broken cross-reference in the References section should be fixed, and two informational items are noted below.

Findings

Medium

  • [Correctness] docs/ADRs/0033-per-repo-installation-mode.md:292 — The References section links "ADR 0029: Central token mint" to 0027-central-token-mint-secretless-fullsend.md, but ADR 0027 on main is "Allowed and Disallowed Tools for Agents". The rest of the document correctly links ADR 0029 to 0029-central-token-mint-secretless-fullsend.md. The References section has the wrong file number prefix.
    Remediation: Change the link target from 0027-central-token-mint-secretless-fullsend.md to 0029-central-token-mint-secretless-fullsend.md to match the correct reference used elsewhere in the document.

Info

  • [Correctness] All internal links to ADR 0029 and ADR 0031 will be broken until those PRs merge (PR docs: ADR 0029 — central token mint for secretless .fullsend #655 and PR docs: ADR 0031 — reusable workflows for action-installed distribution #688 respectively). This is expected for a proposed ADR that builds on other proposed ADRs, but reviewers should be aware the dependency chain is: ADR 0029 + ADR 0031 → ADR 0033.

  • [Intent alignment] The PR body summary states "Builds on ADR 0030 (reusable workflows) and ADR 0027 (central token mint)" — both ADR numbers are wrong in the PR description (should be ADR 0031 and ADR 0029). The ADR document content itself uses the correct numbers. This is cosmetic but could confuse reviewers reading only the PR summary.

Footer

Outcome: comment-only
This review applies to SHA 515d279c2e1eafdd049086b2ebff092148ecb11a. Any push to the PR head clears this review and requires a new evaluation.

Previous run (5)

Review: #707

Head SHA: 6c45855
Timestamp: 2026-05-10T00:00:00Z
Outcome: request-changes

Summary

This ADR proposes a per-repo installation mode — a sound architectural concept that logically extends reusable workflows and a central token mint as foundations. However, both foundational ADRs are incorrectly referenced: ADR 0027 in this repo is "Allowed and Disallowed Tools for Agents" (not "Central token mint"), and ADR 0031 does not exist at all. The entire decision rests on two predecessor ADRs that are either misidentified or missing, which makes this ADR unresolvable as written. The document itself is well-structured, thoroughly considers alternatives, and correctly identifies security risks (pull_request_target, App identity confusion, payload size limits). Once the cross-reference issues are resolved, this should be straightforward to approve.

Findings

High

  • [Correctness] docs/ADRs/0033-per-repo-installation-mode.md:30 — ADR 0027 is referenced as "Central token mint" with filename 0027-central-token-mint-secretless-fullsend.md, but the actual ADR 0027 in this repo is 0027-allowed-and-disallowed-tools-for-agents.md ("Allowed and Disallowed Tools for Agents"). This broken reference appears in Context (lines 25, 33), Decision section 6 (line 170), and References (line 290). Every claim about "ADR 0027" providing OIDC-based credential issuance refers to a nonexistent document.
    Remediation: Either (a) renumber the referenced ADR to its correct number if the "Central token mint" ADR exists under a different number, or (b) create the token mint ADR and renumber accordingly. Update all references in this document.

  • [Correctness] docs/ADRs/0033-per-repo-installation-mode.md:31 — ADR 0031 is referenced as "Reusable workflows" with filename 0031-reusable-workflows-for-action-installed-distribution.md, but no file matching 0031* exists in docs/ADRs/. This ADR is described as a foundational building block — without it, the per-repo architecture has no defined reusable workflow layer to build on.
    Remediation: Ensure ADR 0031 is merged (or in-flight) before or alongside this PR, or correct the reference number if it exists under a different number.

Medium

  • [Correctness] docs/ADRs/0033-per-repo-installation-mode.md:289 — The References section claims ADR 0008 is "superseded by workflow_call (ADR 0027 removes the original constraint)" but since ADR 0027 is misidentified (see above), this supersession claim cannot be verified.
    Remediation: Resolve after fixing the ADR 0027 reference.

Info

  • [Style/conventions] PR test plan states "0031 is next available after 0030" but ADR 0032 already exists. The ADR number 0033 is correct (next available); the test plan rationale is simply inaccurate.
  • [Intent alignment] No linked issue. PR adds a new ADR with status "Proposed" — appropriate for design exploration.
  • [Injection defense] PR body and commit messages are clean — no injection patterns or suspicious Unicode detected.
  • [Platform security] The ADR correctly identifies pull_request_target misconfiguration risk and proposes CODEOWNERS mitigation. The credential model appropriately separates App roles for least-privilege.

Footer

Outcome: request-changes
This review applies to SHA 6c458550be87430b1ee602201905dc5977b6a8a2. Any push to the PR head clears this review and requires a new evaluation.

Previous run (6)

Review: #707

Head SHA: f3dc56a
Timestamp: 2026-05-07T00:00:00Z
Outcome: request-changes

Summary

This ADR proposes a per-repo installation mode — a well-structured and useful addition. However, the ADR contains broken cross-references to non-existent ADRs and an incorrect ADR number that must be resolved before merging. The document references "ADR 0027" as a "Central token mint" and "ADR 0030" as "Reusable workflows", but the actual ADR 0027 in the repo is "Allowed and Disallowed Tools for Agents" (an entirely different topic), and no ADR 0028+ exists beyond 0028-gitlab-support.md. The ADR number 0031 itself skips 0029 and 0030, which don't exist.

Findings

High

  • [Correctness] docs/ADRs/0031-per-repo-installation-mode.md:38 — Broken reference to 0027-central-token-mint-secretless-fullsend.md. This file does not exist in the repo. The actual ADR 0027 is 0027-allowed-and-disallowed-tools-for-agents.md, which covers a completely different topic (tool permissions, not token mints). This ADR's entire credential model (Section 6, Model B) and Context section depend on this phantom ADR, making the dependency chain unverifiable.
    Remediation: Either (a) create the referenced ADR 0027 as a separate PR first and update the existing 0027 numbering, or (b) renumber the referenced ADR to an available number (e.g., 0029) and submit it alongside or before this one, or (c) remove the dependency and make the token mint model a forward-looking open question rather than a decided dependency.

  • [Correctness] docs/ADRs/0031-per-repo-installation-mode.md:39 — Broken reference to 0030-reusable-workflows-for-action-installed-distribution.md. This file does not exist in the repo. The entire per-repo architecture depends on this ADR (reusable workflows are the foundation), yet it cannot be verified. The Context section states "Two proposed ADRs create the building blocks" — neither building block exists.
    Remediation: Same options as above — submit the referenced ADR first, or clearly mark the dependency as a proposed-but-not-yet-written ADR with explicit forward references.

  • [Correctness] docs/ADRs/0031-per-repo-installation-mode.md:1 — ADR number 0031 is inconsistent with the repo's ADR sequence. The highest existing ADR is 0028. This ADR should be numbered 0029 (the next available number), unless ADRs 0029 and 0030 are expected to land first, in which case those dependencies should be stated explicitly and the PR should be sequenced after them.
    Remediation: Renumber to 0029 if this is meant to land next, or add a PR description note explaining the numbering gap and the expected landing order of ADRs 0029 and 0030.

Medium

  • [Correctness] docs/ADRs/0031-per-repo-installation-mode.md:268 — The References section links to 0027-central-token-mint-secretless-fullsend.md and 0030-reusable-workflows-for-action-installed-distribution.md as relative Markdown links. These will produce 404s for any reader navigating the ADR directory. All five references in the References section should be verified; three of the five link targets exist (0007, 0008, 0026) and two do not (0027-central-token-mint, 0030-reusable-workflows).
    Remediation: Fix or annotate all broken links. If the referenced ADRs are forthcoming, use a consistent notation (e.g., "(forthcoming)") to signal they don't exist yet.

Info

  • [Style/conventions] docs/ADRs/0031-per-repo-installation-mode.md — The ADR template in 0000-adr-template.md uses a ## Consequences section. This ADR uses ## Consequences correctly but also adds ### Risks and ### Mitigations subsections not present in the template. This is a minor style deviation — arguably an improvement — but worth noting for consistency.

  • [Intent alignment] — No linked issue for this PR. The PR body's test plan includes "Verify no conflicts with ADR numbering (0031 is next available after 0030)" — this assertion is incorrect, as 0030 does not exist. The last ADR is 0028.

Footer

Outcome: request-changes
This review applies to SHA f3dc56aecf3794d1975149d1dd9d0b24606b51e6. Any push to the PR head clears this review and requires a new evaluation.

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the review comment for full details.

@rh-hemartin rh-hemartin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like that this mixes the reusable workflows and the mint pieces because then it makes it dependent on them and I think this is not dependent on those. Basically it is forcing us to merge those.

When these ADRs land they won't be "alternatives" here, they will be the way it works so this ADR is basically rediscussing the two that it mentions.

I think that this ADR does not have any options so far, we just need to support to install in a single repo, which today it means copying all the scaffold to a single repository and having a shim that points to itself somehow, user applications instead of org applications, repo secrets, tec.

That being said I'm all for speed, so we can go with it.

Comment thread docs/ADRs/0033-per-repo-installation-mode.md Outdated

@ifireball ifireball left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (excpet @rh-hemartin's comment about the cli command)

@ralphbean ralphbean left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

Directionally sound ADR that addresses a real adoption gap. The approach of layering per-repo on top of reusable workflows (rather than building a parallel system) is the right call.

I've added several notes below as deferred observations — mostly around security surface analysis that should be deepened before this ADR moves from Proposed to Accepted. The existing reviews from @ralphbean (security depth, role conflation, payload size) and @rh-hemartin (CLI naming, dependency coupling) are well-founded; I've thumbs-upped those inline comments rather than duplicating them.

Key themes across my notes:

  • The per-repo model introduces a fundamentally different security surface than per-org (credential separation collapse, pwn-request pattern, AGENTS.md sourcing) that deserves explicit treatment in the Risks section
  • The event suppression mechanism in Alternative 2 is technically imprecise (correct conclusion, wrong explanation)
  • Minor: title numbering convention mismatch with existing ADRs

Comment thread docs/ADRs/0033-per-repo-installation-mode.md
Comment thread docs/ADRs/0033-per-repo-installation-mode.md Outdated
Comment thread docs/ADRs/0033-per-repo-installation-mode.md
Comment thread docs/ADRs/0033-per-repo-installation-mode.md
Comment thread docs/ADRs/0033-per-repo-installation-mode.md

@ralphbean ralphbean left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving — the direction is sound and the deferred notes can be addressed as the ADR moves toward Accepted status.

Align with PR #503 changes:
- Token mint is now the default credential model (Model A), own Apps
  is opt-in (Model B)
- Remove dispatch PAT references (PATs eliminated entirely)
- Remove *_CLIENT_ID vars (mint-token uses role-based lookup)
- Update architecture diagrams for workflow_call dispatch
- Clarify org admin still needed for GitHub App installation
- Update CLI section: mint is default, --own-apps is opt-in
- Reference four composite actions (fullsend, mint-token,
  validate-enrollment, setup-gcp)

Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

github-actions Bot commented May 9, 2026

Copy link
Copy Markdown

fullsend review is working on this — view logs

@github-actions

github-actions Bot commented May 9, 2026

Copy link
Copy Markdown

Site preview

Preview: https://bf542025-site.fullsend-ai.workers.dev

Commit: b553cadad7b3b238b5974e1f451be425f4f71c6e

Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

github-actions Bot commented May 9, 2026

Copy link
Copy Markdown

fullsend review is working on this — view logs

ADR 0031 slot now used by reusable workflows (PR #688). Renumber to
0033 and update internal cross-references from ADR 0030 to 0031.

Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

Copy link
Copy Markdown

fullsend review is working on this — view logs

@waynesun09 waynesun09 changed the title docs: ADR 0031 — per-repo installation mode docs: ADR 0033 — per-repo installation mode May 10, 2026

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the review comment for full details.

@github-actions

Copy link
Copy Markdown

fullsend fix is working on this — view logs

Token mint ADR renumbered from 0027 to 0029 on PR #655.

Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

Copy link
Copy Markdown

fullsend review is working on this — view logs

waynesun09 added a commit that referenced this pull request May 11, 2026
Consolidate per-repo setup into the existing install command per
reviewer feedback (PR #707). Mode is detected from argument format:
org name for per-org, owner/repo for per-repo. Removes the standalone
init subcommand and adds --mint-url, --gcp-auth-mode, --scaffold-customized
flags to install.

Signed-off-by: Wayne Sun <gsun@redhat.com>
- Status: Proposed → Accepted
- CLI: fullsend init → fullsend admin install <owner/repo> (per Hector's feedback)
- Mode detection: document install_mode input parameter on reusable workflows
- Open Questions → Resolved Questions (dispatch mechanism, concurrency, stop-fix, CLI design)
- Update all fullsend init references throughout the document

Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

Copy link
Copy Markdown

fullsend review is working on this — view logs

- Fix event suppression wording: token-based, not ownership-based
- Add credential separation collapse as explicit negative consequence
- Specify base-branch-only config reads for .fullsend/ and AGENTS.md
- Expand Risks section with threat-priority ordering, pwn request surface,
  insider modification risk, and CODEOWNERS mitigation
- Fix broken ADR 0034 cross-reference link filename

Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

Copy link
Copy Markdown

fullsend review is working on this — view logs

Comment thread docs/ADRs/0033-per-repo-installation-mode.md Outdated
… ADR 0033

The token mint (ADR 0029) migrates per-org dispatch from workflow_dispatch
+ gh workflow run to native workflow_call. Update all diagrams and
descriptions to reflect the post-token-mint mechanism.

Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

Copy link
Copy Markdown

fullsend review is working on this — view logs

ralphbean added a commit that referenced this pull request May 11, 2026
ADRs 0029 and 0033 haven't merged yet — link to their PRs (#655, #707)
so the markdown link linter passes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

Copy link
Copy Markdown

fullsend review is working on this — view logs

@waynesun09
waynesun09 added this pull request to the merge queue May 11, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks May 11, 2026
@waynesun09
waynesun09 added this pull request to the merge queue May 11, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks May 11, 2026
The markdown link linter checks that linked files exist. ADR 0029
(token mint) and ADR 0035 (layered content) haven't landed yet,
so convert their markdown links to plain text references.

Signed-off-by: Wayne Sun <gsun@redhat.com>
@github-actions

Copy link
Copy Markdown

fullsend review is working on this — view logs

@waynesun09
waynesun09 added this pull request to the merge queue May 11, 2026
Merged via the queue into main with commit 0bcdb15 May 11, 2026
14 checks passed
@waynesun09
waynesun09 deleted the adr-per-repo-installation branch May 11, 2026 15:05
waynesun09 added a commit that referenced this pull request May 11, 2026
Consolidate per-repo setup into the existing install command per
reviewer feedback (PR #707). Mode is detected from argument format:
org name for per-org, owner/repo for per-repo. Removes the standalone
init subcommand and adds --mint-url, --gcp-auth-mode, --scaffold-customized
flags to install.

Signed-off-by: Wayne Sun <gsun@redhat.com>
waynesun09 added a commit that referenced this pull request May 11, 2026
Consolidate per-repo setup into the existing install command per
reviewer feedback (PR #707). Mode is detected from argument format:
org name for per-org, owner/repo for per-repo. Removes the standalone
init subcommand and adds --mint-url, --gcp-auth-mode, --scaffold-customized
flags to install.

Signed-off-by: Wayne Sun <gsun@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants