feat(repo): add creation and approval#3
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR wires an end-to-end repo-creation request feature into Artemis, adding GitHub App-backed repo creation, Valkey-backed request tracking, HTTP handlers, routing, config, and tests.
Changes:
- Adds
/api/repo*routes behind feature wiring and implements create/list/get/approve/reject/templates handlers. - Adds repo-request domain types plus a Valkey queue store with optimistic transitions.
- Adds GitHub App JWT/client support and optional config/main wiring for the feature.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
internal/server/server.go |
Mounts feature-gated repo routes under /api. |
internal/server/server_test.go |
Tests repo routes are mounted only when dependencies are wired. |
internal/reporequest/types.go |
Adds repo-request statuses, visibility, validation, and sentinel errors. |
internal/reporequest/types_test.go |
Covers repo-request domain validation helpers. |
internal/reporequest/valkey/store.go |
Adds Valkey-backed repo-request queue implementation. |
internal/reporequest/valkey/store_test.go |
Tests queue creation, transitions, dedupe, concurrency, and ordering. |
internal/handler/handler.go |
Extends Handlers with repo feature dependencies/config. |
internal/handler/repo.go |
Implements repo request HTTP handlers and repo team authorization. |
internal/handler/repo_test.go |
Tests repo handlers, validation, authz, approval, rejection, and templates. |
internal/githubapp/jwt.go |
Adds GitHub App JWT signer. |
internal/githubapp/jwt_test.go |
Tests key parsing and JWT signing claims. |
internal/githubapp/client.go |
Adds GitHub App REST client for tokens, repo creation, and templates. |
internal/githubapp/client_test.go |
Tests app token caching, repo creation, template creation, and template filtering. |
internal/config/config.go |
Adds optional repo feature and GitHub App configuration. |
internal/config/config_repo_test.go |
Tests repo config defaults, overrides, and partial app config validation. |
cmd/artemis/main.go |
Wires optional repo store, GitHub App client, and repo org auth client into the server. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
No description provided.