Skip to content

Provision the AI distribution GitHub App #72

Description

@woksin

Goal

Provision a repository-scoped machine identity for generated updates to Cratis/AI.Distribution.

Why this is manual

The one-time deploy key initialized the repository and was immediately removed. Deploy keys cannot create pull requests, tags, releases, checks, or reviewed publication operations. Creating a GitHub App or equivalent machine account requires organization-owner installation and credential custody outside the source repository.

Required setup

  • Create or select a GitHub App owned by Cratis.
  • Install it only on Cratis/AI and Cratis/AI.Distribution unless broader scope is separately approved.
  • Minimum generated-repository permissions: metadata read, contents write, pull requests write, checks/statuses write; tags/releases remain disabled until release approval.
  • Store App ID/installation ID/private key in protected organization or Cratis/AI Actions secrets with access restricted to the approved workflow/environment.
  • Keep human direct pushes disabled; updates must be generated PRs.
  • Rotate/revoke credentials and document emergency disable.

Acceptance criteria

  • A dry-run workflow creates a generated update branch and PR without personal credentials.
  • The PR contains only generated files and passes required checks.
  • A human reviewer can approve a merge commit; the bot cannot approve its own PR.
  • Credential scope, rotation, audit, and emergency-disable evidence are recorded.
  • No tag, release, npm, marketplace, or production permission is granted by this issue.

Evidence

Activity

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions