Ensure issue create fails fast if issues are disabled

Before, a person would be prompted for title & body before
unconditionally failing due to issues being disabled.
This commit is contained in:
Mislav Marohnić 2019-12-19 15:32:25 +01:00
parent 66534e504b
commit aeb7f337d2
2 changed files with 12 additions and 12 deletions

View file

@ -41,16 +41,8 @@ const fragments = `
}
`
func IssueCreate(client *Client, ghRepo Repo, params map[string]interface{}) (*Issue, error) {
repo, err := GitHubRepo(client, ghRepo)
if err != nil {
return nil, err
}
if !repo.HasIssuesEnabled {
return nil, fmt.Errorf("the '%s/%s' repository has disabled issues", ghRepo.RepoOwner(), ghRepo.RepoName())
}
// IssueCreate creates an issue in a GitHub repository
func IssueCreate(client *Client, repo *Repository, params map[string]interface{}) (*Issue, error) {
query := `
mutation CreateIssue($input: CreateIssueInput!) {
createIssue(input: $input) {
@ -76,7 +68,7 @@ func IssueCreate(client *Client, ghRepo Repo, params map[string]interface{}) (*I
}
}{}
err = client.GraphQL(query, variables, &result)
err := client.GraphQL(query, variables, &result)
if err != nil {
return nil, err
}

View file

@ -257,6 +257,14 @@ func issueCreate(cmd *cobra.Command, args []string) error {
return err
}
repo, err := api.GitHubRepo(apiClient, baseRepo)
if err != nil {
return err
}
if !repo.HasIssuesEnabled {
return fmt.Errorf("the '%s/%s' repository has disabled issues", baseRepo.RepoOwner(), baseRepo.RepoName())
}
title, err := cmd.Flags().GetString("title")
if err != nil {
return errors.Wrap(err, "could not parse title")
@ -291,7 +299,7 @@ func issueCreate(cmd *cobra.Command, args []string) error {
"body": body,
}
newIssue, err := api.IssueCreate(apiClient, baseRepo, params)
newIssue, err := api.IssueCreate(apiClient, repo, params)
if err != nil {
return err
}