added new overloads

This commit is contained in:
aedampir@gmail.com
2016-06-16 17:39:45 +07:00
parent 27d0077aae
commit be6e55e4eb
4 changed files with 768 additions and 1 deletions

View File

@@ -18,6 +18,17 @@ namespace Octokit.Reactive
/// <returns>The list of labels</returns> /// <returns>The list of labels</returns>
IObservable<Label> GetAllForIssue(string owner, string name, int number); IObservable<Label> GetAllForIssue(string owner, string name, int number);
/// <summary>
/// Gets all labels for the issue.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-labels-on-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns>The list of labels</returns>
IObservable<Label> GetAllForIssue(int repositoryId, int number);
/// <summary> /// <summary>
/// Gets all labels for the issue. /// Gets all labels for the issue.
/// </summary> /// </summary>
@@ -31,6 +42,18 @@ namespace Octokit.Reactive
/// <returns>The list of labels</returns> /// <returns>The list of labels</returns>
IObservable<Label> GetAllForIssue(string owner, string name, int number, ApiOptions options); IObservable<Label> GetAllForIssue(string owner, string name, int number, ApiOptions options);
/// <summary>
/// Gets all labels for the issue.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-labels-on-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="options">Options for changing the API response</param>
/// <returns>The list of labels</returns>
IObservable<Label> GetAllForIssue(int repositoryId, int number, ApiOptions options);
/// <summary> /// <summary>
/// Gets all labels for the repository. /// Gets all labels for the repository.
/// </summary> /// </summary>
@@ -42,6 +65,16 @@ namespace Octokit.Reactive
/// <returns>The list of labels</returns> /// <returns>The list of labels</returns>
IObservable<Label> GetAllForRepository(string owner, string name); IObservable<Label> GetAllForRepository(string owner, string name);
/// <summary>
/// Gets all labels for the repository.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <returns>The list of labels</returns>
IObservable<Label> GetAllForRepository(int repositoryId);
/// <summary> /// <summary>
/// Gets all labels for the repository. /// Gets all labels for the repository.
/// </summary> /// </summary>
@@ -54,6 +87,17 @@ namespace Octokit.Reactive
/// <returns>The list of labels</returns> /// <returns>The list of labels</returns>
IObservable<Label> GetAllForRepository(string owner, string name, ApiOptions options); IObservable<Label> GetAllForRepository(string owner, string name, ApiOptions options);
/// <summary>
/// Gets all labels for the repository.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="options">Options for changing the API response</param>
/// <returns>The list of labels</returns>
IObservable<Label> GetAllForRepository(int repositoryId, ApiOptions options);
/// <summary> /// <summary>
/// Gets labels for every issue in a milestone /// Gets labels for every issue in a milestone
/// </summary> /// </summary>
@@ -66,6 +110,17 @@ namespace Octokit.Reactive
/// <returns></returns> /// <returns></returns>
IObservable<Label> GetAllForMilestone(string owner, string name, int number); IObservable<Label> GetAllForMilestone(string owner, string name, int number);
/// <summary>
/// Gets labels for every issue in a milestone
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the milestone</param>
/// <returns></returns>
IObservable<Label> GetAllForMilestone(int repositoryId, int number);
/// <summary> /// <summary>
/// Gets labels for every issue in a milestone /// Gets labels for every issue in a milestone
/// </summary> /// </summary>
@@ -79,6 +134,18 @@ namespace Octokit.Reactive
/// <returns></returns> /// <returns></returns>
IObservable<Label> GetAllForMilestone(string owner, string name, int number, ApiOptions options); IObservable<Label> GetAllForMilestone(string owner, string name, int number, ApiOptions options);
/// <summary>
/// Gets labels for every issue in a milestone
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the milestone</param>
/// <param name="options">Options for changing the API response</param>
/// <returns></returns>
IObservable<Label> GetAllForMilestone(int repositoryId, int number, ApiOptions options);
/// <summary> /// <summary>
/// Gets a single Label by name. /// Gets a single Label by name.
/// </summary> /// </summary>
@@ -90,9 +157,22 @@ namespace Octokit.Reactive
/// <param name="labelName">The name of the label</param> /// <param name="labelName">The name of the label</param>
/// <returns>The label</returns> /// <returns>The label</returns>
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get", [SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get",
Justification = "Method makes a network request")] Justification = "Method makes a network request")]
IObservable<Label> Get(string owner, string name, string labelName); IObservable<Label> Get(string owner, string name, string labelName);
/// <summary>
/// Gets a single Label by name.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-a-single-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <returns>The label</returns>
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get",
Justification = "Method makes a network request")]
IObservable<Label> Get(int repositoryId, string labelName);
/// <summary> /// <summary>
/// Deletes a label. /// Deletes a label.
/// </summary> /// </summary>
@@ -105,6 +185,17 @@ namespace Octokit.Reactive
/// <returns></returns> /// <returns></returns>
IObservable<Unit> Delete(string owner, string name, string labelName); IObservable<Unit> Delete(string owner, string name, string labelName);
/// <summary>
/// Deletes a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#delete-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <returns></returns>
IObservable<Unit> Delete(int repositoryId, string labelName);
/// <summary> /// <summary>
/// Creates a label. /// Creates a label.
/// </summary> /// </summary>
@@ -117,6 +208,17 @@ namespace Octokit.Reactive
/// <returns>The created label</returns> /// <returns>The created label</returns>
IObservable<Label> Create(string owner, string name, NewLabel newLabel); IObservable<Label> Create(string owner, string name, NewLabel newLabel);
/// <summary>
/// Creates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#create-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="newLabel">The data for the label to be created</param>
/// <returns>The created label</returns>
IObservable<Label> Create(int repositoryId, NewLabel newLabel);
/// <summary> /// <summary>
/// Updates a label. /// Updates a label.
/// </summary> /// </summary>
@@ -130,6 +232,18 @@ namespace Octokit.Reactive
/// <returns>The updated label</returns> /// <returns>The updated label</returns>
IObservable<Label> Update(string owner, string name, string labelName, LabelUpdate labelUpdate); IObservable<Label> Update(string owner, string name, string labelName, LabelUpdate labelUpdate);
/// <summary>
/// Updates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#update-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <param name="labelUpdate">The data for the label to be updated</param>
/// <returns>The updated label</returns>
IObservable<Label> Update(int repositoryId, string labelName, LabelUpdate labelUpdate);
/// <summary> /// <summary>
/// Adds a label to an issue /// Adds a label to an issue
/// </summary> /// </summary>
@@ -143,6 +257,18 @@ namespace Octokit.Reactive
/// <returns></returns> /// <returns></returns>
IObservable<Label> AddToIssue(string owner, string name, int number, string[] labels); IObservable<Label> AddToIssue(string owner, string name, int number, string[] labels);
/// <summary>
/// Adds a label to an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#add-labels-to-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to add</param>
/// <returns></returns>
IObservable<Label> AddToIssue(int repositoryId, int number, string[] labels);
/// <summary> /// <summary>
/// Removes a label from an issue /// Removes a label from an issue
/// </summary> /// </summary>
@@ -156,6 +282,18 @@ namespace Octokit.Reactive
/// <returns></returns> /// <returns></returns>
IObservable<Unit> RemoveFromIssue(string owner, string name, int number, string labelName); IObservable<Unit> RemoveFromIssue(string owner, string name, int number, string labelName);
/// <summary>
/// Removes a label from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labelName">The name of the label to remove</param>
/// <returns></returns>
IObservable<Unit> RemoveFromIssue(int repositoryId, int number, string labelName);
/// <summary> /// <summary>
/// Replaces all labels on the specified issues with the provided labels /// Replaces all labels on the specified issues with the provided labels
/// </summary> /// </summary>
@@ -169,6 +307,18 @@ namespace Octokit.Reactive
/// <returns></returns> /// <returns></returns>
IObservable<Label> ReplaceAllForIssue(string owner, string name, int number, string[] labels); IObservable<Label> ReplaceAllForIssue(string owner, string name, int number, string[] labels);
/// <summary>
/// Replaces all labels on the specified issues with the provided labels
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to set</param>
/// <returns></returns>
IObservable<Label> ReplaceAllForIssue(int repositoryId, int number, string[] labels);
/// <summary> /// <summary>
/// Removes all labels from an issue /// Removes all labels from an issue
/// </summary> /// </summary>
@@ -180,5 +330,16 @@ namespace Octokit.Reactive
/// <param name="number">The number of the issue</param> /// <param name="number">The number of the issue</param>
/// <returns></returns> /// <returns></returns>
IObservable<Unit> RemoveAllFromIssue(string owner, string name, int number); IObservable<Unit> RemoveAllFromIssue(string owner, string name, int number);
/// <summary>
/// Removes all labels from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns></returns>
IObservable<Unit> RemoveAllFromIssue(int repositoryId, int number);
} }
} }

View File

@@ -37,6 +37,20 @@ namespace Octokit.Reactive
return GetAllForIssue(owner, name, number, ApiOptions.None); return GetAllForIssue(owner, name, number, ApiOptions.None);
} }
/// <summary>
/// Gets all labels for the issue.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-labels-on-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns>The list of labels</returns>
public IObservable<Label> GetAllForIssue(int repositoryId, int number)
{
return GetAllForIssue(repositoryId, number, ApiOptions.None);
}
/// <summary> /// <summary>
/// Gets all labels for the issue. /// Gets all labels for the issue.
/// </summary> /// </summary>
@@ -57,6 +71,23 @@ namespace Octokit.Reactive
return _connection.GetAndFlattenAllPages<Label>(ApiUrls.IssueLabels(owner, name, number), options); return _connection.GetAndFlattenAllPages<Label>(ApiUrls.IssueLabels(owner, name, number), options);
} }
/// <summary>
/// Gets all labels for the issue.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-labels-on-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="options">Options for changing the API response</param>
/// <returns>The list of labels</returns>
public IObservable<Label> GetAllForIssue(int repositoryId, int number, ApiOptions options)
{
Ensure.ArgumentNotNull(options, "options");
return _connection.GetAndFlattenAllPages<Label>(ApiUrls.IssueLabels(repositoryId, number), options);
}
/// <summary> /// <summary>
/// Gets all labels for the repository. /// Gets all labels for the repository.
/// </summary> /// </summary>
@@ -74,6 +105,19 @@ namespace Octokit.Reactive
return GetAllForRepository(owner, name, ApiOptions.None); return GetAllForRepository(owner, name, ApiOptions.None);
} }
/// <summary>
/// Gets all labels for the repository.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <returns>The list of labels</returns>
public IObservable<Label> GetAllForRepository(int repositoryId)
{
return GetAllForRepository(repositoryId, ApiOptions.None);
}
/// <summary> /// <summary>
/// Gets all labels for the repository. /// Gets all labels for the repository.
/// </summary> /// </summary>
@@ -93,6 +137,22 @@ namespace Octokit.Reactive
return _connection.GetAndFlattenAllPages<Label>(ApiUrls.Labels(owner, name), options); return _connection.GetAndFlattenAllPages<Label>(ApiUrls.Labels(owner, name), options);
} }
/// <summary>
/// Gets all labels for the repository.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="options">Options for changing the API response</param>
/// <returns>The list of labels</returns>
public IObservable<Label> GetAllForRepository(int repositoryId, ApiOptions options)
{
Ensure.ArgumentNotNull(options, "options");
return _connection.GetAndFlattenAllPages<Label>(ApiUrls.Labels(repositoryId), options);
}
/// <summary> /// <summary>
/// Gets labels for every issue in a milestone /// Gets labels for every issue in a milestone
/// </summary> /// </summary>
@@ -111,6 +171,20 @@ namespace Octokit.Reactive
return GetAllForMilestone(owner, name, number, ApiOptions.None); return GetAllForMilestone(owner, name, number, ApiOptions.None);
} }
/// <summary>
/// Gets labels for every issue in a milestone
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the milestone</param>
/// <returns></returns>
public IObservable<Label> GetAllForMilestone(int repositoryId, int number)
{
return GetAllForMilestone(repositoryId, number, ApiOptions.None);
}
/// <summary> /// <summary>
/// Gets labels for every issue in a milestone /// Gets labels for every issue in a milestone
/// </summary> /// </summary>
@@ -131,6 +205,23 @@ namespace Octokit.Reactive
return _connection.GetAndFlattenAllPages<Label>(ApiUrls.MilestoneLabels(owner, name, number), options); return _connection.GetAndFlattenAllPages<Label>(ApiUrls.MilestoneLabels(owner, name, number), options);
} }
/// <summary>
/// Gets labels for every issue in a milestone
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the milestone</param>
/// <param name="options">Options for changing the API response</param>
/// <returns></returns>
public IObservable<Label> GetAllForMilestone(int repositoryId, int number, ApiOptions options)
{
Ensure.ArgumentNotNull(options, "options");
return _connection.GetAndFlattenAllPages<Label>(ApiUrls.MilestoneLabels(repositoryId, number), options);
}
/// <summary> /// <summary>
/// Gets a single Label by name. /// Gets a single Label by name.
/// </summary> /// </summary>
@@ -150,6 +241,22 @@ namespace Octokit.Reactive
return _client.Get(owner, name, labelName).ToObservable(); return _client.Get(owner, name, labelName).ToObservable();
} }
/// <summary>
/// Gets a single Label by name.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-a-single-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <returns>The label</returns>
public IObservable<Label> Get(int repositoryId, string labelName)
{
Ensure.ArgumentNotNullOrEmptyString(labelName, "labelName");
return _client.Get(repositoryId, labelName).ToObservable();
}
/// <summary> /// <summary>
/// Deletes a label. /// Deletes a label.
/// </summary> /// </summary>
@@ -169,6 +276,22 @@ namespace Octokit.Reactive
return _client.Delete(owner, name, labelName).ToObservable(); return _client.Delete(owner, name, labelName).ToObservable();
} }
/// <summary>
/// Deletes a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#delete-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <returns></returns>
public IObservable<Unit> Delete(int repositoryId, string labelName)
{
Ensure.ArgumentNotNullOrEmptyString(labelName, "labelName");
return _client.Delete(repositoryId, labelName).ToObservable();
}
/// <summary> /// <summary>
/// Creates a label. /// Creates a label.
/// </summary> /// </summary>
@@ -188,6 +311,22 @@ namespace Octokit.Reactive
return _client.Create(owner, name, newLabel).ToObservable(); return _client.Create(owner, name, newLabel).ToObservable();
} }
/// <summary>
/// Creates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#create-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="newLabel">The data for the label to be created</param>
/// <returns>The created label</returns>
public IObservable<Label> Create(int repositoryId, NewLabel newLabel)
{
Ensure.ArgumentNotNull(newLabel, "newLabel");
return _client.Create(repositoryId, newLabel).ToObservable();
}
/// <summary> /// <summary>
/// Updates a label. /// Updates a label.
/// </summary> /// </summary>
@@ -209,6 +348,24 @@ namespace Octokit.Reactive
return _client.Update(owner, name, labelName, labelUpdate).ToObservable(); return _client.Update(owner, name, labelName, labelUpdate).ToObservable();
} }
/// <summary>
/// Updates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#update-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <param name="labelUpdate">The data for the label to be updated</param>
/// <returns>The updated label</returns>
public IObservable<Label> Update(int repositoryId, string labelName, LabelUpdate labelUpdate)
{
Ensure.ArgumentNotNull(labelName, "labelName");
Ensure.ArgumentNotNull(labelUpdate, "labelUpdate");
return _client.Update(repositoryId, labelName, labelUpdate).ToObservable();
}
/// <summary> /// <summary>
/// Adds a label to an issue /// Adds a label to an issue
/// </summary> /// </summary>
@@ -231,6 +388,22 @@ namespace Octokit.Reactive
.SelectMany(x => x); // HACK: POST is not compatible with GetAndFlattenPages .SelectMany(x => x); // HACK: POST is not compatible with GetAndFlattenPages
} }
/// <summary>
/// Adds a label to an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#add-labels-to-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to add</param>
/// <returns></returns>
public IObservable<Label> AddToIssue(int repositoryId, int number, string[] labels)
{
return _client.AddToIssue(repositoryId, number, labels)
.ToObservable()
.SelectMany(x => x); // HACK: POST is not compatible with GetAndFlattenPages
}
/// <summary> /// <summary>
/// Removes a label from an issue /// Removes a label from an issue
@@ -252,6 +425,23 @@ namespace Octokit.Reactive
return _client.RemoveFromIssue(owner, name, number, labelName).ToObservable(); return _client.RemoveFromIssue(owner, name, number, labelName).ToObservable();
} }
/// <summary>
/// Removes a label from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labelName">The name of the label to remove</param>
/// <returns></returns>
public IObservable<Unit> RemoveFromIssue(int repositoryId, int number, string labelName)
{
Ensure.ArgumentNotNullOrEmptyString(labelName, "labelName");
return _client.RemoveFromIssue(repositoryId, number, labelName).ToObservable();
}
/// <summary> /// <summary>
/// Replaces all labels on the specified issues with the provided labels /// Replaces all labels on the specified issues with the provided labels
/// </summary> /// </summary>
@@ -274,6 +464,25 @@ namespace Octokit.Reactive
.SelectMany(x => x); // HACK: PUT is not compatible with GetAndFlattenPages .SelectMany(x => x); // HACK: PUT is not compatible with GetAndFlattenPages
} }
/// <summary>
/// Replaces all labels on the specified issues with the provided labels
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to set</param>
/// <returns></returns>
public IObservable<Label> ReplaceAllForIssue(int repositoryId, int number, string[] labels)
{
Ensure.ArgumentNotNull(labels, "labels");
return _client.ReplaceAllForIssue(repositoryId, number, labels)
.ToObservable()
.SelectMany(x => x); // HACK: PUT is not compatible with GetAndFlattenPages
}
/// <summary> /// <summary>
/// Removes all labels from an issue /// Removes all labels from an issue
/// </summary> /// </summary>
@@ -291,5 +500,19 @@ namespace Octokit.Reactive
return _client.RemoveAllFromIssue(owner, name, number).ToObservable(); return _client.RemoveAllFromIssue(owner, name, number).ToObservable();
} }
/// <summary>
/// Removes all labels from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns></returns>
public IObservable<Unit> RemoveAllFromIssue(int repositoryId, int number)
{
return _client.RemoveAllFromIssue(repositoryId, number).ToObservable();
}
} }
} }

View File

@@ -18,6 +18,17 @@ namespace Octokit
/// <returns>The list of labels</returns> /// <returns>The list of labels</returns>
Task<IReadOnlyList<Label>> GetAllForIssue(string owner, string name, int number); Task<IReadOnlyList<Label>> GetAllForIssue(string owner, string name, int number);
/// <summary>
/// Gets all labels for the issue.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-labels-on-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns>The list of labels</returns>
Task<IReadOnlyList<Label>> GetAllForIssue(int repositoryId, int number);
/// <summary> /// <summary>
/// Gets all labels for the issue. /// Gets all labels for the issue.
/// </summary> /// </summary>
@@ -31,6 +42,18 @@ namespace Octokit
/// <returns>The list of labels</returns> /// <returns>The list of labels</returns>
Task<IReadOnlyList<Label>> GetAllForIssue(string owner, string name, int number, ApiOptions options); Task<IReadOnlyList<Label>> GetAllForIssue(string owner, string name, int number, ApiOptions options);
/// <summary>
/// Gets all labels for the issue.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-labels-on-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="options">Options for changing the API response</param>
/// <returns>The list of labels</returns>
Task<IReadOnlyList<Label>> GetAllForIssue(int repositoryId, int number, ApiOptions options);
/// <summary> /// <summary>
/// Gets all labels for the repository. /// Gets all labels for the repository.
/// </summary> /// </summary>
@@ -42,6 +65,16 @@ namespace Octokit
/// <returns>The list of labels</returns> /// <returns>The list of labels</returns>
Task<IReadOnlyList<Label>> GetAllForRepository(string owner, string name); Task<IReadOnlyList<Label>> GetAllForRepository(string owner, string name);
/// <summary>
/// Gets all labels for the repository.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <returns>The list of labels</returns>
Task<IReadOnlyList<Label>> GetAllForRepository(int repositoryId);
/// <summary> /// <summary>
/// Gets all labels for the repository. /// Gets all labels for the repository.
/// </summary> /// </summary>
@@ -54,6 +87,17 @@ namespace Octokit
/// <returns>The list of labels</returns> /// <returns>The list of labels</returns>
Task<IReadOnlyList<Label>> GetAllForRepository(string owner, string name, ApiOptions options); Task<IReadOnlyList<Label>> GetAllForRepository(string owner, string name, ApiOptions options);
/// <summary>
/// Gets all labels for the repository.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="options">Options for changing the API response</param>
/// <returns>The list of labels</returns>
Task<IReadOnlyList<Label>> GetAllForRepository(int repositoryId, ApiOptions options);
/// <summary> /// <summary>
/// Gets labels for every issue in a milestone /// Gets labels for every issue in a milestone
/// </summary> /// </summary>
@@ -66,6 +110,17 @@ namespace Octokit
/// <returns></returns> /// <returns></returns>
Task<IReadOnlyList<Label>> GetAllForMilestone(string owner, string name, int number); Task<IReadOnlyList<Label>> GetAllForMilestone(string owner, string name, int number);
/// <summary>
/// Gets labels for every issue in a milestone
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the milestone</param>
/// <returns></returns>
Task<IReadOnlyList<Label>> GetAllForMilestone(int repositoryId, int number);
/// <summary> /// <summary>
/// Gets labels for every issue in a milestone /// Gets labels for every issue in a milestone
/// </summary> /// </summary>
@@ -79,6 +134,18 @@ namespace Octokit
/// <returns></returns> /// <returns></returns>
Task<IReadOnlyList<Label>> GetAllForMilestone(string owner, string name, int number, ApiOptions options); Task<IReadOnlyList<Label>> GetAllForMilestone(string owner, string name, int number, ApiOptions options);
/// <summary>
/// Gets labels for every issue in a milestone
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the milestone</param>
/// <param name="options">Options for changing the API response</param>
/// <returns></returns>
Task<IReadOnlyList<Label>> GetAllForMilestone(int repositoryId, int number, ApiOptions options);
/// <summary> /// <summary>
/// Gets a single Label by name. /// Gets a single Label by name.
/// </summary> /// </summary>
@@ -93,6 +160,19 @@ namespace Octokit
Justification = "Method makes a network request")] Justification = "Method makes a network request")]
Task<Label> Get(string owner, string name, string labelName); Task<Label> Get(string owner, string name, string labelName);
/// <summary>
/// Gets a single Label by name.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-a-single-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <returns>The label</returns>
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "Get",
Justification = "Method makes a network request")]
Task<Label> Get(int repositoryId, string labelName);
/// <summary> /// <summary>
/// Deletes a label. /// Deletes a label.
/// </summary> /// </summary>
@@ -105,6 +185,17 @@ namespace Octokit
/// <returns></returns> /// <returns></returns>
Task Delete(string owner, string name, string labelName); Task Delete(string owner, string name, string labelName);
/// <summary>
/// Deletes a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#delete-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <returns></returns>
Task Delete(int repositoryId, string labelName);
/// <summary> /// <summary>
/// Creates a label. /// Creates a label.
/// </summary> /// </summary>
@@ -117,6 +208,17 @@ namespace Octokit
/// <returns>The created label</returns> /// <returns>The created label</returns>
Task<Label> Create(string owner, string name, NewLabel newLabel); Task<Label> Create(string owner, string name, NewLabel newLabel);
/// <summary>
/// Creates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#create-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="newLabel">The data for the label to be created</param>
/// <returns>The created label</returns>
Task<Label> Create(int repositoryId, NewLabel newLabel);
/// <summary> /// <summary>
/// Updates a label. /// Updates a label.
/// </summary> /// </summary>
@@ -130,6 +232,18 @@ namespace Octokit
/// <returns>The updated label</returns> /// <returns>The updated label</returns>
Task<Label> Update(string owner, string name, string labelName, LabelUpdate labelUpdate); Task<Label> Update(string owner, string name, string labelName, LabelUpdate labelUpdate);
/// <summary>
/// Updates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#update-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <param name="labelUpdate">The data for the label to be updated</param>
/// <returns>The updated label</returns>
Task<Label> Update(int repositoryId, string labelName, LabelUpdate labelUpdate);
/// <summary> /// <summary>
/// Adds a label to an issue /// Adds a label to an issue
/// </summary> /// </summary>
@@ -143,6 +257,18 @@ namespace Octokit
/// <returns></returns> /// <returns></returns>
Task<IReadOnlyList<Label>> AddToIssue(string owner, string name, int number, string[] labels); Task<IReadOnlyList<Label>> AddToIssue(string owner, string name, int number, string[] labels);
/// <summary>
/// Adds a label to an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#add-labels-to-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to add</param>
/// <returns></returns>
Task<IReadOnlyList<Label>> AddToIssue(int repositoryId, int number, string[] labels);
/// <summary> /// <summary>
/// Removes a label from an issue /// Removes a label from an issue
/// </summary> /// </summary>
@@ -156,6 +282,18 @@ namespace Octokit
/// <returns></returns> /// <returns></returns>
Task RemoveFromIssue(string owner, string name, int number, string labelName); Task RemoveFromIssue(string owner, string name, int number, string labelName);
/// <summary>
/// Removes a label from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labelName">The name of the label to remove</param>
/// <returns></returns>
Task RemoveFromIssue(int repositoryId, int number, string labelName);
/// <summary> /// <summary>
/// Replaces all labels on the specified issues with the provided labels /// Replaces all labels on the specified issues with the provided labels
/// </summary> /// </summary>
@@ -169,6 +307,18 @@ namespace Octokit
/// <returns></returns> /// <returns></returns>
Task<IReadOnlyList<Label>> ReplaceAllForIssue(string owner, string name, int number, string[] labels); Task<IReadOnlyList<Label>> ReplaceAllForIssue(string owner, string name, int number, string[] labels);
/// <summary>
/// Replaces all labels on the specified issues with the provided labels
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to set</param>
/// <returns></returns>
Task<IReadOnlyList<Label>> ReplaceAllForIssue(int repositoryId, int number, string[] labels);
/// <summary> /// <summary>
/// Removes all labels from an issue /// Removes all labels from an issue
/// </summary> /// </summary>
@@ -180,5 +330,16 @@ namespace Octokit
/// <param name="number">The number of the issue</param> /// <param name="number">The number of the issue</param>
/// <returns></returns> /// <returns></returns>
Task RemoveAllFromIssue(string owner, string name, int number); Task RemoveAllFromIssue(string owner, string name, int number);
/// <summary>
/// Removes all labels from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns></returns>
Task RemoveAllFromIssue(int repositoryId, int number);
} }
} }

View File

@@ -28,6 +28,20 @@ namespace Octokit
return GetAllForIssue(owner, name, number, ApiOptions.None); return GetAllForIssue(owner, name, number, ApiOptions.None);
} }
/// <summary>
/// Gets all labels for the issue.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-labels-on-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns>The list of labels</returns>
public Task<IReadOnlyList<Label>> GetAllForIssue(int repositoryId, int number)
{
return GetAllForIssue(repositoryId, number, ApiOptions.None);
}
/// <summary> /// <summary>
/// Gets all labels for the issue. /// Gets all labels for the issue.
/// </summary> /// </summary>
@@ -48,6 +62,23 @@ namespace Octokit
return ApiConnection.GetAll<Label>(ApiUrls.IssueLabels(owner, name, number), options); return ApiConnection.GetAll<Label>(ApiUrls.IssueLabels(owner, name, number), options);
} }
/// <summary>
/// Gets all labels for the issue.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-labels-on-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="options">Options for changing the API response</param>
/// <returns>The list of labels</returns>
public Task<IReadOnlyList<Label>> GetAllForIssue(int repositoryId, int number, ApiOptions options)
{
Ensure.ArgumentNotNull(options, "options");
return ApiConnection.GetAll<Label>(ApiUrls.IssueLabels(repositoryId, number), options);
}
/// <summary> /// <summary>
/// Gets all labels for the repository. /// Gets all labels for the repository.
/// </summary> /// </summary>
@@ -65,6 +96,19 @@ namespace Octokit
return GetAllForRepository(owner, name, ApiOptions.None); return GetAllForRepository(owner, name, ApiOptions.None);
} }
/// <summary>
/// Gets all labels for the repository.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <returns>The list of labels</returns>
public Task<IReadOnlyList<Label>> GetAllForRepository(int repositoryId)
{
return GetAllForRepository(repositoryId, ApiOptions.None);
}
/// <summary> /// <summary>
/// Gets all labels for the repository. /// Gets all labels for the repository.
/// </summary> /// </summary>
@@ -84,6 +128,22 @@ namespace Octokit
return ApiConnection.GetAll<Label>(ApiUrls.Labels(owner, name), options); return ApiConnection.GetAll<Label>(ApiUrls.Labels(owner, name), options);
} }
/// <summary>
/// Gets all labels for the repository.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="options">Options for changing the API response</param>
/// <returns>The list of labels</returns>
public Task<IReadOnlyList<Label>> GetAllForRepository(int repositoryId, ApiOptions options)
{
Ensure.ArgumentNotNull(options, "options");
return ApiConnection.GetAll<Label>(ApiUrls.Labels(repositoryId), options);
}
/// <summary> /// <summary>
/// Gets labels for every issue in a milestone /// Gets labels for every issue in a milestone
/// </summary> /// </summary>
@@ -102,6 +162,20 @@ namespace Octokit
return GetAllForMilestone(owner, name, number, ApiOptions.None); return GetAllForMilestone(owner, name, number, ApiOptions.None);
} }
/// <summary>
/// Gets labels for every issue in a milestone
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the milestone</param>
/// <returns></returns>
public Task<IReadOnlyList<Label>> GetAllForMilestone(int repositoryId, int number)
{
return GetAllForMilestone(repositoryId, number, ApiOptions.None);
}
/// <summary> /// <summary>
/// Gets labels for every issue in a milestone /// Gets labels for every issue in a milestone
/// </summary> /// </summary>
@@ -122,6 +196,23 @@ namespace Octokit
return ApiConnection.GetAll<Label>(ApiUrls.MilestoneLabels(owner, name, number), options); return ApiConnection.GetAll<Label>(ApiUrls.MilestoneLabels(owner, name, number), options);
} }
/// <summary>
/// Gets labels for every issue in a milestone
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the milestone</param>
/// <param name="options">Options for changing the API response</param>
/// <returns></returns>
public Task<IReadOnlyList<Label>> GetAllForMilestone(int repositoryId, int number, ApiOptions options)
{
Ensure.ArgumentNotNull(options, "options");
return ApiConnection.GetAll<Label>(ApiUrls.MilestoneLabels(repositoryId, number), options);
}
/// <summary> /// <summary>
/// Gets a single Label by name. /// Gets a single Label by name.
/// </summary> /// </summary>
@@ -141,6 +232,22 @@ namespace Octokit
return ApiConnection.Get<Label>(ApiUrls.Label(owner, name, labelName)); return ApiConnection.Get<Label>(ApiUrls.Label(owner, name, labelName));
} }
/// <summary>
/// Gets a single Label by name.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#get-a-single-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <returns>The label</returns>
public Task<Label> Get(int repositoryId, string labelName)
{
Ensure.ArgumentNotNullOrEmptyString(labelName, "labelName");
return ApiConnection.Get<Label>(ApiUrls.Label(repositoryId, labelName));
}
/// <summary> /// <summary>
/// Deletes a label. /// Deletes a label.
/// </summary> /// </summary>
@@ -160,6 +267,22 @@ namespace Octokit
return ApiConnection.Delete(ApiUrls.Label(owner, name, labelName)); return ApiConnection.Delete(ApiUrls.Label(owner, name, labelName));
} }
/// <summary>
/// Deletes a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#delete-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <returns></returns>
public Task Delete(int repositoryId, string labelName)
{
Ensure.ArgumentNotNullOrEmptyString(labelName, "labelName");
return ApiConnection.Delete(ApiUrls.Label(repositoryId, labelName));
}
/// <summary> /// <summary>
/// Creates a label. /// Creates a label.
/// </summary> /// </summary>
@@ -179,6 +302,22 @@ namespace Octokit
return ApiConnection.Post<Label>(ApiUrls.Labels(owner, name), newLabel); return ApiConnection.Post<Label>(ApiUrls.Labels(owner, name), newLabel);
} }
/// <summary>
/// Creates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#create-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="newLabel">The data for the label to be created</param>
/// <returns>The created label</returns>
public Task<Label> Create(int repositoryId, NewLabel newLabel)
{
Ensure.ArgumentNotNull(newLabel, "newLabel");
return ApiConnection.Post<Label>(ApiUrls.Labels(repositoryId), newLabel);
}
/// <summary> /// <summary>
/// Updates a label. /// Updates a label.
/// </summary> /// </summary>
@@ -200,6 +339,24 @@ namespace Octokit
return ApiConnection.Post<Label>(ApiUrls.Label(owner, name, labelName), labelUpdate); return ApiConnection.Post<Label>(ApiUrls.Label(owner, name, labelName), labelUpdate);
} }
/// <summary>
/// Updates a label.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#update-a-label">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="labelName">The name of the label</param>
/// <param name="labelUpdate">The data for the label to be updated</param>
/// <returns>The updated label</returns>
public Task<Label> Update(int repositoryId, string labelName, LabelUpdate labelUpdate)
{
Ensure.ArgumentNotNullOrEmptyString(labelName, "labelName");
Ensure.ArgumentNotNull(labelUpdate, "labelUpdate");
return ApiConnection.Post<Label>(ApiUrls.Label(repositoryId, labelName), labelUpdate);
}
/// <summary> /// <summary>
/// Adds a label to an issue /// Adds a label to an issue
/// </summary> /// </summary>
@@ -220,6 +377,23 @@ namespace Octokit
return ApiConnection.Post<IReadOnlyList<Label>>(ApiUrls.IssueLabels(owner, name, number), labels); return ApiConnection.Post<IReadOnlyList<Label>>(ApiUrls.IssueLabels(owner, name, number), labels);
} }
/// <summary>
/// Adds a label to an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#add-labels-to-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to add</param>
/// <returns></returns>
public Task<IReadOnlyList<Label>> AddToIssue(int repositoryId, int number, string[] labels)
{
Ensure.ArgumentNotNull(labels, "labels");
return ApiConnection.Post<IReadOnlyList<Label>>(ApiUrls.IssueLabels(repositoryId, number), labels);
}
/// <summary> /// <summary>
/// Removes a label from an issue /// Removes a label from an issue
/// </summary> /// </summary>
@@ -240,6 +414,23 @@ namespace Octokit
return ApiConnection.Delete(ApiUrls.IssueLabel(owner, name, number, labelName)); return ApiConnection.Delete(ApiUrls.IssueLabel(owner, name, number, labelName));
} }
/// <summary>
/// Removes a label from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labelName">The name of the label to remove</param>
/// <returns></returns>
public Task RemoveFromIssue(int repositoryId, int number, string labelName)
{
Ensure.ArgumentNotNullOrEmptyString(labelName, "labelName");
return ApiConnection.Delete(ApiUrls.IssueLabel(repositoryId, number, labelName));
}
/// <summary> /// <summary>
/// Replaces all labels on the specified issues with the provided labels /// Replaces all labels on the specified issues with the provided labels
/// </summary> /// </summary>
@@ -260,6 +451,23 @@ namespace Octokit
return ApiConnection.Put<IReadOnlyList<Label>>(ApiUrls.IssueLabels(owner, name, number), labels); return ApiConnection.Put<IReadOnlyList<Label>>(ApiUrls.IssueLabels(owner, name, number), labels);
} }
/// <summary>
/// Replaces all labels on the specified issues with the provided labels
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <param name="labels">The names of the labels to set</param>
/// <returns></returns>
public Task<IReadOnlyList<Label>> ReplaceAllForIssue(int repositoryId, int number, string[] labels)
{
Ensure.ArgumentNotNull(labels, "labels");
return ApiConnection.Put<IReadOnlyList<Label>>(ApiUrls.IssueLabels(repositoryId, number), labels);
}
/// <summary> /// <summary>
/// Removes all labels from an issue /// Removes all labels from an issue
/// </summary> /// </summary>
@@ -277,5 +485,19 @@ namespace Octokit
return ApiConnection.Delete(ApiUrls.IssueLabels(owner, name, number)); return ApiConnection.Delete(ApiUrls.IssueLabels(owner, name, number));
} }
/// <summary>
/// Removes all labels from an issue
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue">API documentation</a> for more information.
/// </remarks>
/// <param name="repositoryId">The ID of the repository</param>
/// <param name="number">The number of the issue</param>
/// <returns></returns>
public Task RemoveAllFromIssue(int repositoryId, int number)
{
return ApiConnection.Delete(ApiUrls.IssueLabels(repositoryId, number));
}
} }
} }