public static Task <Release> CreateGitHubReleaseAsync(
        this ICakeContext context,
        NewGitHubReleaseSettings settings,
        CancellationToken cancellationToken)
    {
        if (settings == null)
        {
            throw new ArgumentNullException(nameof(settings));
        }

        settings.EnsureValid();

        return(settings.Releaser.CreateReleaseAsync(
                   new NewRelease
        {
            Name = settings.Name,
            TagName = settings.TagName,
            TargetCommitish = settings.TargetCommitish,
            Body = settings.GetBody(context.FileSystem),
            IsDraft = settings.IsDraft,
            IsPrerelease = settings.IsPrerelease,
            Assets = settings.AssetFileInfos
        },
                   cancellationToken));
    }
 public static Release CreateGitHubRelease(
     this ICakeContext context,
     NewGitHubReleaseSettings settings) =>
 context
 .CreateGitHubReleaseAsync(settings)
 .GetAwaiter()
 .GetResult();
 public static Task <Release> CreateGitHubReleaseAsync(
     this ICakeContext context,
     NewGitHubReleaseSettings settings) =>
 context.CreateGitHubReleaseAsync(settings, CancellationToken.None);