Panic when attempting to generate CLI for YNAB's API
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 25/100
Direzione di ricerca
Inizia con la riproduzione tramite Dockerfile e con il comando openapi-cli-generator generate ynab.openapi.yaml. Esamina il main.go generato e gli entry point writeFormattedFile e generate indicati nello stack trace, quindi confronta il codice sorgente Go generato con l’errore del parser segnalato. Il lavoro è completato quando la specifica YNAB fornita viene generata correttamente oppure fallisce con un errore chiaro che non provochi un panic.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I am attempting to generate a CLI for YNAB's API (spec) via Docker (because I really do not want to setup then tear down a go env for this single use-case).
This isn't straightforward as the YNAB API spec is OpenAPI v2 so I converted it to v3 with this tool (then validated the generated spec with this tool).
I uploaded the resulting v3 YAML as a gist.
I then wrote this, potentially bogus, Dockerfile:
FROM golang
WORKDIR /go/ynab-cli
RUN go get -u github.com/danielgtaylor/openapi-cli-generator && \
curl --silent -o ynab.openapi.yaml https://gist.githubusercontent.com/Phrohdoh/d1ecea1fbe1c8566fad5fd97aa99b346/raw/962661a47d8248aa2edd3618ad6c74d000219fe4/ynab_v1.openapi_v3.yaml && \
openapi-cli-generator init ynab && \
cat main.go | sed 's|// TODO: Add register commands here\.|openapiRegister(false)|g' > main.go
RUN openapi-cli-generator generate ynab.openapi.yaml
RUN go install
CMD ynab-cli
When I run the following from the directory containing my Dockerfile:
$ docker build -t gen-ynab-cli .
I get the following output:
Sending build context to Docker daemon 2.56kB
Step 1/6 : FROM golang
---> b860ab44e93e
Step 2/6 : WORKDIR /go/ynab-cli
---> Using cache
---> dfba7020dd36
Step 3/6 : RUN go get -u github.com/danielgtaylor/openapi-cli-generator && curl --silent -o ynab.openapi.yaml https://gist.githubusercontent.com/Phrohdoh/d1ecea1fbe1c8566fad5fd97aa99b346/raw/962661a47d8248aa2edd3618ad6c74d000219fe4/ynab_v1.openapi_v3.yaml && openapi-cli-generator init ynab && cat main.go | sed 's|// TODO: Add register commands here\.|openapiRegister(false)|g' > main.go && cat main.go
---> Using cache
---> e7a8c5ae42a6
Step 4/6 : RUN openapi-cli-generator generate ynab.openapi.yaml
---> Running in 4250354ef5c6
panic: 25:9: expected ';', found '.' (and 10 more errors)
goroutine 1 [running]:
main.writeFormattedFile(0xc000160c00, 0xf, 0xc0002ae000, 0x10af6, 0x12000)
/go/src/github.com/danielgtaylor/openapi-cli-generator/main.go:586 +0x112
main.generate(0xc0000b7b80, 0xc0000530a0, 0x1, 0x1)
/go/src/github.com/danielgtaylor/openapi-cli-generator/main.go:654 +0x5b0
github.com/spf13/cobra.(*Command).execute(0xc0000b7b80, 0xc000053080, 0x1, 0x1, 0xc0000b7b80, 0xc000053080)
/go/src/github.com/spf13/cobra/command.go:766 +0x2ae
github.com/spf13/cobra.(*Command).ExecuteC(0xc0000b7680, 0xc00008df78, 0x1, 0x1)
/go/src/github.com/spf13/cobra/command.go:850 +0x2fc
github.com/spf13/cobra.(*Command).Execute(...)
/go/src/github.com/spf13/cobra/command.go:800
main.main()
/go/src/github.com/danielgtaylor/openapi-cli-generator/main.go:674 +0x1c0
The command '/bin/sh -c openapi-cli-generator generate ynab.openapi.yaml' returned a non-zero code: 2
With the relevant portion being:
panic: 25:9: expected ';', found '.' (and 10 more errors)
goroutine 1 [running]:
main.writeFormattedFile(0xc000160c00, 0xf, 0xc0002ae000, 0x10af6, 0x12000)
/go/src/github.com/danielgtaylor/openapi-cli-generator/main.go:586 +0x112
main.generate(0xc0000b7b80, 0xc0000530a0, 0x1, 0x1)
/go/src/github.com/danielgtaylor/openapi-cli-generator/main.go:654 +0x5b0
github.com/spf13/cobra.(*Command).execute(0xc0000b7b80, 0xc000053080, 0x1, 0x1, 0xc0000b7b80, 0xc000053080)
/go/src/github.com/spf13/cobra/command.go:766 +0x2ae
github.com/spf13/cobra.(*Command).ExecuteC(0xc0000b7680, 0xc00008df78, 0x1, 0x1)
/go/src/github.com/spf13/cobra/command.go:850 +0x2fc
github.com/spf13/cobra.(*Command).Execute(...)
/go/src/github.com/spf13/cobra/command.go:800
main.main()
/go/src/github.com/danielgtaylor/openapi-cli-generator/main.go:674 +0x1c0
Am I attempting to use this project incorrectly or is the generated v3 YAML doc invalid?
Any help/input would be greatly appreciated!
- Lingua principale
- Go
- Stelle
- 218
- Fork
- 53
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di danielgtaylor/openapi-cli-generator
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
danielgtaylor/openapi-cli-generator#45 · 2 commenti · 1 reazione ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
danielgtaylor/openapi-cli-generator#44 · 3 reazioni ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
-
J how to escape "," symbols?Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
danielgtaylor/openapi-cli-generator#41 · 1 commento ·
Tutte le issue di danielgtaylor/openapi-cli-generator
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
-
✨ Propose the missing gate after three same-class findings instead of filing a fourthForse già presa @hivecommons-hive l’ha presa oggi. Apertaenhancement help wanted hive/claimed-by-scanner stage/040-covered-by-pr
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
hivecommons/hive#13428 · 3 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
🕷️ bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
sysadminsmedia/homebox#1805 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100