Skip to content
This repository has been archived by the owner on Feb 3, 2025. It is now read-only.

A GitHub Action that automatically generates and updates community planning based on milestones

Notifications You must be signed in to change notification settings

elliotxx/community-planning-updater

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Community Planning Updater

A GitHub Action that automatically generates and updates community planning based on milestones. It helps project maintainers track all milestone-related issues in one place with smart categorization and rich formatting.

⚠️ NOTE: The function of this Action has been merged to OSP Action to provide more and more powerful features! ✨

Features

  • 🎯 Auto-aggregates all issues linked to milestones
  • 📋 Creates a centralized discussion hub for each version
  • 🔄 Real-time updates when issues or milestones change
  • 🏷️ Smart categorization and sorting of issues
  • 📝 Rich formatting for better readability

Usage

  1. Create a workflow file (e.g., .github/workflows/community-planning-updater.yml):
name: Community Planning Updater

on:
  milestone:
    types: [created, edited, deleted]
  issues:
    types: [opened, edited, deleted, transferred, milestoned, demilestoned]

jobs:
  plan:
    runs-on: ubuntu-latest
    steps:
      - name: Update Planning
        uses: elliotxx/community-planning-updater@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          planning_label: planning
          categories: '["bug", "enhancement", "documentation"]'
  1. The action will automatically create a planning issue when a milestone or related issues are created/updated/closed:

    🔍 View a real example

# Release v1.0.0 Planning

## Overview
Progress: ███████░░░░░░░░░ 40%
- Total Issues: 5
- ✅ Completed: 2
- 🚧 In Progress: 3
- Due Date: 2025-12-31

## Description
This is our first major release with core features implemented.

## Tasks by Category

### bug (2)
- [x] #1 Fix login page crash (@user1) `bug`
- [ ] #4 Memory leak in dashboard (@user2) `bug`

### enhancement (2)
- [x] #2 Add user authentication (@user1) `enhancement`
- [ ] #3 Implement dashboard (@user3) `enhancement`

### documentation (1)
- [ ] #5 Write API documentation (@user2) `documentation`

## Contributors
Thanks to all our contributors for their efforts on completed issues:

- @user1

> 🤖 Auto-generated by [Community Planning Updater](https://github.com/marketplace/actions/community-planning-updater). DO NOT EDIT.
> Last Updated: 2025-01-13 21:20:34

Configuration

Inputs

Name Description Required Default
token GitHub token for API access Yes N/A
planning_label Label to identify planning issues No planning
categories Categories for issues (JSON array of strings) No ["bug", "documentation", "enhancement"]
exclude_pr Whether to exclude pull requests from the summary No true

Workflow Examples

  1. Basic Usage - Monitor milestone and issue changes:
name: Community Planning Updater
on:
  milestone:
    types: [created, edited, deleted]
  issues:
    types: [opened, edited, deleted, transferred, milestoned, demilestoned]
jobs:
  plan:
    runs-on: ubuntu-latest
    steps:
      - uses: elliotxx/community-planning-updater@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
  1. Custom Categories - Use your own issue categories:
name: Community Planning Updater
on:
  milestone:
    types: [created, edited, deleted]
  issues:
    types: [opened, edited, deleted, transferred, milestoned, demilestoned]
jobs:
  plan:
    runs-on: ubuntu-latest
    steps:
      - uses: elliotxx/community-planning-updater@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          categories: '["feature", "bug", "chore", "docs"]'
          exclude_pr: 'false'

How It Works

  1. When a milestone is created or updated:

    • The action checks if the milestone is open (closed milestones are skipped)
    • Creates a new planning issue or updates an existing one
    • Issues are categorized based on their labels
    • A summary is generated with progress information
  2. When an issue is updated:

    • If the issue belongs to an open milestone, the corresponding planning issue is updated
    • The summary reflects the latest state of all issues
    • No action is taken for issues in closed milestones
  3. Categories:

    • Issues are categorized based on their labels matching the category names
    • Issues without matching category labels go into "Uncategorized"
    • By default, uses GitHub's standard labels (bug, enhancement, documentation)

Limitations

  • ⚠️ Only processes open milestones

License

MIT