Skip to content

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

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()
    }

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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