1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-09-16 09:26:22 +02:00

feat(githubPublishRelease): make GitHub API timeout configurable (#5393)

Co-authored-by: Ashly Mathew <ashly.mathew@sap.com>
Co-authored-by: phgermanov <phgermanov@gmail.com>
This commit is contained in:
Googlom
2025-07-14 15:47:45 +03:00
committed by GitHub
parent f963fb1c80
commit a031cb52ae
3 changed files with 25 additions and 3 deletions

View File

@@ -7,6 +7,7 @@ import (
"os"
"path/filepath"
"strings"
"time"
"github.com/SAP/jenkins-library/pkg/log"
"github.com/SAP/jenkins-library/pkg/telemetry"
@@ -30,9 +31,10 @@ type githubIssueClient interface {
func githubPublishRelease(config githubPublishReleaseOptions, telemetryData *telemetry.CustomData) {
// TODO provide parameter for trusted certs
ctx, client, err := piperGithub.
NewClientBuilder(config.Token, config.APIURL).
WithUploadURL(config.UploadURL).Build()
ctx, client, err := piperGithub.NewClientBuilder(config.Token, config.APIURL).
WithTimeout(time.Duration(config.GithubAPITimeout) * time.Second).
WithUploadURL(config.UploadURL).
Build()
if err != nil {
log.Entry().WithError(err).Fatal("Failed to get GitHub client.")
}

View File

@@ -20,6 +20,7 @@ type githubPublishReleaseOptions struct {
AddClosedIssues bool `json:"addClosedIssues,omitempty"`
AddDeltaToLastRelease bool `json:"addDeltaToLastRelease,omitempty"`
APIURL string `json:"apiUrl,omitempty"`
GithubAPITimeout int `json:"githubApiTimeout,omitempty"`
AssetPath string `json:"assetPath,omitempty"`
AssetPathList []string `json:"assetPathList,omitempty"`
Commitish string `json:"commitish,omitempty"`
@@ -169,6 +170,7 @@ func addGithubPublishReleaseFlags(cmd *cobra.Command, stepConfig *githubPublishR
cmd.Flags().BoolVar(&stepConfig.AddClosedIssues, "addClosedIssues", false, "If set to `true`, closed issues and merged pull-requests since the last release will added below the `releaseBodyHeader`")
cmd.Flags().BoolVar(&stepConfig.AddDeltaToLastRelease, "addDeltaToLastRelease", false, "If set to `true`, a link will be added to the release information that brings up all commits since the last release.")
cmd.Flags().StringVar(&stepConfig.APIURL, "apiUrl", `https://api.github.com`, "Set the GitHub API url.")
cmd.Flags().IntVar(&stepConfig.GithubAPITimeout, "githubApiTimeout", 30, "Set HTTP timeout for GitHub API calls (in seconds)")
cmd.Flags().StringVar(&stepConfig.AssetPath, "assetPath", os.Getenv("PIPER_assetPath"), "Path to a release asset which should be uploaded to the list of release assets.")
cmd.Flags().StringSliceVar(&stepConfig.AssetPathList, "assetPathList", []string{}, "List of paths to a release asset which should be uploaded to the list of release assets.")
cmd.Flags().StringVar(&stepConfig.Commitish, "commitish", `master`, "Target git commitish for the release")
@@ -234,6 +236,15 @@ func githubPublishReleaseMetadata() config.StepData {
Aliases: []config.Alias{{Name: "githubApiUrl"}},
Default: `https://api.github.com`,
},
{
Name: "githubApiTimeout",
ResourceRef: []config.ResourceReference{},
Scope: []string{"GENERAL", "PARAMETERS", "STAGES", "STEPS"},
Type: "int",
Mandatory: false,
Aliases: []config.Alias{},
Default: 30,
},
{
Name: "assetPath",
ResourceRef: []config.ResourceReference{},

View File

@@ -47,6 +47,15 @@ spec:
type: string
default: https://api.github.com
mandatory: true
- name: githubApiTimeout
description: Set HTTP timeout for GitHub API calls (in seconds)
scope:
- GENERAL
- PARAMETERS
- STAGES
- STEPS
type: int
default: 30
- name: assetPath
description: Path to a release asset which should be uploaded to the list of release assets.
scope: