You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用github-create-issue与Node.js批量创建GitHub Issue?

Bulk GitHub Issue Creation with github-create-issue

Nice call using github-create-issue to automate your GitHub Issue workflow—manual creation would be a total drag when you've got tons of issues to make! Let's tweak your code to handle bulk creation smoothly.

First, organize all your issue details in an array so you can easily manage and scale the list:

const createIssue = require('github-create-issue');
// Pro tip: Store your token in an environment variable instead of hardcoding it!
const opts = { 'token': process.env.GITHUB_TOKEN || 'abcMYabcTOKEN!' };

// Define all the issues you want to create
const bulkIssues = [
  {
    repo: 'noevazz/python_intro',
    title: 'Big bug.',
    body: 'Detailed description of where the bug occurs and what it does.' // Optional but helpful for context
  },
  {
    repo: 'noevazz/python_intro',
    title: 'Feature request: Add more practice exercises',
    body: 'Users have requested additional hands-on exercises to reinforce learning.'
  },
  {
    repo: 'noevazz/python_intro',
    title: 'Update outdated documentation',
    body: 'Some sections of the README reference deprecated Python syntax.'
  }
  // Add as many issues as you need here
];

Next, let's wrap the callback-based function in a Promise to make async bulk handling cleaner. We can then use Promise.all to process multiple issues at once, or switch to sequential processing if you need to avoid hitting GitHub's rate limits:

// Convert the callback function to a Promise for easier async management
function createSingleIssue(repo, title, opts, body = '') {
  return new Promise((resolve, reject) => {
    createIssue(repo, title, { ...opts, body }, (error, issue, info) => {
      if (error) {
        reject(error);
      } else {
        resolve({ issue, info });
      }
    });
  });
}

// Function to handle bulk creation
async function createBulkIssues() {
  try {
    console.log('Starting bulk issue creation...');
    
    // Process all issues in parallel (fast, but watch rate limits)
    const results = await Promise.all(
      bulkIssues.map(issue => 
        createSingleIssue(issue.repo, issue.title, opts, issue.body)
      )
    );
    
    // Log successful creations
    results.forEach((result, index) => {
      console.log(`✅ Created issue #${result.issue.number}: ${bulkIssues[index].title}`);
    });
    console.log('All issues created successfully!');
  } catch (error) {
    console.error('❌ Error creating issues:', error.message);
    // If you want to handle partial failures, you can adjust this to log which issue failed
  }
}

// Kick off the bulk creation
createBulkIssues();

Important Tips for Smooth Execution:

  • Token Security: Never commit your GitHub token to version control! Use environment variables (like process.env.GITHUB_TOKEN) to keep it secure.
  • Rate Limits: GitHub allows 5000 API requests per hour for authenticated users. If you're creating hundreds of issues, consider adding a small delay between requests (using setTimeout in a sequential loop) to avoid hitting limits.
  • Error Resilience: For production use, add retries for transient errors (like network blips) using a library like p-retry to make your script more robust.
  • Extra Features: You can add labels, assignees, or milestones to your issues by including them in the opts object—check the package's docs for all supported parameters.

内容的提问来源于stack exchange,提问作者noe vaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:38:39