Нужно отфильтровать некоторые данные с помощью go и go-gihub, застрял на следующих шагах с ответом

#json #api #go

#json #API #Вперед

Вопрос:

Я использую go с библиотекой go-gihub, и мне удалось перечислить некоторые выпуски из примера репозитория, показанного в коде ниже. Следующий шаг — использовать ответ json и следить за новыми выпусками, однако тип из ответа не может быть отменен?

 
    package main

    import (
        "context"
        "fmt"
        "github.com/google/go-github/github"
    )

    func main() {
        fmt.Println("start")

        client := github.NewClient(nil)

        opt := amp;github.ListOptions{Page: 2, PerPage: 10}

        ctx := context.Background()

        rls, resp, err := client.Repositories.ListReleases(ctx, "prometheus-community", "helm-charts", opt)

        if err != nil {
            fmt.Println(err)
        }

        fmt.Println("contents of rls:", rls)
        fmt.Println("contents of resp:", resp)

    }

 

Ответ №1:

Я не уверен, что именно вы имели в виду:

тип из ответа не может быть отменен

Вы получили какую-то ошибку?

Вызов ListReleases возвращает a []*RepositoryReleases (см. Код), так что вы можете перебирать ответ и делать с данными все, что вам нужно.

Например, для перечисления названия каждого выпуска:

 package main

import (
    "context"
    "fmt"

    "github.com/google/go-github/github"
)

func main() {
    fmt.Println("start")

    client := github.NewClient(nil)

    opt := amp;github.ListOptions{Page: 2, PerPage: 10}

    ctx := context.Background()

    rls, resp, err := client.Repositories.ListReleases(ctx, "prometheus-community", "helm-charts", opt)

    if err != nil {
        fmt.Println(err)
    }

    for _, release := range rls {
        if release.Name != nil {
            fmt.Println(*release.Name)
        }
    }

}

 

Комментарии:

1. Это именно та информация, которая мне была нужна, я слишком усложнил ответ.