Skip to content

[Schema Inaccuracy] run-id type format should be int64 #5733

@skj-skj

Description

@skj-skj

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

  1. set GITHUB_TOKEN, GITHUB_REPOSITORY and GITHUB_RUN_ID (provide a valid run id)
  2. run curl -s -H "Authorization: Bearer ${GITHUB_TOKEN}" "https://api.github.com/repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/jobs" it will work
  3. 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()
    }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions