mirror of
https://github.com/zoriya/octokit.net.git
synced 2025-12-05 23:06:10 +00:00
Use correct methods and URL to generate release notes (#2592)
This commit is contained in:
committed by
GitHub
parent
971fa50d6e
commit
fa29939f50
@@ -31,7 +31,7 @@ namespace Octokit.Tests.Clients
|
|||||||
|
|
||||||
await releasesClient.GenerateReleaseNotes("fake", "repo", data);
|
await releasesClient.GenerateReleaseNotes("fake", "repo", data);
|
||||||
|
|
||||||
client.Received().Post<GeneratedReleaseNotes>(Arg.Is<Uri>(u => u.ToString() == "repos/fake/repo/releases"),
|
client.Received().Post<GeneratedReleaseNotes>(Arg.Is<Uri>(u => u.ToString() == "repos/fake/repo/releases/generate-notes"),
|
||||||
data,
|
data,
|
||||||
"application/vnd.github.v3");
|
"application/vnd.github.v3");
|
||||||
}
|
}
|
||||||
@@ -45,7 +45,7 @@ namespace Octokit.Tests.Clients
|
|||||||
|
|
||||||
await releasesClient.GenerateReleaseNotes(1, data);
|
await releasesClient.GenerateReleaseNotes(1, data);
|
||||||
|
|
||||||
client.Received().Post<GeneratedReleaseNotes>(Arg.Is<Uri>(u => u.ToString() == "repositories/1/releases"),
|
client.Received().Post<GeneratedReleaseNotes>(Arg.Is<Uri>(u => u.ToString() == "repositories/1/releases/generate-notes"),
|
||||||
data,
|
data,
|
||||||
"application/vnd.github.v3");
|
"application/vnd.github.v3");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,14 +30,14 @@ namespace Octokit
|
|||||||
/// <param name="name">The repository's name</param>
|
/// <param name="name">The repository's name</param>
|
||||||
/// <param name="data">The request for generating release notes</param>
|
/// <param name="data">The request for generating release notes</param>
|
||||||
/// <exception cref="ApiException">Thrown when a general API error occurs.</exception>
|
/// <exception cref="ApiException">Thrown when a general API error occurs.</exception>
|
||||||
[ManualRoute("GET", "/repos/{owner}/{repo}/releases")]
|
[ManualRoute("POST", "/repos/{owner}/{repo}/releases/generate-notes")]
|
||||||
public Task<GeneratedReleaseNotes> GenerateReleaseNotes(string owner, string name, GenerateReleaseNotesRequest data)
|
public Task<GeneratedReleaseNotes> GenerateReleaseNotes(string owner, string name, GenerateReleaseNotesRequest data)
|
||||||
{
|
{
|
||||||
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
|
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
|
||||||
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
|
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
|
||||||
Ensure.ArgumentNotNull(data, nameof(data));
|
Ensure.ArgumentNotNull(data, nameof(data));
|
||||||
|
|
||||||
var endpoint = ApiUrls.Releases(owner, name);
|
var endpoint = ApiUrls.ReleasesGenerateNotes(owner, name);
|
||||||
return ApiConnection.Post<GeneratedReleaseNotes>(endpoint, data, AcceptHeaders.StableVersion);
|
return ApiConnection.Post<GeneratedReleaseNotes>(endpoint, data, AcceptHeaders.StableVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,12 +50,12 @@ namespace Octokit
|
|||||||
/// <param name="repositoryId">The Id of the repository</param>
|
/// <param name="repositoryId">The Id of the repository</param>
|
||||||
/// <param name="data">The request for generating release notes</param>
|
/// <param name="data">The request for generating release notes</param>
|
||||||
/// <exception cref="ApiException">Thrown when a general API error occurs.</exception>
|
/// <exception cref="ApiException">Thrown when a general API error occurs.</exception>
|
||||||
[ManualRoute("GET", "/repos/{owner}/{repo}/releases")]
|
[ManualRoute("POST", "/repositories/{id}/releases/generate-notes")]
|
||||||
public Task<GeneratedReleaseNotes> GenerateReleaseNotes(long repositoryId, GenerateReleaseNotesRequest data)
|
public Task<GeneratedReleaseNotes> GenerateReleaseNotes(long repositoryId, GenerateReleaseNotesRequest data)
|
||||||
{
|
{
|
||||||
Ensure.ArgumentNotNull(data, nameof(data));
|
Ensure.ArgumentNotNull(data, nameof(data));
|
||||||
|
|
||||||
var endpoint = ApiUrls.Releases(repositoryId);
|
var endpoint = ApiUrls.ReleasesGenerateNotes(repositoryId);
|
||||||
return ApiConnection.Post<GeneratedReleaseNotes>(endpoint, data, AcceptHeaders.StableVersion);
|
return ApiConnection.Post<GeneratedReleaseNotes>(endpoint, data, AcceptHeaders.StableVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -191,6 +191,17 @@ namespace Octokit
|
|||||||
return "repos/{0}/{1}/releases".FormatUri(owner, name);
|
return "repos/{0}/{1}/releases".FormatUri(owner, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the <see cref="Uri"/> that generates release notes for the specified repository.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="owner">The owner of the repository</param>
|
||||||
|
/// <param name="name">The name of the repository</param>
|
||||||
|
/// <returns>The <see cref="Uri"/> that generates release notes for the specified repository.</returns>
|
||||||
|
public static Uri ReleasesGenerateNotes(string owner, string name)
|
||||||
|
{
|
||||||
|
return "repos/{0}/{1}/releases/generate-notes".FormatUri(owner, name);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the <see cref="Uri"/> that returns a single release for the specified repository
|
/// Returns the <see cref="Uri"/> that returns a single release for the specified repository
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -3441,6 +3452,16 @@ namespace Octokit
|
|||||||
return "repositories/{0}/releases".FormatUri(repositoryId);
|
return "repositories/{0}/releases".FormatUri(repositoryId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the <see cref="Uri"/> that generates release notes for the specified repository.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="repositoryId">The Id of the repository</param>
|
||||||
|
/// <returns>The <see cref="Uri"/> that generates release notes for the specified repository.</returns>
|
||||||
|
public static Uri ReleasesGenerateNotes(long repositoryId)
|
||||||
|
{
|
||||||
|
return "repositories/{0}/releases/generate-notes".FormatUri(repositoryId);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the <see cref="Uri"/> that returns a single release for the specified repository
|
/// Returns the <see cref="Uri"/> that returns a single release for the specified repository
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -30,19 +30,25 @@ Console.WriteLine("Created release id {0}", result.Id);
|
|||||||
|
|
||||||
Note that the `Draft` flag is used to indicate when a release should be published to the world, whereas the `PreRelease` flag is used to indicate whether a release is unofficial or preview release.
|
Note that the `Draft` flag is used to indicate when a release should be published to the world, whereas the `PreRelease` flag is used to indicate whether a release is unofficial or preview release.
|
||||||
|
|
||||||
#### Generate release notes
|
### Generate release notes
|
||||||
|
|
||||||
Additionally, you can ask GitHub to generate a name and body before creating a new release.
|
GitHub can generate a name and body for a new release [automatically](https://github.blog/2021-10-04-beta-github-releases-improving-release-experience/#introducing-auto-generated-release-notes), based upon merged pull requests.
|
||||||
|
[This is an example](https://github.com/MylesBorins/release-notes-test/releases/tag/v2.0.0) of automatically generated text.
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
var generationRequest = new GenerateReleaseNotesRequest("v2.0.0");
|
var newTag = "v1.5.7";
|
||||||
|
var generationRequest = new GenerateReleaseNotesRequest(newTag);
|
||||||
|
generationRequest.TargetCommitish = "main"; // Optional, can be a branch, tag, or SHA; defaults to the main branch.
|
||||||
|
generationRequest.PreviousTagName = "v1.5.6"; // Optional; default is automagically determined, based on existing tags.
|
||||||
var releaseNotes = await client.Repository.Release.GenerateReleaseNotes("octokit", "octokit.net", generationRequest);
|
var releaseNotes = await client.Repository.Release.GenerateReleaseNotes("octokit", "octokit.net", generationRequest);
|
||||||
|
|
||||||
var newRelease = new NewRelease("v1.0.0");
|
var newRelease = new NewRelease(newTag); // Use the same tag as before, because it now appears in generated text.
|
||||||
newRelease.Name = releaseNotes.Name;
|
newRelease.Name = releaseNotes.Name;
|
||||||
newRelease.Body = releaseNotes.Body;
|
newRelease.Body = releaseNotes.Body;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
This feature can be customized at the repository level, by following [these instructions](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuring-automatically-generated-release-notes).
|
||||||
|
|
||||||
### Update
|
### Update
|
||||||
|
|
||||||
Once the release is ready for the public, you can apply an update to the release:
|
Once the release is ready for the public, you can apply an update to the release:
|
||||||
|
|||||||
Reference in New Issue
Block a user