deleteIssue method

Future<void> deleteIssue(
  1. RepositorySlug slug,
  2. int issueNumber
)

Deletes an issue.

This uses the GraphQL API, since issue deletion is not available in the REST API.

API docs: https://docs.github.com/en/graphql/reference/mutations#deleteissue

Implementation

Future<void> deleteIssue(RepositorySlug slug, int issueNumber) async {
  final issue = await get(slug, issueNumber);
  final issueId = issue.nodeId;

  const mutation = r'''
    mutation DeleteIssue($issueId: ID!) {
      deleteIssue(input: {issueId: $issueId}) {
        clientMutationId
      }
    }
  ''';

  final result = await github.graphql.mutate(
    mutation,
    variables: {'issueId': issueId},
  );

  if (result.hasException) {
    throw result.exception!;
  }
}