So erstellen Sie eine Github APIv4 Golang-Abfrage für eine bestimmte Version

WBOY
Freigeben: 2024-02-13 23:12:08
nach vorne
949 Leute haben es durchsucht

如何构建特定版本的 Github APIv4 Golang 查询

php-Editor Youzi zeigt Ihnen, wie Sie eine bestimmte Version der Github APIv4 Golang-Abfrage erstellen. Github APIv4 ist ein leistungsstarkes Abfragetool, das Entwicklern dabei helfen kann, verschiedene Daten auf Github abzurufen und zu verarbeiten. Manchmal müssen wir jedoch möglicherweise eine bestimmte Datenversion abrufen, und die offizielle API stellt eine solche Funktion nicht direkt bereit. In diesem Artikel erfahren Sie, wie Sie mit Golang benutzerdefinierte Abfragen schreiben, um eine bestimmte Datenversion abzurufen.

Frageninhalt

Bei Verwendung von https://github.com/shurcooL/githubv4 habe ich wirklich Probleme, eine bestimmte Version für das GH-Repository zurückzuholen.

Wenn v3 verfügbar ist, gibt der folgende Codeblock immer nichts zurück:

var releaseQ struct {
  Repository struct {
    Release struct {
        Author githubv4.String
    } `graphql:"release(tagName:$tagName)"`
  } `graphql:"repository(owner:$repositoryOwner,name:$repositoryName)"`
}
variables = map[string]interface{}{
    "repositoryOwner": githubv4.String("jacobtomlinson"),
    "repositoryName":  githubv4.String("gha-find-replace"),
    "tagName":         githubv4.String("v3"),
}
err = client.Query(context.Background(), &releaseQ, variables)
if err != nil {
    fmt.Println("Query returned nothing")
}
fmt.Println("author:", releaseQ.Repository.Release.Author)
Nach dem Login kopieren

Ich habe die folgenden zwei Codeblöcke für die Repository-Beschreibung und Problemreaktion erfolgreich erhalten:

var repoDescriptionQ struct {
  Repository struct {
    Description string
  } `graphql:"repository(owner: \"jacobtomlinson\", name: \"gha-find-replace\")"`
}
Nach dem Login kopieren

Dies gibt die Repository-Beschreibung erfolgreich zurück ^

variables := map[string]interface{}{
  "repositoryOwner": githubv4.String("jacobtomlinson"),
  "repositoryName":  githubv4.String("gha-find-replace"),
  "issueNumber":     githubv4.Int(55),
  "reactionContent": githubv4.ReactionContentThumbsDown,
}
var reactionQ struct {
Repository struct {
    Issue struct {
        ID        githubv4.ID
        Reactions struct {
            ViewerHasReacted githubv4.Boolean
        } `graphql:"reactions(content:$reactionContent)"`
    } `graphql:"issue(number:$issueNumber)"`
} `graphql:"repository(owner:$repositoryOwner,name:$repositoryName)"`
}
Nach dem Login kopieren

Die Antwort wurde erfolgreich erhalten^

Problemumgehung

Es wurde festgestellt, dass das Feld „Autor“ keine Zeichenfolge, sondern vom Typ „Benutzer“ ist. Ändern Sie das angeforderte Feld in „Beschreibung“, bei dem es sich um eine Zeichenfolge handelt, die die Buchungsinformationen zurückzieht. Wenn Sie wirklich Autoren benötigen, müssen Sie Benutzer definieren:

var releaseQ struct {
    Repository struct {
        Release struct {
            Description githubv4.String
        } `graphql:"release(tagName:$tagName)"`
    } `graphql:"repository(owner:$repositoryOwner,name:$repositoryName)"`
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine Github APIv4 Golang-Abfrage für eine bestimmte Version. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage