Organization .github repositories grown from Mustache templates.
Clone the source code of this repository somewhere...
mkdir -vp ~/git/hub/github-utilities
cd ~/git/hub/github-utilities
git clone [email protected]:github-utilities/dot-github.git
cd dot-githubTo update in the future , pull the master branch of this repository
cd ~/git/hub/github-utilities/dot-github
git pull origin masterCheckout a branch for tracking Organization customizations...
cd ~/git/hub/github-utilities/dot-github
git checkout -b org-nameModify the dataView.json file, usually by removing unneeded languages and editing lines above that...
{
"ghf": true,
"output_directory": "~/git/hub/org-name/.github",
"name": "org-name",
"author": "your-name",
"email": "[email protected]",
"description": "Quick statement on what this Organization aims to accomplish",
"license": "AGPL-3.0",
"code_of_conduct": "contributor-covenant",
"funding": {
"key": "liberapay",
"url": "org-name"
},
"languages": [
{
"name": "Awk",
"emoji_word": ":tophat:",
"emoji_code": "🎩"
},
{
"name": "Bash",
"emoji_word": ":shell:",
"emoji_code": "🐚"
},
{
"name": "Clang",
"emoji_word": ":dragon:",
"emoji_code": "🐉"
},
{
"name": "CSS",
"emoji_word": ":paintbrush:",
"emoji_code": "🖌"
},
{
"name": "Docker",
"emoji_word": ":whale2:",
"emoji_code": "🐋"
},
{
"name": "HTML",
"emoji_word": ":spider_web:",
"emoji_code": "🕸"
},
{
"name": "JavaScript",
"emoji_word": ":coffee:",
"emoji_code": "☕"
},
{
"name": "Kivy",
"emoji_word": ":snake:",
"emoji_code": "🐍"
},
{
"name": "Liquid",
"emoji_word": ":fountain:",
"emoji_code": "⛲"
},
{
"name": "MarkDown",
"emoji_word": ":memo:",
"emoji_code": "📝"
},
{
"name": "MustacheJS",
"emoji_word": ":wavy_dash:",
"emoji_code": "〰"
},
{
"name": "Python",
"emoji_word": ":snake:",
"emoji_code": "🐍"
},
{
"name": "Rust",
"emoji_word": ":gear:",
"emoji_code": "⚙"
},
{
"name": "SCSS",
"emoji_word": ":factory:",
"emoji_code": "🏭"
},
{
"name": "Solidity",
"emoji_word": ":chains:",
"emoji_code": "⛓"
},
{
"name": "TypeScript",
"emoji_word": ":symbols:",
"emoji_code": "🔣"
}
],
"files": [
{
"in_path": ".mustache/.github/ISSUE_TEMPLATE/bug_report.md.mst",
"out_path": ".github/ISSUE_TEMPLATE/bug_report.md"
},
{
"in_path": ".mustache/.github/ISSUE_TEMPLATE/feature_request.md.mst",
"out_path": ".github/ISSUE_TEMPLATE/feature_request.md"
},
{
"in_path": ".mustache/.github/pull_request_template.md.mst",
"out_path": ".github/pull_request_template.md"
},
{
"in_path": ".mustache/.github/PULL_REQUEST_TEMPLATE/bug_fix.md.mst",
"out_path": ".github/PULL_REQUEST_TEMPLATE/bug_fix.md"
},
{
"in_path": ".mustache/.github/PULL_REQUEST_TEMPLATE/feature_addition.md.mst",
"out_path": ".github/PULL_REQUEST_TEMPLATE/feature_addition.md"
},
{
"in_path": ".mustache/.github/README.md.mst",
"out_path": ".github/README.md"
},
{
"in_path": ".mustache/CONTRIBUTING.md.mst",
"out_path": "CONTRIBUTING.md",
"partials": [
".mustache/partials/development-setup/linux.md.mst",
".mustache/partials/development-setup/windows.md.mst",
".mustache/partials/git-tips/branches.md.mst",
".mustache/partials/git-tips/commits.md.mst",
".mustache/partials/how-to-contribute/open-issues.md.mst",
".mustache/partials/how-to-contribute/report-bugs.md.mst",
".mustache/partials/style-guidelines/awk.md.mst",
".mustache/partials/style-guidelines/bash.md.mst",
".mustache/partials/style-guidelines/css.md.mst",
".mustache/partials/style-guidelines/docker.md.mst",
".mustache/partials/style-guidelines/html.md.mst",
".mustache/partials/style-guidelines/javascript.md.mst",
".mustache/partials/style-guidelines/liquid.md.mst",
".mustache/partials/style-guidelines/markdown.md.mst",
".mustache/partials/style-guidelines/mustachejs.md.mst",
".mustache/partials/style-guidelines/python.md.mst",
".mustache/partials/style-guidelines/rust.md.mst",
".mustache/partials/style-guidelines/scss.md.mst",
".mustache/partials/style-guidelines/solidity.md.mst",
".mustache/partials/style-guidelines/typescript.md.mst"
]
},
{
"in_path": ".mustache/FUNDING.yml.mst",
"out_path": "FUNDING.yml"
},
{
"in_path": ".mustache/SUPPORT.md.mst",
"out_path": "SUPPORT.md"
},
{
"in_path": ".mustache/SECURITY.md.mst",
"out_path": "SECURITY.md"
}
]
}Add and commit changes...
git add -A .
git commit -m 'Customizes defaults from master branch for org-name'Initialize a .github repository for your Organization...
mkdir -vp ~/git/hub/org-name
git init ~/git/hub/org-name/.githubNote, above should match the same path as defined by
output_directorywithin your customizeddataView.jsonfile.
Issue npm run build from this repository...
cd ~/git/hub/github-utilities/dot-github
npm run buildChange directories to the .github repository for your Organization, and track built files...
cd ~/git/hub/org-name/.github
git add -A .
git commit -m 'Initial commit'After creating a .github repository on GitHub, add a remote and push
git remote add hub [email protected]:org-name/.github.git
git push hub masterπ Excellent π your Organization is now ready to begin unitizing documents built from this repository!
Pull Requests are most welcomed to add features and/or fix bugs. for example the following four steps show how to add lang-name to the list of supported style guidelines within the built CONTRIBUTING.md file.
0 Checkout the master branch of this repository and write a Mustache template...
cd ~/git/hub/github-utilities/dot-github
git checkout master.mustache/partials/style-guidelines/lang-name.md.mst
- Lines of code should strive for less than `120` characters in length
- Comments within code should strive for less than `80` characters in length
...1 Add lang-name the list of languages and partials...
dataView.json (languages snip)
...
"languages": [
{
"name": "Awk",
"emoji_word": ":tophat:",
"emoji_code": "🎩"
},
{
"name": "Bash",
"emoji_word": ":shell:",
"emoji_code": "🐚"
},
{
"name": "CSS",
"emoji_word": ":paintbrush:",
"emoji_code": "🖌"
},
{
"name": "Docker",
"emoji_word": ":whale2:",
"emoji_code": "🐋"
},
{
"name": "HTML",
"emoji_word": ":spider_web:",
"emoji_code": "🕸"
},
{
"name": "JavaScript",
"emoji_word": ":coffee:",
"emoji_code": "☕"
},
{
"name": "Kivy",
"emoji_word": ":snake:",
"emoji_code": "🐍"
},
{
"name": "lang-name",
"emoji_word": ":frog:",
"emoji_code": "🐸"
},
{
"name": "Liquid",
"emoji_word": ":fountain:",
"emoji_code": "⛲"
},
{
"name": "MarkDown",
"emoji_word": ":memo:",
"emoji_code": "📝"
},
{
"name": "Python",
"emoji_word": ":snake:",
"emoji_code": "🐍"
},
{
"name": "SCSS",
"emoji_word": ":factory:",
"emoji_code": "🏭"
}
],
...dataView.json (partials snip)
...
{
"in_path": ".mustache/CONTRIBUTING.md.mst",
"out_path": "CONTRIBUTING.md",
"partials": [
".mustache/partials/development-setup/linux.md.mst",
".mustache/partials/development-setup/windows.md.mst",
".mustache/partials/git-tips/branches.md.mst",
".mustache/partials/git-tips/commits.md.mst",
".mustache/partials/how-to-contribute/open-issues.md.mst",
".mustache/partials/how-to-contribute/report-bugs.md.mst",
".mustache/partials/style-guidelines/awk.md.mst",
".mustache/partials/style-guidelines/bash.md.mst",
".mustache/partials/style-guidelines/css.md.mst",
".mustache/partials/style-guidelines/docker.md.mst",
".mustache/partials/style-guidelines/html.md.mst",
".mustache/partials/style-guidelines/javascript.md.mst",
".mustache/partials/style-guidelines/lang-name.md.mst",
".mustache/partials/style-guidelines/liquid.md.mst",
".mustache/partials/style-guidelines/markdown.md.mst",
".mustache/partials/style-guidelines/python.md.mst",
".mustache/partials/style-guidelines/scss.md.mst"
]
},
...2 Add and commit changes...
git add -A .
git commit -m 'Adds lang-name to available style guidelines'3 After forking on GitHub, add it as a remote and push changes
git remote add fork [email protected]:your-name/dot-github.git
git push fork master4 Open a Pull Request when your changes are ready.
Resources that where helpful in building this project so far
Legal bits of Open Source software
Dot GitHub ReadMe documenting how things like this could be utilized
Copyright (C) 2020 S0AndS0
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation; version 3 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.