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

Open
#5,733 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
52/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
go, openapi
Domain
api

Research direction

The target is the OpenAPI #/components/parameters/run-id definition; start by locating that schema entry and compare it with the generated file pkg/github/repos/item_item_actions_runs_request_builder.go linked in the report. Confirm the corrected format produces an int64 run ID in the Go SDK, then rerun the curl request and Go reproduction; done means the schema declares int64 and the generated call no longer uses int32.

Written by the indexing model from the issue text.

Description

documentation

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()
    }
    
    
Dominant language
No language data
Stars
1.6k
Forks
342
Avg merge
3h 33m
Merged PRs (30d)
51

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/rest-api-description

All issues in github/rest-api-description

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.