forgejo-aneksajo_auto_patch.../data/53/new_aneksajo.diff
2025-01-23 01:26:39 +01:00

27 lines
974 B
Diff

24a25
> "github.com/google/uuid"
462a464,487
> }
>
> // generate and activate an ssh key for the user attached to the APITestContext
> // TODO: pick a better name; golang doesn't do method overriding.
> func withCtxKeyFile(t *testing.T, ctx APITestContext, callback func()) {
> // we need to have write:public_key to do this step
> // the easiest way is to create a throwaway ctx that is identical but only has that permission
> ctxKeyWriter := ctx
> ctxKeyWriter.Token = getTokenForLoggedInUser(t, ctx.Session, auth.AccessTokenScopeWriteUser)
>
> keyName := "One of " + ctx.Username + "'s keys: #" + uuid.New().String()
> withKeyFile(t, keyName, func(keyFile string) {
> var key api.PublicKey
>
> doAPICreateUserKey(ctxKeyWriter, keyName, keyFile,
> func(t *testing.T, _key api.PublicKey) {
> // save the key ID so we can delete it at the end
> key = _key
> })(t)
>
> defer doAPIDeleteUserKey(ctxKeyWriter, key.ID)(t)
>
> callback()
> })