In this hands-on lab you will practice to work with GitHub Issues, Discussions, and Pages. You will practice working with markdown, learn about issue templates and rendering markdown as a web page. The lab consists of the following parts:
Create an Issue and add markdown elements.
- Add headers
- Add lists and task lists
- Add images and video
- Use emojis
- Mention a person or team (using @)
- Add a syntax-highlighted code block
- Add a flow chart and try different variants
- Create and apply a label
Epic
to the issue - Add three tasks to the issue and convert them to issues
- Create a label
Feature
and mark the 3 issues with this label - Add two tasks to each feature and convert them to issues
- Mark them with the label
Story
(create a label first)(use bulk edit!)
Discussions are a great way to have a conversation in your team or with your users. In order to use discussions you need to enable discussions in your settings page.
- In your repository go to Settings
- In the General tab, scroll to features and enable discussions
-
Create an issue template for an Epic
-
Create a config.yml file in the
.github/ISSUE_TEMPLATE
folder -
In the config.yml file, disable blank issues
-
Add an additional URL that points to a new discussion
Solution
blank_issues_enabled: false contact_links: - name: 👥 Discussions url: https://github.com/<yourhandle>/<yourproject>/discussions/new about: Please use discussions for issues that are not a bug, enhancement or feature request
-
Add a template for a bug report (
.github/ISSUE_TEMPLATE/bug_report.md
) -
Assign bugs to yourself and add labels
bug
andunplanned
to bugs -
Prefix the title with
[Bug]:
and add some sample markdown.Solution
--- name: 🐞 Bug report about: Create a report to help us improve title: '[Bug]:' labels: [bug, unplanned] assignees: - <yourhandle> --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error
-
Add a custom template file
.github/ISSUE_TEMPLATE/custom.yml
-
Add a required input with a placeholder text and a label, a textarea, a single select dropdown, a multi select dropdown, and a checkbox
Solution
name: 💡 Custom Issue Form description: A custom form with different fields body: - type: input id: contact attributes: label: Contact Details description: How can we get in touch with you if we need more info? placeholder: ex. [email protected] validations: required: false - type: textarea id: what-happened attributes: label: What happened? description: Also tell us, what did you expect to happen? placeholder: Tell us what you see! value: "Tell us what you think" validations: required: true - type: dropdown id: version attributes: label: Version description: What version of our software are you running? options: - 1.0.2 (Default) - 1.0.3 (Edge) - 1.0.4 (Something) validations: required: true - type: dropdown id: browsers attributes: label: What browsers are you seeing the problem on? multiple: true options: - Firefox - Chrome - Safari - Microsoft Edge - type: checkboxes id: terms attributes: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com) options: - label: I agree to follow this project's Code of Conduct required: true
-
Verify your issue template and create a bug and an issue from the custom template
- Ask a question in discussions and answer it (mark it as answered)
- Create a poll
- Create an announcement
- Pin the question and the announcement to discussion
- See here for ideas
- Create a markdown file
index.md
hand add metadatalayout: home
amd some sample markdown
Solution
---
layout: home
---
This is the the homepage `index.md`
- Enable
Pages
in your repository (main
branch - folder/(root)
and see your new homepage
- Add a file
_config.yml
and configure pages to use theminima
theme.
Solution
title: GitHub Bootcamp
description: >-
This is is a sample Jekyll website that is hosted in GitHub Pages.
It is used in the `GitHub Bootcamp` workshop from @<yourhandle>
twitter_username: <your name>
github_username: <yourhandle>
theme: minima
markdown: kramdown