Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Panic when attempting to generate CLI for YNAB's API

Abierto
#21 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
docker, go, openapi
Área
cli, devtools

Línea de trabajo

Empieza con la reproducción mediante el Dockerfile y el comando openapi-cli-generator generate ynab.openapi.yaml. Inspecciona el main.go generado y los puntos de entrada writeFormattedFile y generate mencionados en el stack trace; después, compara el código fuente de Go generado con el error del parser informado. Se considera terminado cuando la especificación de YNAB proporcionada se genera correctamente o falla con un error claro que no provoque un panic.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

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!

Lenguaje dominante
Go
Estrellas
218
Forks
53
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de danielgtaylor/openapi-cli-generator

Todos los issues de danielgtaylor/openapi-cli-generator

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.