GitHub Projects Workflow
Learn how to use GitHub Projects for effective project management and collaboration.
- github projects
- agile
- project planning
GitHub Projects Workflow Workshop
This workshop will guide you through the process of setting up and using GitHub Projects for effective project management and collaboration. You’ll learn how to create a project, add tasks, link them to issues, and use different views to track progress.
Part 1: Understanding GitHub Projects
Step 1: What is GitHub Projects?
Despite its name, GitHub Projects is not tied to a single repository. It’s a project management tool that can be used across multiple repositories or even without any repository at all.
- GitHub Projects is a flexible tool for planning and tracking work.
- It can be used for various purposes, from software development to event planning.
- Projects are not automatically tied to repositories when created.
Step 2: Creating a GitHub Project
- Go to your GitHub profile or organization.
- Click on “Projects” in the top navigation bar.
- Click “New project”.
- Choose a template or start from scratch.
- Give your project a name and description.
Step 3: Managing Access
Like repositories, GitHub Projects can be public or private, and you need to manage access to them.
- Go to your newly created project.
- Click on the three dots (…) menu in the top right corner.
- Select “Settings”.
- Go to “Manage access”.
- Add collaborators as needed.
Part 2: Working with GitHub Projects
Step 1: Exploring Different Views
GitHub Projects offers different views to help you visualize your work:
- Board view: A Kanban-style board for task management.
- Table view: A spreadsheet-like view for detailed tracking.
- Roadmap view: A Gantt chart for timeline visualization.
Let’s explore each of these:
- In your project, click on the dropdown next to the current view name (likely “Board”).
- Select each view and observe how the information is presented differently.
Step 2: Creating Tasks (Tickets)
In the Board view:
- Click the “+ Add item” button at the bottom of a column.
- Type a title for your task.
- Press Enter to create the task.
Step 3: Converting Tasks to Issues
Converting a task to an issue allows for better traceability and automation.
Method 1: From the task detail
- Click on a task to open its details.
- Click on the “Convert to issue” button.
- Select the repository where you want to create the issue.
- Click “Create issue”.
Method 2: Using the three dots menu
- Click on the three dots (…) menu next to the task.
- Select “Convert to issue” from the dropdown menu.
Step 4: Assigning Tasks
- Click on a task to open its details.
- In the sidebar, click on “Assignees”.
- Select the team member you want to assign the task to.
Step 5: Using the Roadmap View
The Roadmap view helps in setting deadlines and visualizing the project timeline.
- Switch to the Roadmap view.
- Click and drag on a task to set its start and end dates.
- Observe how tasks are arranged on the timeline.
Part 3: Integrating with Repositories
Step 1: Linking a Project to a Repository
- Go to your repository on GitHub.
- Click on the “Projects” tab.
- Click “Link a project”.
- Select your project from the list.
Repeat these steps for each repository you want to link to the project. This allows you to:
- Track issues and pull requests from multiple repositories in one place
- Create cross-repository dependencies
- Get a holistic view of your entire project, even when the code is distributed across different repositories
Remember, you can link as many repositories as needed to a single project, making it easier to manage large, multi-component software projects.
Step 2: Managing Workflows
GitHub Projects allows you to manage automation workflows based on repository activity.
- In your project, go to “Settings” > “Workflows”.
- You’ll see a list of predefined workflows that you can enable or disable.
- To adjust a workflow, click on it to edit its settings. For example, make sure the workflow “When an issue is closed, set its status to Done” is enabled. (Note: This workflow may already be enabled by default in some project templates).