Skip to content

Commit 88c4f41

Browse files
authored
Merge pull request #41 from xebia/5.1-Manage-your-work-with-GitHub-projects-v2
5.1 manage your work with GitHub projects v2
2 parents c9a5529 + 5319970 commit 88c4f41

File tree

14 files changed

+362
-15
lines changed

14 files changed

+362
-15
lines changed

learn-pr/github/github-actions-automate-tasks/1-introduction.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Introduction
44
metadata:
55
title: Introduction
66
description: An introduction to GitHub Actions and workflows.
7-
ms.date: 10/08/2024
7+
ms.date: 05/01/2025
88
author: juliakm
99
ms.author: jukullam
1010
ms.topic: unit

learn-pr/github/github-actions-automate-tasks/includes/2-github-actions-automate-development-tasks.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,56 @@ The last part of this workflow file sets the `MY_NAME` variable value for this w
156156

157157
For more information on workflow syntax, see [Workflow syntax for GitHub Actions](https://docs.github.com/actions/using-workflows/workflow-syntax-for-github-actions?azure-portal=true)
158158

159+
## Referencing Actions in Workflows
160+
161+
When creating workflows in GitHub Actions, you can reference actions from various sources. These actions can be used to automate tasks in your workflows. Below are the primary sources where workflows can reference actions:
162+
163+
1. **A published Docker container image on Docker Hub**
164+
Workflows can reference actions that are published as Docker container images on Docker Hub. These actions are containerized and include all dependencies required to execute the action. To use such an action, you specify the Docker image in the `uses` attribute of your workflow step. For example:
165+
```yml
166+
steps:
167+
- name: Run a Docker action
168+
uses: docker://<docker-image-name>:<tag>
169+
```
170+
171+
2. **Any public repository**
172+
Actions hosted in public repositories can be directly referenced in your workflows. These actions are accessible to anyone and can be used by specifying the repository name and version (Git ref, SHA, or tag) in the `uses` attribute. For example:
173+
```yml
174+
steps:
175+
- name: Use a public action
176+
uses: actions/checkout@v3
177+
```
178+
179+
[!IMPORTANT]
180+
> **For better security, use a full commit SHA when referencing actions—not just a tag like `@v3`.**
181+
> This makes sure your workflow always uses the exact same code, even if the action is updated or changed later.
182+
> Example: `uses: actions/checkout@c2c1744e079e0dd11c8e0af4a96064ca4f6a2e9e`
183+
184+
3. **The same repository as your workflow file**
185+
You can reference actions stored in the same repository as your workflow file. This is useful for custom actions that are specific to your project. To reference such actions, use a relative path to the action's directory. For example:
186+
```yml
187+
steps:
188+
- name: Use a local action
189+
uses: ./path-to-action
190+
```
191+
192+
For more details, see [security hardening guidance for GitHub Actions](https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions#using-third-party-actions).
193+
194+
4. **An enterprise marketplace**
195+
If your organization uses GitHub Enterprise, you can reference actions from your enterprise's private marketplace. These actions are curated and managed by your organization, ensuring compliance with internal standards. For example:
196+
```yml
197+
steps:
198+
- name: Use an enterprise marketplace action
199+
uses: enterprise-org/action-name@v1
200+
```
201+
202+
### Additional Notes
203+
- Actions in private repositories can also be referenced, but they require proper authentication and permissions.
204+
- When referencing actions, always specify a version (Git ref, SHA, or tag) to ensure consistency and avoid unexpected changes.
205+
206+
For more information, see [Referencing actions in workflows](https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions).
207+
208+
159209
## GitHub-hosted versus self-hosted runners
160210

161211
We briefly mentioned runners as being associated with a job. A runner is simply a server that has the GitHub Actions runner application installed. In the previous workflow example, there was a `runs-on: ubuntu-latest` attribute within the jobs block, which told the workflow that the job is going to run using the GitHub-hosted runner that's running in the `ubuntu-latest` environment.

learn-pr/github/introduction-to-github/includes/2-what-is-github.md

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,47 @@ Congratulations, you just created a new file in your repository! You have also c
120120

121121
Before we review branches and commits in the next unit, let’s quickly review gists, wikis, and GitHub pages because they're similar to repositories.
122122

123-
### What are gists
123+
### What are gists?
124124

125-
Now that we have a good understanding of repositories, we can review gists. Similarly to repositories, gists are a simplified way to share code snippets with others.
125+
Gists are a feature of GitHub that allows users to share code snippets, notes, or other small pieces of information in a lightweight and convenient way. They are essentially mini Git repositories, which means you can fork, clone, and version-control them just like a full repository. Gists are particularly useful for sharing quick solutions, configuration files, or examples without the need to create a full repository.
126126

127-
Every gist is a Git repository, which you can fork and clone and be made either public or secret. Public gists are displayed publicly where people can browse new ones as they’re created. Public gists are also searchable. Conversely, secret gists aren't searchable, but they aren’t entirely private. If you send the URL of a secret gist to a friend, they'll be able to see it.
127+
#### Key Features of Gists:
128+
1. **Public and Secret Gists**:
129+
- **Public Gists**: These are visible to everyone and can be discovered through GitHub's search functionality. They are ideal for sharing code snippets or solutions that you want to make available to the broader community.
130+
- **Secret Gists**: These are not searchable or publicly listed, but they are not entirely private. Anyone with the URL can access them. They are useful for sharing code with a limited audience, such as collaborators or friends.
131+
132+
2. **Version Control**:
133+
- Every change made to a gist is tracked, allowing you to view the history of edits. This makes it easy to revert to a previous version or see how the snippet has evolved over time.
134+
135+
3. **Forking and Cloning**:
136+
- Like repositories, gists can be forked and cloned. This allows others to build upon your work or adapt it to their needs.
137+
138+
4. **Embedding**:
139+
- Gists can be embedded into websites or blogs, making them a great tool for sharing code examples in tutorials or documentation.
140+
141+
5. **Markdown Support**:
142+
- Gists support Markdown formatting, which means you can include rich text, headings, links, and even images alongside your code. This is particularly useful for adding context or explanations to your snippets.
143+
- Code blocks are automatically rendered with syntax highlighting, making your snippets easy to read.
144+
145+
6. **Collaboration**:
146+
- While gists are typically used for individual snippets, they can also be shared and collaborated on by multiple users. Forking and commenting on gists enable lightweight collaboration.
147+
148+
#### Use Cases for Gists:
149+
- Sharing quick code examples or solutions.
150+
- Storing configuration files or scripts for personal use.
151+
- Creating templates for commonly used code patterns.
152+
- Sharing error logs or debugging information with others.
153+
- Embedding code snippets in blogs, forums, or documentation.
154+
155+
[!IMPORTANT]
156+
> **Never use gists to store sensitive or confidential data, such as passwords, secrets, or API keys—even in scripts or config files.**
157+
> Gists are not fully private: even secret gists can be accessed by anyone with the link. Always review your content carefully before sharing.
158+
159+
#### Limitations of Gists:
160+
- Gists are not entirely private, even if marked as secret. Anyone with the URL can access them, so they should not be used for sensitive or confidential information.
161+
- They are best suited for small snippets or single files. For larger projects or multi-file structures, a full repository is more appropriate.
162+
163+
To learn more about how to create and manage gists, refer to the GitHub documentation in the Resources section of this module or visit the [GitHub Gists documentation](https://docs.github.com/en/github/writing-on-github/creating-gists).
128164

129165
### Forking and cloning gists
130166

learn-pr/github/manage-innersource-program-github/includes/2-manage-innersource-program.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,18 @@ A README file communicates expectations for your project and helps you manage co
6767
- Include references to the projects on which you depend. These references are a good way to promote the work of others.
6868
- Use Markdown to guide readers through properly formatted content.
6969

70-
If you put your README file in your repository's root directory, or in the hidden `.github` or `docs` directory, GitHub recognizes and automatically surfaces your README to repository visitors. If a repository contains more than one README file, then the file shown is chosen from locations in the following order: the `.github` directory, then the repository's root directory, and finally the `docs` directory.
70+
If you put your README.md file in your repository's root directory, or in the hidden `.github` or `docs` directory, GitHub recognizes and automatically surfaces your README to repository visitors. If a repository contains more than one README file, then the file shown is chosen from locations in the following order:
71+
1. The `.github` directory
72+
2. The repository's root directory
73+
3. The `docs` directory
7174

7275
Check out some [Awesome README examples](https://github.com/matiassingers/awesome-readme?azure-portal=true).
7376

7477
Once the project launches, use email and other networking channels to promote it. Reaching an appropriate audience could produce a significant boost in project participation.
7578

79+
[Learn more about README files in the GitHub documentation.](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes)
80+
81+
7682
### Manage projects on GitHub
7783

7884
As projects gain traction, the influx of users and contributions can require lots of work to manage. Depending on the project, a significant amount of work might be required just to manage the expectations of project participants.

learn-pr/github/manage-work-github-projects/7-knowledge-check.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,25 @@ quiz:
6969
- content: "Danger zone"
7070
isCorrect: true
7171
explanation: "Correct!"
72+
- content: "What is the benefit of converting checklist items into sub-issues?"
73+
choices:
74+
- content: "It allows you to embed a checklist within an issue."
75+
isCorrect: false
76+
explanation: "Checklists are already supported in issues. Converting items creates trackable sub-issues."
77+
- content: "It turns checklist items into standalone issues with status and metadata."
78+
isCorrect: true
79+
explanation: "Sub-issues appear as separate items with their own tracking in Projects."
80+
- content: "It automatically resolves the parent issue."
81+
isCorrect: false
82+
explanation: "Sub-issues are linked but don't auto-close the parent issue."
83+
- content: "Where can you go to enable default workflows for a Project?"
84+
choices:
85+
- content: "In the Project's README editor"
86+
isCorrect: false
87+
explanation: "README is for documentation, not automation."
88+
- content: "From the three-dot menu in the top-right of your Project"
89+
isCorrect: true
90+
explanation: "The three-dot menu contains the Workflows option where default automation can be configured."
91+
- content: "Under repository settings"
92+
isCorrect: false
93+
explanation: "Project workflows are configured within the Project view itself, not the repo settings."

learn-pr/github/manage-work-github-projects/includes/1-introduction.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ Learning objectives:
1111
- Understand how to organize your Project
1212
- Gain insight on how to edit the visibility, access, and management of your Project
1313
- Know how to develop automation and insights from your Project
14+
- Understand project layout options such as boards, lists, and timeline views
15+
- Learn how to convert checklist items into sub-issues
1416

1517
Prerequisites:
1618

learn-pr/github/manage-work-github-projects/includes/3-how-to-create-project.md

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
Imagine you want to organize your team's feature backlog. Projects, GitHub's built-in program-management tool, is a perfect way to organize and prioritize your team's work in a single space.
1+
GitHub Projects is a powerful planning and tracking tool that gives your team flexible views—like tables, boards, and timelines—to organize your work and see the bigger picture.
2+
3+
Imagine you want to manage your team’s feature backlog in one place. This built-in tool makes it easy to organize, prioritize, and track everything in a single view.
24

35
In this unit, you learn how to:
46

57
- Create a Project.
68
- Set the name, description, and README of your Project.
79
- Add issues and pull requests to your Project.
810

9-
## Creating an organization-level Project
11+
## Creating an organization-owned Project
1012

1113
First, you want to lay the foundation by creating a new Project. Creating is relatively quick and simple.
1214

@@ -24,7 +26,10 @@ First, you want to lay the foundation by creating a new Project. Creating is rel
2426

2527
You just created a Project!
2628

27-
You can also create a personal Project by selecting your profile photo and navigating to **Your projects**. Once you're on your Projects page, select the green button titled **New project**.
29+
> [!TIP]
30+
> You can also create a personal Project by selecting your profile photo and navigating to **Your projects**, then clicking **New project**.
31+
> Additionally, Projects can be created directly from a repository—this links the repository to the Project automatically, though the Project itself is still created at the organization level and can be linked to other repositories or projects in the future.
32+
2833

2934
## Set your Project's name, description, and README
3035

@@ -78,4 +83,29 @@ You can bulk add issues and pull requests to an existing repository to save time
7883

7984
1. Once you're ready to add the issues and pull requests to your Project, select the green button titled **Add selected items** in the bottom right corner.
8085

86+
## Project workflows
87+
88+
To help streamline work, GitHub Projects supports **default workflows**. These allow items like issues and pull requests to be automatically added to a Project and marked with an initial status, like "Todo".
89+
90+
To enable a workflow:
91+
92+
1. Open your Project.
93+
2. Select the three-dot menu in the top-right and choose **Workflows**.
94+
3. Choose a trigger like “Item added to project”.
95+
4. Set values, such as **Status: Todo**.
96+
5. Select **Save and turn on workflow**.
97+
98+
## Convert checklist items into sub-issues
99+
100+
As of February 2025, GitHub Projects supports converting checklist items into sub-issues. This feature makes it easier to break down tasks into smaller, trackable work items—directly from an issue.
101+
102+
To convert a checklist item:
103+
104+
1. Create or open an issue that contains a checklist.
105+
2. Hover over the checklist item.
106+
3. Click the **...** menu next to the item.
107+
4. Select **Convert to sub-issue**.
108+
109+
This creates a linked issue that appears in your Projects view with its own status, metadata, and tracking. Sub-issues provide better visibility into related work and replace the older tasklist block feature, which was deprecated on April 30, 2025.
110+
81111
In the next unit, you'll learn how to organize and prioritize your Project in order to keep your tasks on track.

learn-pr/github/manage-work-github-projects/includes/4-how-to-organize-your-project.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,15 @@ Let's walk through how to get your board view up and running.
8383
Now, you can drag and drop issues and pull requests to the various columns.
8484

8585
:::image type="content" source="../media/4-project-boards.png" alt-text="Screenshot example of a Project board with four columns labeled; no status, todo, in-progress, done.":::
86+
87+
## Project workflows
88+
89+
To automate common actions, GitHub Projects includes built-in workflows that help organize and update project items automatically.
90+
91+
For example, when a new issue is added to your Project, a default workflow can set its status to "Todo". Here's how to enable a workflow:
92+
93+
1. Open your Project.
94+
2. Select the **** menu in the top-right and choose **Workflows**.
95+
3. Select a trigger (e.g., "Item added to project").
96+
4. Configure values like **Status: Todo**.
97+
5. Click **Save and turn on workflow**.

learn-pr/github/manage-work-github-projects/includes/5-how-to-organize-automate-project.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,18 @@ To change your Project's visibility:
2727

2828
### Manage access to your Project
2929

30-
Access to your Project depends on if your Project is an organization-level Project or a personal/user-level Project. Managing access is similar between the two levels.
30+
Access to your Project depends on if your Project is an organization-owned Project or a personal/user-owned Project. Managing access is similar between the two levels.
3131

32-
Admins of organization-level Projects can manage access for the entire organization, for teams, for individual organization members, and for outside collaborators. Admins of user-level Projects can invite individual collaborators and manage their access.
32+
Admins of organization-owned Projects can manage access for the entire organization, for teams, for individual organization members, and for outside collaborators. Admins of user-owned Projects can invite individual collaborators and manage their access.
3333

34-
#### Organization-level Project
34+
#### Organization-owned Project
3535

3636
- **No access**: Only organization owners and users granted individual access can see the Project. Organization owners are also admins for the Project.
3737
- **Read**: Everyone in the organization can see the Project. Organization owners are also admins for the Project.
3838
- **Write**: Everyone in the organization can see and edit the Project. Organization owners are also admins for the Project.
3939
- **Admin**: Everyone in the organization is an admin for the Project.
4040

41-
#### Personal/User-level Project
41+
#### Personal/User-owned Project
4242

4343
- **Read**: The individual can view the Project.
4444
- **Write**: The individual can view and edit the Project.
@@ -102,4 +102,16 @@ Here are steps on how to navigate to them:
102102

103103
:::image type="content" source="../media/5-danger-zone-options.png" alt-text="Screenshot of the Danger zone section with the option to change visibility, close Project and delete Project with delete Project highlighted.":::
104104

105+
## Converting checklist items to sub-issues
106+
107+
GitHub Projects now supports converting checklist items into sub-issues for better task tracking and hierarchy.
108+
109+
To use this feature:
110+
111+
1. Open any issue that includes a checklist.
112+
2. Hover over a checklist item and click the **...** (more options) button.
113+
3. Select **Convert to sub-issue**.
114+
115+
This creates a dedicated issue linked back to the original one, which will also appear in your Projects view for tracking.
116+
105117
Next up, we'll review insights and automation in Projects.

learn-pr/github/manage-work-github-projects/includes/6-insight-automation-with-projects.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,6 @@ Learn more about automating workflows for your Project in the article *Automatin
8787

8888
### GraphQL API
8989

90-
If you're using GraphQL in GitHub, you can utilize an API to help automate your Project. For more information on using GraphQL API, see the article, *Using the API to Manage Projects* at the end of this module.
90+
If you're using GraphQL in GitHub, you can utilize this API to develop automation for your Project. For more information on using GraphQL API, see the article, *Using the API to Manage Projects* at the end of this module.
91+
92+

0 commit comments

Comments
 (0)