├── .github ├── ISSUE_TEMPLATE │ ├── bug.yml │ ├── feature_request.yml │ └── other.yml ├── pull_request_template.md └── workflows │ ├── community.yml │ ├── labels.yml │ ├── release.yml │ └── stale.yml ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── action.yml ├── labels.json └── package.json /.github/ISSUE_TEMPLATE/bug.yml: -------------------------------------------------------------------------------- 1 | name: Bug report 2 | description: Create a bug report to help us address errors in the repository 3 | title: "[BUG] " 4 | labels: [bug] 5 | body: 6 | - type: input 7 | id: bugdescription 8 | attributes: 9 | label: Description of the bug 10 | validations: 11 | required: true 12 | - type: input 13 | id: stack 14 | attributes: 15 | label: Project stack or language (e.g. front-end) 16 | validations: 17 | required: true 18 | - type: input 19 | id: workingenvironment 20 | attributes: 21 | label: Working Environment (e.g. operating system, browser, device) 22 | validations: 23 | required: true 24 | - type: textarea 25 | id: screenshots 26 | attributes: 27 | label: Please add screenshots (if applicable) 28 | validations: 29 | required: false 30 | - type: input 31 | id: context 32 | attributes: 33 | label: Add any other context about the problem here 34 | validations: 35 | required: false 36 | - type: markdown 37 | attributes: 38 | value: | 39 | You can also join the Discord community [here](http://discord.eddiehub.org) 40 | Feel free to check out other cool repositories of the EddieHub Community [here](https://github.com/EddieHubCommunity) 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: Feature Request 2 | description: Request a feature that enhances the project 3 | title: '[FEATURE] ' 4 | labels: ["✨ goal: improvement"] 5 | body: 6 | - type: textarea 7 | id: description 8 | attributes: 9 | label: Description of the feature 10 | description: A brief description of the feature, and why is it necessary 11 | validations: 12 | required: true 13 | - type: input 14 | id: priority 15 | attributes: 16 | label: Priority 17 | description: How important / urgent is this feature? 18 | validations: 19 | required: false 20 | - type: textarea 21 | id: screenshots 22 | attributes: 23 | label: Screenshots 24 | description: Provide screenshots if applicable 25 | validations: 26 | required: false 27 | - type: textarea 28 | id: extrainfo 29 | attributes: 30 | label: Additional context 31 | description: Add any other context about the problem here. 32 | validations: 33 | required: false 34 | - type: markdown 35 | attributes: 36 | value: | 37 | You can also join the Discord community [here](http://discord.eddiehub.org) 38 | Feel free to check out other cool repositories of the EddieHub Community [here](https://github.com/EddieHubCommunity) 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/other.yml: -------------------------------------------------------------------------------- 1 | name: Other 2 | description: Use this for any other issues. PLEASE do not create blank issues 3 | title: "[OTHER] " 4 | labels: ["🚦 status: awaiting triage" ] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: "# Other issue" 9 | - type: textarea 10 | id: issuedescription 11 | attributes: 12 | label: What would you like to share? 13 | description: Provide a clear and concise explanation of your issue. 14 | validations: 15 | required: true 16 | - type: textarea 17 | id: extrainfo 18 | attributes: 19 | label: Additional information 20 | description: Is there anything else we should know about this issue? 21 | validations: 22 | required: false 23 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 2 | Fixes # 3 | 4 | ## Proposed Changes 5 | 6 | - 7 | - 8 | - 9 | 10 | 11 | ## Screenshots 12 | -------------------------------------------------------------------------------- /.github/workflows/community.yml: -------------------------------------------------------------------------------- 1 | on: 2 | fork: 3 | push: 4 | branches: [ main ] 5 | issues: 6 | types: [ opened ] 7 | issue_comment: 8 | types: [ created ] 9 | pull_request_target: 10 | types: [ opened ] 11 | pull_request_review_comment: 12 | types: [ created ] 13 | 14 | jobs: 15 | 16 | welcome: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - uses: actions/checkout@v1 20 | - uses: EddieHubCommunity/gh-action-community/src/welcome@main 21 | with: 22 | github-token: ${{ secrets.GITHUB_TOKEN }} 23 | issue-message: '

It''s great having you contribute to this project

Welcome to the community :nerd_face:' 24 | pr-message: '

It''s great having you contribute to this project

Welcome to the community :nerd_face:' 25 | footer: 'If you would like to continue contributing to open source and would like to do it with an awesome inclusive community, you should join our Discord chat and our GitHub Organisation - we help and encourage each other to contribute to open source little and often 🤓 . Any questions let us know.' 26 | 27 | statistics: 28 | runs-on: ubuntu-latest 29 | steps: 30 | - uses: actions/checkout@v1 31 | - uses: EddieHubCommunity/gh-action-community/src/statistics@main 32 | with: 33 | firebase-key: ${{ secrets.FIREBASE_KEY }} 34 | -------------------------------------------------------------------------------- /.github/workflows/labels.yml: -------------------------------------------------------------------------------- 1 | name: Import open source standard labels 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | 7 | jobs: 8 | labels: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/setup-node@v2 14 | with: 15 | node-version: '14' 16 | - uses: EddieHubCommunity/gh-action-open-source-labels@main 17 | with: 18 | github-token: ${{ secrets.GITHUB_TOKEN }} 19 | owner-name: 'EddieHubCommunity' 20 | repository-name: 'gh-action-open-source-labels' 21 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Changelog 2 | on: 3 | push: 4 | branches: 5 | - main 6 | 7 | jobs: 8 | changelog: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: actions/checkout@v2 13 | 14 | - name: Conventional Changelog Action 15 | id: changelog 16 | uses: TriPSs/conventional-changelog-action@v3 17 | with: 18 | github-token: ${{ secrets.GITHUB_TOKEN }} 19 | output-file: "false" 20 | 21 | - name: Create Release 22 | uses: actions/create-release@v1 23 | if: ${{ steps.changelog.outputs.skipped == 'false' }} 24 | env: 25 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 26 | with: 27 | tag_name: ${{ steps.changelog.outputs.tag }} 28 | release_name: ${{ steps.changelog.outputs.tag }} 29 | body: ${{ steps.changelog.outputs.clean_changelog }} 30 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: Mark stale issues and pull requests 2 | 3 | on: 4 | schedule: 5 | - cron: "30 1 * * *" 6 | 7 | jobs: 8 | stale: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/stale@v1 14 | with: 15 | repo-token: ${{ secrets.GITHUB_TOKEN }} 16 | stale-issue-message: 'Stale issue message' 17 | stale-pr-message: 'Stale pull request message' 18 | stale-issue-label: 'no-issue-activity' 19 | stale-pr-label: 'no-pr-activity' 20 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, caste, color, religion, or sexual 10 | identity and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | - Demonstrating empathy and kindness toward other people 21 | - Being respectful of differing opinions, viewpoints, and experiences 22 | - Giving and gracefully accepting constructive feedback 23 | - Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | - Focusing on what is best not just for us as individuals, but for the overall 26 | community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | - The use of sexualized language or imagery, and sexual attention or advances of 31 | any kind 32 | - Trolling, insulting or derogatory comments, and personal or political attacks 33 | - Public or private harassment 34 | - Publishing others' private information, such as a physical or email address, 35 | without their explicit permission 36 | - Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Project Maintainers are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Project Maintainers have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported (this can be done anonymously) to the Project Maintainers responsible for enforcement at http://eddiejaoude.io/contact. 63 | All complaints will be reviewed and investigated promptly and fairly. 64 | 65 | All Project Maintainers are obligated to respect the privacy and security of the 66 | reporter of any incident. 67 | 68 | ## Enforcement Guidelines 69 | 70 | Project Maintainers will follow these Guidelines in determining 71 | the consequences for any action they deem in violation of this Code of Conduct: 72 | 73 | ### 1. Correction 74 | 75 | **Community Impact**: Use of inappropriate language or other behavior deemed 76 | unprofessional or unwelcome in the community. 77 | 78 | **Consequence**: A private, written warning from Project Maintainers, providing 79 | clarity around the nature of the violation and an explanation of why the 80 | behavior was inappropriate. A public apology may be requested. 81 | 82 | ### 2. Warning 83 | 84 | **Community Impact**: A violation through a single incident or series of 85 | actions. 86 | 87 | **Consequence**: A warning with consequences for continued behavior. No 88 | interaction with the people involved, including unsolicited interaction with 89 | those enforcing the Code of Conduct, for a specified period of time. This 90 | includes avoiding interactions in community spaces as well as external channels 91 | like social media. Violating these terms may lead to a temporary or permanent 92 | ban. 93 | 94 | ### 3. Temporary Ban 95 | 96 | **Community Impact**: A serious violation of community standards, including 97 | sustained inappropriate behavior. 98 | 99 | **Consequence**: A temporary ban from any sort of interaction or public 100 | communication with the community for a specified period of time. No public or 101 | private interaction with the people involved, including unsolicited interaction 102 | with those enforcing the Code of Conduct, is allowed during this period. 103 | Violating these terms may lead to a permanent ban. 104 | 105 | ### 4. Permanent Ban 106 | 107 | **Community Impact**: Demonstrating a pattern of violation of community 108 | standards, including sustained inappropriate behavior, harassment of an 109 | individual, or aggression toward or disparagement of classes of individuals. 110 | 111 | **Consequence**: A permanent ban from any sort of public interaction within the 112 | community. 113 | 114 | ## Attribution 115 | 116 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 117 | version 2.1, available at 118 | [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 119 | 120 | Community Impact Guidelines were inspired by 121 | [Mozilla's code of conduct enforcement ladder][mozilla coc]. 122 | 123 | For answers to common questions about this code of conduct, see the FAQ at 124 | [https://www.contributor-covenant.org/faq][faq]. Translations are available at 125 | [https://www.contributor-covenant.org/translations][translations]. 126 | 127 | [homepage]: https://www.contributor-covenant.org 128 | [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 129 | [mozilla coc]: https://github.com/mozilla/diversity 130 | [faq]: https://www.contributor-covenant.org/faq 131 | [translations]: https://www.contributor-covenant.org/translations 132 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 EddieHub Community 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Open Source issue labels generator 2 | 3 | A GitHub action that generates the labels you want (customizable name and color) in any repository, easy and efficient. 4 | 5 | ![screenshot](https://user-images.githubusercontent.com/624760/113267767-9e331c00-92ce-11eb-8e47-efb02d3c7fa2.png) 6 | 7 | ## Usage 8 | 9 | To use this Action, you only need the yaml file below. 10 | 11 | ```yaml 12 | name: Import open source standard labels 13 | 14 | on: 15 | push: 16 | branches: [ main ] 17 | 18 | jobs: 19 | labels: 20 | 21 | runs-on: ubuntu-latest 22 | 23 | steps: 24 | - uses: actions/setup-node@v2 25 | with: 26 | node-version: '14' 27 | - uses: EddieHubCommunity/gh-action-open-source-labels@main 28 | with: 29 | github-token: ${{ secrets.GITHUB_TOKEN }} 30 | owner-name: ${{ github.repository_owner }} 31 | repository-name: ${{ github.event.repository.name }} 32 | # force: true # optional to clear existing labels, default to true 33 | ``` 34 | 35 | ## Label standards 36 | 37 | > To facilitate the community in finding ways to contribute that match their experiences and skillsets, we have developed a comprehensive system for labelling issues and PRs. This is an introduction to this standard labelling scheme. 38 | 39 | > Labels consist of three fields, viz. name, description and color. Label names should have a consistent format to aid both filtering within the github UI as well as scanning visually through the list. The following format is the most suited to this task (where ⎵ denotes a single space): 40 | 41 | ``` 42 | :⎵ 43 | ``` 44 | 45 | Using the label convention from https://opensource.creativecommons.org/contributing-code/repo-labels/ 46 | 47 | ## Contributing to this project 48 | 49 | To add a new label, update the `labels.json` file and the GitHub Action will do the rest for everyone! 50 | 51 | ```json 52 | [ 53 | { 54 | "name": "good first issue", 55 | "color": "7f0799" 56 | }, 57 | { 58 | "name": "💬 talk: discussion", 59 | "color": "f9bbe5" 60 | } 61 | ] 62 | ``` 63 | 64 | > This example shows two common ways to add a label. One without emoji and the other with emoji. The preferred way is using emojis at the beginning, but there are also some labels which are commonly used without emojis. 65 | 66 | ## Socials 67 | 68 | Join our Discord community [here](http://discord.eddiehub.org) 69 | Subscribe our YouTube channel [here](https://www.youtube.com/user/eddiejaoude) 70 | 71 | ## Our Pledge 72 | 73 | We take participation in our community as a harassment-free experience for everyone and we pledge to act in ways to contribute to an open, welcoming, diverse and inclusive community. 74 | 75 | If you have experienced or been made aware of unacceptable behaviour, please remember that you can report this. Read our [Code of Conduct](https://github.com/EddieHubCommunity/gh-action-open-source-labels/blob/main/CODE_OF_CONDUCT.md). 76 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: 'EddieHubCommunity labels Action' 2 | description: 'Import open source issue labels standards' 3 | inputs: 4 | github-token: 5 | description: 'GitHub token for repo' 6 | required: true 7 | owner-name: 8 | description: 'Owner name is user or organisation' 9 | required: true 10 | repository-name: 11 | description: 'GitHub repo name' 12 | required: true 13 | force: 14 | description: 'Clear existing labels first' 15 | default: true 16 | runs: 17 | using: "composite" 18 | steps: 19 | - name: 'install dependency' 20 | run: npm install github-label-template 21 | shell: bash 22 | - name: 'delete existing labels' 23 | run: | 24 | [[ ${{ inputs.force }} = true ]] && npx ghlbl -o ${{ inputs.owner-name }} -r ${{ inputs.repository-name }} -t ${{ inputs.github-token }} -d 25 | if [ -z "${{ inputs.force }}" ] 26 | then 27 | npx ghlbl -o ${{ inputs.owner-name }} -r ${{ inputs.repository-name }} -t ${{ inputs.github-token }} -d 28 | else 29 | echo -e "Existing labels not removed" 30 | fi 31 | shell: bash 32 | - name: 'import labels from json file' 33 | run: npx ghlbl -o ${{ inputs.owner-name }} -r ${{ inputs.repository-name }} -t ${{ inputs.github-token }} -i ${{ github.action_path }}/labels.json 34 | shell: bash 35 | -------------------------------------------------------------------------------- /labels.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "good first issue", 4 | "color": "7f0799" 5 | }, 6 | { 7 | "name": "help wanted", 8 | "color": "7f0799" 9 | }, 10 | { 11 | "name": "duplicate", 12 | "color": "7f0799" 13 | }, 14 | { 15 | "name": "⛔️ status: discarded", 16 | "color": "eeeeee" 17 | }, 18 | { 19 | "name": "✨ goal: improvement", 20 | "color": "ffffff" 21 | }, 22 | { 23 | "name": "❓ talk: question", 24 | "color": "f9bbe5" 25 | }, 26 | { 27 | "name": "⭐ goal: addition", 28 | "color": "ffffff" 29 | }, 30 | { 31 | "name": "🏁 status: ready for dev", 32 | "color": "cccccc" 33 | }, 34 | { 35 | "name": "💬 talk: discussion", 36 | "color": "f9bbe5" 37 | }, 38 | { 39 | "name": "💻 aspect: code", 40 | "color": "04338c" 41 | }, 42 | { 43 | "name": "📄 aspect: text", 44 | "color": "04338c" 45 | }, 46 | { 47 | "name": "🔒 staff only", 48 | "color": "7f0799" 49 | }, 50 | { 51 | "name": "🕹 aspect: interface", 52 | "color": "04338c" 53 | }, 54 | { 55 | "name": "🚦 status: awaiting triage", 56 | "color": "333333" 57 | }, 58 | { 59 | "name": "🚧 status: blocked", 60 | "color": "999999" 61 | }, 62 | { 63 | "name": "🛠 goal: fix", 64 | "color": "ffffff" 65 | }, 66 | { 67 | "name": "🟥 priority: critical", 68 | "color": "b60205" 69 | }, 70 | { 71 | "name": "🟧 priority: high", 72 | "color": "ff9f1c" 73 | }, 74 | { 75 | "name": "🟨 priority: medium", 76 | "color": "ffcc00" 77 | }, 78 | { 79 | "name": "🟩 priority: low", 80 | "color": "cfda2c" 81 | }, 82 | { 83 | "name": "🤖 aspect: dx", 84 | "color": "04338c" 85 | }, 86 | { 87 | "name": "🧹 status: ticket work required", 88 | "color": "666666" 89 | }, 90 | { 91 | "name": "🙅 status: discontinued", 92 | "color": "cccccc" 93 | }, 94 | { 95 | "name": "🏷 status: label work required", 96 | "color": "666666" 97 | }, 98 | { 99 | "name": "🔢 points: 1", 100 | "color": "62A1A6" 101 | }, 102 | { 103 | "name": "🔢 points: 2", 104 | "color": "62A1A6" 105 | }, 106 | { 107 | "name": "🔢 points: 3", 108 | "color": "62A1A6" 109 | }, 110 | { 111 | "name": "🔢 points: 5", 112 | "color": "62A1A6" 113 | }, 114 | { 115 | "name": "🔢 points: 8", 116 | "color": "62A1A6" 117 | }, 118 | { 119 | "name": "🔢 points: 13", 120 | "color": "62A1A6" 121 | }, 122 | { 123 | "name": "no-issue-activity", 124 | "color": "ededed" 125 | }, 126 | { 127 | "name": "dependencies", 128 | "color": "0366d6" 129 | }, 130 | { 131 | "name": "hacktoberfest", 132 | "color": "eb06b0" 133 | }, 134 | { 135 | "name": "hacktoberfest-accepted", 136 | "color": "0f8b16" 137 | } 138 | ] 139 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gh-action-open-source-labels", 3 | "version": "0.6.4", 4 | "description": "GitHub Action to create open source standards labels", 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1" 7 | }, 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/EddieHubCommunity/gh-action-open-source-labels.git" 11 | }, 12 | "keywords": [], 13 | "author": "", 14 | "license": "ISC", 15 | "bugs": { 16 | "url": "https://github.com/EddieHubCommunity/gh-action-open-source-labels/issues" 17 | }, 18 | "homepage": "https://github.com/EddieHubCommunity/gh-action-open-source-labels#readme" 19 | } --------------------------------------------------------------------------------