Schema Inaccuracy
#/components/parameters/run-id type format should be int64, currently the there is no format provided due to which go-sdk which is generated from openapi spec use wrong type for run_id int32
Expected
format should be int64
Reproduction Steps
- set
GITHUB_TOKEN, GITHUB_REPOSITORY and GITHUB_RUN_ID (provide a valid run id)
- run
curl -s -H "Authorization: Bearer ${GITHUB_TOKEN}" "https://api.github.com/repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/jobs" it will work
- run the go script below (it will give 404 error, because int64 run_id is converted to int32:
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"strconv"
"strings"
"github.com/octokit/go-sdk/pkg"
)
func main() {
githubToken := os.Getenv("GITHUB_TOKEN")
githubRepo := os.Getenv("GITHUB_REPOSITORY") // format: owner/repo
githubRunID := os.Getenv("GITHUB_RUN_ID")
if githubToken == "" || githubRepo == "" || githubRunID == "" {
fmt.Fprintln(os.Stderr, "Missing required environment variables. Please set GITHUB_TOKEN, GITHUB_REPOSITORY, and GITHUB_RUN_ID.")
os.Exit(1)
}
// Parse owner and repo from GITHUB_REPOSITORY
parts := strings.Split(githubRepo, "/")
if len(parts) != 2 {
fmt.Fprintf(os.Stderr, "Invalid GITHUB_REPOSITORY format. Expected 'owner/repo', got: %s\n", githubRepo)
os.Exit(1)
}
owner := parts[0]
repo := parts[1]
// Convert run ID to int32 for the API
runID, err := strconv.ParseInt(githubRunID, 10, 64)
if err != nil {
fmt.Fprintf(os.Stderr, "Invalid GITHUB_RUN_ID: %v\n", err)
os.Exit(1)
}
// Create GitHub client
githubClient, err := pkg.NewApiClient(pkg.WithTokenAuthentication(githubToken))
if err != nil {
fmt.Fprintf(os.Stderr, "Failed to create GitHub client: %v\n", err)
os.Exit(1)
}
ctx := context.Background()
// Get jobs for the workflow run
jobsResponse, err := githubClient.Repos().
ByOwnerId(owner).
ByRepoId(repo).
Actions().
Runs().
ByRun_id(int32(runID)).
Jobs().
Get(ctx, nil)
if err != nil {
fmt.Fprintf(os.Stderr, "Failed to get workflow jobs: %v\n", err)
os.Exit(1)
}
// Print JSON data
fmt.Println("=== Jobs Data (JSON) ===")
jsonData, err := json.MarshalIndent(jobsResponse, "", " ")
if err != nil {
fmt.Fprintf(os.Stderr, "Failed to marshal JSON: %v\n", err)
os.Exit(1)
}
fmt.Println(string(jsonData))
fmt.Println()
}
Schema Inaccuracy
#/components/parameters/run-id type format should be
int64, currently the there is no format provided due to which go-sdk which is generated from openapi spec use wrong type for run_idint32Expected
format should be
int64Reproduction Steps
GITHUB_TOKEN,GITHUB_REPOSITORYandGITHUB_RUN_ID(provide a valid run id)curl -s -H "Authorization: Bearer ${GITHUB_TOKEN}" "https://api.github.com/repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/jobs"it will work