M api/graph/schema.resolvers.go => api/graph/schema.resolvers.go +2 -2
@@ 28,10 28,10 @@ import (
"git.sr.ht/~sircmpwn/core-go/server"
"git.sr.ht/~sircmpwn/core-go/valid"
corewebhooks "git.sr.ht/~sircmpwn/core-go/webhooks"
- "git.sr.ht/~sircmpwn/git.sr.ht/api/clones"
"git.sr.ht/~sircmpwn/git.sr.ht/api/graph/api"
"git.sr.ht/~sircmpwn/git.sr.ht/api/graph/model"
"git.sr.ht/~sircmpwn/git.sr.ht/api/loaders"
+ "git.sr.ht/~sircmpwn/git.sr.ht/api/repos"
"git.sr.ht/~sircmpwn/git.sr.ht/api/webhooks"
"github.com/99designs/gqlgen/graphql"
sq "github.com/Masterminds/squirrel"
@@ 228,7 228,7 @@ func (r *mutationResolver) CreateRepository(ctx context.Context, name string, vi
cloneURL = &repo.Path
}
- clones.Schedule(ctx, repo.ID, gitrepo, *cloneURL)
+ repos.Clone(ctx, repo.ID, gitrepo, *cloneURL)
}
webhooks.DeliverRepoEvent(ctx, model.WebhookEventRepoCreated, &repo)
R api/clones/middleware.go => api/repos/middleware.go +8 -16
@@ 1,4 1,4 @@
-package clones
+package repos
import (
"context"
@@ 12,24 12,16 @@ import (
"github.com/go-git/go-git/v5"
)
-type ClonesQueue struct {
- Queue *work.Queue
-}
-
-func NewQueue() *ClonesQueue {
- return &ClonesQueue{work.NewQueue("clones")}
-}
-
type contextKey struct {
name string
}
-var clonesCtxKey = &contextKey{"clones"}
+var ctxKey = &contextKey{"repos"}
-func Middleware(queue *ClonesQueue) func(next http.Handler) http.Handler {
+func Middleware(queue *work.Queue) func(next http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- ctx := context.WithValue(r.Context(), clonesCtxKey, queue)
+ ctx := context.WithValue(r.Context(), ctxKey, queue)
r = r.WithContext(ctx)
next.ServeHTTP(w, r)
})
@@ 37,10 29,10 @@ func Middleware(queue *ClonesQueue) func(next http.Handler) http.Handler {
}
// Schedules a clone.
-func Schedule(ctx context.Context, repoID int, repo *git.Repository, cloneURL string) {
- queue, ok := ctx.Value(clonesCtxKey).(*ClonesQueue)
+func Clone(ctx context.Context, repoID int, repo *git.Repository, cloneURL string) {
+ queue, ok := ctx.Value(ctxKey).(*work.Queue)
if !ok {
- panic("No clones worker for this context")
+ panic("No repos worker for this context")
}
task := work.NewTask(func(ctx context.Context) error {
defer func() {
@@ 74,6 66,6 @@ func Schedule(ctx context.Context, repoID int, repo *git.Repository, cloneURL st
}
return nil
})
- queue.Queue.Enqueue(task)
+ queue.Enqueue(task)
log.Printf("Enqueued clone of %s", cloneURL)
}
M api/server.go => api/server.go +5 -4
@@ 5,13 5,14 @@ import (
"git.sr.ht/~sircmpwn/core-go/config"
"git.sr.ht/~sircmpwn/core-go/server"
+ work "git.sr.ht/~sircmpwn/dowork"
"github.com/99designs/gqlgen/graphql"
- "git.sr.ht/~sircmpwn/git.sr.ht/api/clones"
"git.sr.ht/~sircmpwn/git.sr.ht/api/graph"
"git.sr.ht/~sircmpwn/git.sr.ht/api/graph/api"
"git.sr.ht/~sircmpwn/git.sr.ht/api/graph/model"
"git.sr.ht/~sircmpwn/git.sr.ht/api/loaders"
+ "git.sr.ht/~sircmpwn/git.sr.ht/api/repos"
"git.sr.ht/~sircmpwn/git.sr.ht/api/webhooks"
)
@@ 31,7 32,7 @@ func main() {
scopes[i] = s.String()
}
- clonesQueue := clones.NewQueue()
+ reposQueue := work.NewQueue("repos")
webhookQueue := webhooks.NewQueue(schema)
legacyWebhooks := webhooks.NewLegacyQueue()
@@ 39,11 40,11 @@ func main() {
WithDefaultMiddleware().
WithMiddleware(
loaders.Middleware,
- clones.Middleware(clonesQueue),
+ repos.Middleware(reposQueue),
webhooks.Middleware(webhookQueue),
webhooks.LegacyMiddleware(legacyWebhooks),
).
WithSchema(schema, scopes).
- WithQueues(clonesQueue.Queue, webhookQueue.Queue, legacyWebhooks.Queue).
+ WithQueues(reposQueue, webhookQueue.Queue, legacyWebhooks.Queue).
Run()
}