~bigbes/sourcehut-dolt

2dfab0430aafd5c239d92df9feba482e0e770b6a — Eugene Blikh 30 days ago d6f19a1 master
rename module to sourcecraft.dev/bigbes/sr-ht-dolt; depend on sourcecraft sr-ht-core
M README.md => README.md +2 -2
@@ 6,7 6,7 @@ git.sr.ht hosts git repos: `dolt clone`/`push`/`pull` over HTTPS plus an
integrated web UI that shares the SourceHut nav, unified login, and Bootstrap
theme.

Pure Go, one module (`go.bigb.es/sourcehut-dolt`), no upstream SourceHut
Pure Go, one module (`sourcecraft.dev/bigbes/sr-ht-dolt`), no upstream SourceHut
modification — integration is config-driven: a `[dolt.sr.ht]` section in the
shared instance `config.ini` puts the service into every other service's nav.



@@ 59,7 59,7 @@ remotesrv assembly plus CredentialsService, the read-only `browse/` UI, the

## Pinned dependencies (and why)

- **`git.sr.ht/~sircmpwn/core-go`, replaced by the instance fork
- **`sourcecraft.dev/bigbes/sr-ht-core`, replaced by the instance fork
  `git.srht.bigb.es/~bigbes/core-go`** (pinned via a `replace` directive to the
  fork's `master`, currently `c2c2f38` = upstream + instance patches). The fork
  is what production actually runs; token validation, config, and crypto must

M authn/authn_test.go => authn/authn_test.go +3 -3
@@ 9,9 9,9 @@ import (
	"testing"
	"time"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"git.sr.ht/~sircmpwn/core-go/config"
	"git.sr.ht/~sircmpwn/core-go/crypto"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/config"
	"sourcecraft.dev/bigbes/sr-ht-core/crypto"
	"github.com/dolthub/dolt/go/libraries/doltcore/creds"
	"github.com/fernet/fernet-go"
	"github.com/vaughan0/go-ini"

M authn/backend.go => authn/backend.go +1 -1
@@ 5,7 5,7 @@ import (
	"errors"
	"strings"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
)

// ErrInvalidToken is the sentinel wrapped by every *permanent* credential

M authn/cookie.go => authn/cookie.go +2 -2
@@ 5,8 5,8 @@ import (
	"log"
	"net/http"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"git.sr.ht/~sircmpwn/core-go/crypto"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/crypto"
)

// CookieName is the unified-login cookie shared across every SourceHut service.

M authn/cookie_test.go => authn/cookie_test.go +1 -1
@@ 5,7 5,7 @@ import (
	"net/http/httptest"
	"testing"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
)

// captureHandler records the caller present on the request context when reached.

M authn/ctx.go => authn/ctx.go +2 -2
@@ 22,9 22,9 @@ package authn
import (
	"context"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

// AuthMethodDoltKey labels an AuthContext resolved from a dolt Ed25519 keypair

M authn/ctx_test.go => authn/ctx_test.go +2 -2
@@ 4,9 4,9 @@ import (
	"context"
	"testing"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

func TestCallerFromContext_Anonymous(t *testing.T) {

M authn/grpc.go => authn/grpc.go +1 -1
@@ 6,7 6,7 @@ import (
	"fmt"
	"strings"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
)

// ResolveGRPCAuth resolves the caller from a remotesapi gRPC "authorization"

M authn/grpc_test.go => authn/grpc_test.go +1 -1
@@ 6,7 6,7 @@ import (
	"testing"
	"time"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"github.com/dolthub/dolt/go/libraries/doltcore/creds"
)


M authn/jwt.go => authn/jwt.go +1 -1
@@ 8,7 8,7 @@ import (
	"log"
	"time"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"github.com/dolthub/dolt/go/libraries/doltcore/creds"
	jose "gopkg.in/go-jose/go-jose.v2"
	"gopkg.in/go-jose/go-jose.v2/jwt"

M authn/jwt_test.go => authn/jwt_test.go +1 -1
@@ 7,7 7,7 @@ import (
	"testing"
	"time"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"github.com/dolthub/dolt/go/libraries/doltcore/creds"
)


M authn/token.go => authn/token.go +2 -2
@@ 7,9 7,9 @@ import (
	"sync"
	"time"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

// RepoScope is the OAuth grant scope a meta.sr.ht personal access token must

M authn/token_test.go => authn/token_test.go +2 -2
@@ 7,9 7,9 @@ import (
	"testing"
	"time"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

func TestResolveBasic_ValidToken(t *testing.T) {

M cmd/doltsrht-migrate/main.go => cmd/doltsrht-migrate/main.go +1 -1
@@ 27,7 27,7 @@ import (
	_ "github.com/lib/pq" // registers the "postgres" database/sql driver
	"github.com/vaughan0/go-ini"

	"git.sr.ht/~sircmpwn/core-go/config"
	"sourcecraft.dev/bigbes/sr-ht-core/config"
)

// serviceName is the SourceHut service identifier and config section name.

M cmd/doltsrht/main.go => cmd/doltsrht/main.go +8 -8
@@ 31,14 31,14 @@ import (
	"github.com/sirupsen/logrus"
	"github.com/vaughan0/go-ini"

	"git.sr.ht/~sircmpwn/core-go/config"
	"git.sr.ht/~sircmpwn/core-go/database"
	"git.sr.ht/~sircmpwn/core-go/server"

	"go.bigb.es/sourcehut-dolt/authn"
	"go.bigb.es/sourcehut-dolt/remoteapi"
	"go.bigb.es/sourcehut-dolt/storage"
	"go.bigb.es/sourcehut-dolt/web"
	"sourcecraft.dev/bigbes/sr-ht-core/config"
	"sourcecraft.dev/bigbes/sr-ht-core/database"
	"sourcecraft.dev/bigbes/sr-ht-core/server"

	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/remoteapi"
	"sourcecraft.dev/bigbes/sr-ht-dolt/storage"
	"sourcecraft.dev/bigbes/sr-ht-dolt/web"
)

// serviceName is the SourceHut service identifier and config section name.

M db/access.go => db/access.go +1 -1
@@ 7,7 7,7 @@ import (
	"fmt"
	"time"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

// ACLEntry is one row of the access table, joined with the grantee's username

M db/access_test.go => db/access_test.go +1 -1
@@ 5,7 5,7 @@ import (
	"errors"
	"testing"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

func TestEffectiveAccessAndACL(t *testing.T) {

M db/db_test.go => db/db_test.go +1 -1
@@ 13,7 13,7 @@ import (

	_ "github.com/lib/pq"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

// testEnv names the DSN env var that gates the Postgres-backed tests. When

M db/keys.go => db/keys.go +1 -1
@@ 9,7 9,7 @@ import (

	"github.com/lib/pq"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

// DoltKey is a registered Ed25519 credential (dolt creds / dolt login). PubKey

M db/keys_test.go => db/keys_test.go +1 -1
@@ 6,7 6,7 @@ import (
	"errors"
	"testing"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

func TestDoltKeyLifecycle(t *testing.T) {

M db/repos.go => db/repos.go +1 -1
@@ 9,7 9,7 @@ import (

	"github.com/lib/pq"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

// repoSelect is the common projection used by every repository read. It joins

M db/repos_test.go => db/repos_test.go +1 -1
@@ 5,7 5,7 @@ import (
	"errors"
	"testing"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

func TestCreateAndGetRepo(t *testing.T) {

M db/store.go => db/store.go +1 -1
@@ 26,7 26,7 @@ import (
	"database/sql"
	"errors"

	"git.sr.ht/~sircmpwn/core-go/database"
	"sourcecraft.dev/bigbes/sr-ht-core/database"
)

// Querier is the common subset of *sql.DB, *sql.Tx and *sql.Conn used by this

M docs/DESIGN.md => docs/DESIGN.md +1 -1
@@ 22,7 22,7 @@ at `/Users/blikh/data/home/sourcehut` (core-go/, core.sr.ht/, git.sr.ht/, sr.ht-

## Architecture summary

One Go module **`go.bigb.es/sourcehut-dolt`**, two binaries:
One Go module **`sourcecraft.dev/bigbes/sr-ht-dolt`**, two binaries:
- **`doltsrht`** — one process, three listeners:
  - web UI (chi) on `-b localhost:5307`
  - remotesapi (gRPC `ChunkStoreService` + HTTP chunk data plane, h2c-multiplexed

M go.mod => go.mod +2 -4
@@ 1,10 1,9 @@
module go.bigb.es/sourcehut-dolt
module sourcecraft.dev/bigbes/sr-ht-dolt

go 1.26.4

require (
	git.sr.ht/~bitfehler/brant v0.5.1
	git.sr.ht/~sircmpwn/core-go v0.0.0-20260520082310-fdb3662452dc
	github.com/alexflint/go-arg v1.6.0
	github.com/dolthub/dolt/go v0.40.5-0.20260626152440-45335d44ad79
	github.com/fernet/fernet-go v0.0.0-20211208181803-9f70042a33ee


@@ 14,6 13,7 @@ require (
	github.com/vaughan0/go-ini v0.0.0-20130923145212-a98ad7ee00ec
	google.golang.org/grpc v1.79.3
	gopkg.in/go-jose/go-jose.v2 v2.6.3
	sourcecraft.dev/bigbes/sr-ht-core v0.0.0-20260718185800-dd418a200152
)

require (


@@ 163,5 163,3 @@ require (
	google.golang.org/protobuf v1.36.11 // indirect
	gopkg.in/src-d/go-errors.v1 v1.0.0 // indirect
)

replace git.sr.ht/~sircmpwn/core-go => git.srht.bigb.es/~bigbes/core-go v0.0.0-20260718172441-c2c2f3848fa9

M go.sum => go.sum +2 -4
@@ 25,8 25,6 @@ git.sr.ht/~bitfehler/brant v0.5.1 h1:emUbT5r1P0p2mgC/52NMAzGa2zw2To/Bim5ySeyGrks
git.sr.ht/~bitfehler/brant v0.5.1/go.mod h1:XD6RmtKTOT/RL+2iQ+KBcPhLYAjeJWdLj3yfM5+7k/g=
git.sr.ht/~sbinet/gg v0.3.1 h1:LNhjNn8DerC8f9DHLz6lS0YYul/b602DUxDgGkd/Aik=
git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc=
git.sr.ht/~sircmpwn/core-go v0.0.0-20260520082310-fdb3662452dc h1:txQeGOaDKWVsAbnMd8CziM9GxbFn+6ztolA+sNE22T4=
git.sr.ht/~sircmpwn/core-go v0.0.0-20260520082310-fdb3662452dc/go.mod h1:JmathMemB+hBk1IgrMn6RuBGusd+fTg1s/X6rNVKXXU=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c h1:v2opuaN0C5ZpuCifRNR9ZQ8V9IG+Ja80otK1MFj5RnI=
git.sr.ht/~sircmpwn/dowork v0.0.0-20241216125407-2b00aa42322c/go.mod h1:8neHEO3503w/rNtttnR0JFpQgM/GFhaafVwvkPsFIDw=
git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=


@@ 34,8 32,6 @@ git.sr.ht/~sircmpwn/getopt v1.0.0 h1:/pRHjO6/OCbBF4puqD98n6xtPEgE//oq5U8NXjP7ROc
git.sr.ht/~sircmpwn/getopt v1.0.0/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw=
git.sr.ht/~sircmpwn/go-bare v0.0.0-20210406120253-ab86bc2846d9 h1:Ahny8Ud1LjVMMAlt8utUFKhhxJtwBAualvsbc/Sk7cE=
git.sr.ht/~sircmpwn/go-bare v0.0.0-20210406120253-ab86bc2846d9/go.mod h1:BVJwbDfVjCjoFiKrhkei6NdGcZYpkDkdyCdg1ukytRA=
git.srht.bigb.es/~bigbes/core-go v0.0.0-20260718172441-c2c2f3848fa9 h1:S/CncMS83NIBz+V5OlZEHlnrl1Yd5I4C7hDQ7lzQsTM=
git.srht.bigb.es/~bigbes/core-go v0.0.0-20260718172441-c2c2f3848fa9/go.mod h1:JmathMemB+hBk1IgrMn6RuBGusd+fTg1s/X6rNVKXXU=
github.com/99designs/gqlgen v0.17.36 h1:u/o/rv2SZ9s5280dyUOOrkpIIkr/7kITMXYD3rkJ9go=
github.com/99designs/gqlgen v0.17.36/go.mod h1:6RdyY8puhCoWAQVr2qzF2OMVfudQzc8ACxzpzluoQm4=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0 h1:fou+2+WFTib47nS+nz/ozhEBnvU96bKHy6LjRsY4E28=


@@ 669,3 665,5 @@ modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw
modernc.org/sqlite v1.38.2 h1:Aclu7+tgjgcQVShZqim41Bbw9Cho0y/7WzYptXqkEek=
modernc.org/sqlite v1.38.2/go.mod h1:cPTJYSlgg3Sfg046yBShXENNtPrWrDX8bsbAQBzgQ5E=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
sourcecraft.dev/bigbes/sr-ht-core v0.0.0-20260718185800-dd418a200152 h1:9kQC+tDO2CO8avlKadb9Z0if4a6vJuEK80+4zcb6/fU=
sourcecraft.dev/bigbes/sr-ht-core v0.0.0-20260718185800-dd418a200152/go.mod h1:Mu1Vx39ws/OTKWGoVERXvkdRSPLBdhuFTYv0ftVV31c=

M remoteapi/credsvc.go => remoteapi/credsvc.go +3 -3
@@ 8,8 8,8 @@ import (
	"net"
	"strings"

	"git.sr.ht/~sircmpwn/core-go/config"
	"git.sr.ht/~sircmpwn/core-go/database"
	"sourcecraft.dev/bigbes/sr-ht-core/config"
	"sourcecraft.dev/bigbes/sr-ht-core/database"
	remotesapi "github.com/dolthub/dolt/go/gen/proto/dolt/services/remotesapi/v1alpha1"
	"github.com/sirupsen/logrus"
	"github.com/vaughan0/go-ini"


@@ 18,7 18,7 @@ import (
	"google.golang.org/grpc/metadata"
	"google.golang.org/grpc/status"

	"go.bigb.es/sourcehut-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
)

// credService implements remotesapi.CredentialsServiceServer.WhoAmI. `dolt

M remoteapi/integration_test.go => remoteapi/integration_test.go +6 -6
@@ 37,8 37,8 @@ import (
	"testing"
	"time"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"git.sr.ht/~sircmpwn/core-go/crypto"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/crypto"
	remotesapi "github.com/dolthub/dolt/go/gen/proto/dolt/services/remotesapi/v1alpha1"
	"github.com/dolthub/dolt/go/libraries/doltcore/creds"
	"github.com/fernet/fernet-go"


@@ 51,10 51,10 @@ import (
	"google.golang.org/grpc/metadata"
	"google.golang.org/grpc/status"

	"go.bigb.es/sourcehut-dolt/authn"
	"go.bigb.es/sourcehut-dolt/core"
	"go.bigb.es/sourcehut-dolt/db"
	"go.bigb.es/sourcehut-dolt/storage"
	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/storage"
)

const doltBin = "/opt/homebrew/bin/dolt"

M remoteapi/interceptors.go => remoteapi/interceptors.go +6 -6
@@ 6,9 6,9 @@ import (
	"errors"
	"fmt"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"git.sr.ht/~sircmpwn/core-go/config"
	"git.sr.ht/~sircmpwn/core-go/database"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/config"
	"sourcecraft.dev/bigbes/sr-ht-core/database"
	remotesapi "github.com/dolthub/dolt/go/gen/proto/dolt/services/remotesapi/v1alpha1"
	"github.com/sirupsen/logrus"
	"github.com/vaughan0/go-ini"


@@ 17,9 17,9 @@ import (
	"google.golang.org/grpc/metadata"
	"google.golang.org/grpc/status"

	"go.bigb.es/sourcehut-dolt/authn"
	"go.bigb.es/sourcehut-dolt/core"
	"go.bigb.es/sourcehut-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
)

// Method-classification sets, copied verbatim from upstream remotesrv's

M remoteapi/interceptors_test.go => remoteapi/interceptors_test.go +5 -5
@@ 4,8 4,8 @@ import (
	"context"
	"testing"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"git.sr.ht/~sircmpwn/core-go/config"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/config"
	remotesapi "github.com/dolthub/dolt/go/gen/proto/dolt/services/remotesapi/v1alpha1"
	"github.com/sirupsen/logrus"
	"github.com/vaughan0/go-ini"


@@ 13,9 13,9 @@ import (
	"google.golang.org/grpc/codes"
	"google.golang.org/grpc/status"

	"go.bigb.es/sourcehut-dolt/authn"
	"go.bigb.es/sourcehut-dolt/core"
	"go.bigb.es/sourcehut-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
)

const (

M remoteapi/keystore.go => remoteapi/keystore.go +2 -2
@@ 16,8 16,8 @@ import (
	"context"
	"database/sql"

	"go.bigb.es/sourcehut-dolt/authn"
	"go.bigb.es/sourcehut-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
)

// keyStore adapts the SQL persistence layer (db.Store over the shared *sql.DB

M remoteapi/server.go => remoteapi/server.go +2 -2
@@ 12,8 12,8 @@ import (
	"github.com/sirupsen/logrus"
	"github.com/vaughan0/go-ini"

	"go.bigb.es/sourcehut-dolt/db"
	"go.bigb.es/sourcehut-dolt/storage"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/storage"
)

// serviceName is the SourceHut service identifier for dolt.sr.ht. It selects

M storage/dbcache.go => storage/dbcache.go +1 -1
@@ 8,7 8,7 @@ import (
	"github.com/dolthub/dolt/go/libraries/doltcore/remotesrv"
	"github.com/dolthub/dolt/go/store/nbs"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

// defaultMemTableSize mirrors upstream utils/remotesrv LocalCSCache: the

M web/adapters.go => web/adapters.go +5 -5
@@ 3,12 3,12 @@ package web
import (
	"context"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"

	"go.bigb.es/sourcehut-dolt/authn"
	"go.bigb.es/sourcehut-dolt/browse"
	"go.bigb.es/sourcehut-dolt/core"
	"go.bigb.es/sourcehut-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/browse"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
)

// This file holds the production adapters that satisfy the small interfaces in

M web/chrome.go => web/chrome.go +3 -3
@@ 6,11 6,11 @@ import (
	"sort"
	"strings"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"git.sr.ht/~sircmpwn/core-go/config"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/config"
	"github.com/vaughan0/go-ini"

	"go.bigb.es/sourcehut-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
)

// serviceName is our own service key in the shared config and nav.

M web/deps.go => web/deps.go +5 -5
@@ 20,12 20,12 @@ import (

	"github.com/vaughan0/go-ini"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"

	"go.bigb.es/sourcehut-dolt/authn"
	"go.bigb.es/sourcehut-dolt/browse"
	"go.bigb.es/sourcehut-dolt/core"
	"go.bigb.es/sourcehut-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/browse"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
)

// Config carries everything the router and handlers need. The Phase-3 main

M web/handlers_browse.go => web/handlers_browse.go +2 -2
@@ 7,8 7,8 @@ import (

	"github.com/go-chi/chi/v5"

	"go.bigb.es/sourcehut-dolt/browse"
	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/browse"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

const (

M web/handlers_keys.go => web/handlers_keys.go +1 -1
@@ 6,7 6,7 @@ import (
	"strconv"
	"strings"

	"go.bigb.es/sourcehut-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
)

// keysView is the dolt-key management page model.

M web/handlers_repo.go => web/handlers_repo.go +4 -4
@@ 5,12 5,12 @@ import (
	"net/http"
	"strings"

	"git.sr.ht/~sircmpwn/core-go/config"
	"sourcecraft.dev/bigbes/sr-ht-core/config"
	"github.com/go-chi/chi/v5"

	"go.bigb.es/sourcehut-dolt/browse"
	"go.bigb.es/sourcehut-dolt/core"
	"go.bigb.es/sourcehut-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/browse"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
)

// overviewCommitLimit is how many recent commits the database overview shows.

M web/handlers_settings.go => web/handlers_settings.go +2 -2
@@ 8,8 8,8 @@ import (

	"github.com/go-chi/chi/v5"

	"go.bigb.es/sourcehut-dolt/core"
	"go.bigb.es/sourcehut-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
)

// loadRepoForAdmin loads the {user}/{db} repo and enforces the owner-only admin

M web/router.go => web/router.go +1 -1
@@ 6,7 6,7 @@ import (

	"github.com/go-chi/chi/v5"

	"go.bigb.es/sourcehut-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
)

// app bundles the parsed templates, the discovered stylesheet href and the

M web/web_test.go => web/web_test.go +5 -5
@@ 12,15 12,15 @@ import (
	"testing"
	"time"

	"git.sr.ht/~sircmpwn/core-go/auth"
	"sourcecraft.dev/bigbes/sr-ht-core/auth"
	"github.com/dolthub/dolt/go/libraries/doltcore/creds"
	"github.com/go-chi/chi/v5"
	"github.com/vaughan0/go-ini"

	"go.bigb.es/sourcehut-dolt/authn"
	"go.bigb.es/sourcehut-dolt/browse"
	"go.bigb.es/sourcehut-dolt/core"
	"go.bigb.es/sourcehut-dolt/db"
	"sourcecraft.dev/bigbes/sr-ht-dolt/authn"
	"sourcecraft.dev/bigbes/sr-ht-dolt/browse"
	"sourcecraft.dev/bigbes/sr-ht-dolt/core"
	"sourcecraft.dev/bigbes/sr-ht-dolt/db"
)

const selfOrigin = "https://dolt.example"