Home

Awesome

.github Directory Generator

Linux and OS XWindowsCoverage
Travis BadgeAppveyor BadgeCoverage Badge

GitHub now supports issue and pull request template. This repository provides dot-github command to generate the template files automatically for your GitHub repositories. This also enables to manage template files in dotfiles for all of your machines.

screenshot

Getting Started

1. Installation

go get command

$ go get github.com/rhysd/dot-github

or released binaries

cd /path/to/Downloads  # Download binary for your platform
chmod +x dot-github_your_platform
mv dot-github_your_platform /usr/local/bin/dot-github

2. Write Your Template Files

$ mkdir -p ~/.github && cd ~/.github
$ $EDITOR ISSUE_AND_PULL_REQUEST_TEMPLATE.md
$ $EDITOR CONTRIBUTING.md

Please read below instruction detail about template file

Note: You can change the home directory for dot-github by $DOT_GITHUB_HOME environment variable.

3. Generate .github

$ cd your-repo
$ dot-github
$ git add .github

4. Tweak Generated Files

Tweak generated files in your-repo/.github/* for your project-specific information.

Writing Template File

You can see example directory in this repository for real world examples.

dot-github looks below template files

File PathDescription
$DOT_GITHUB_HOME/.github/ISSUE_TEMPLATE.mdTemplate for issues.
$DOT_GITHUB_HOME/.github/PULL_REQUEST_TEMPLATE.mdTemplate for pull requests.
$DOT_GITHUB_HOME/.github/ISSUE_AND_PULL_REQUEST_TEMPLATE.mdIf above files are not found, this file is used for template of issues and pull requests.
$DOT_GITHUB_HOME/.github/CONTRIBUTING.mdTemplate for contributing guideline.

Note that $DOT_GITHUB_HOME is an environment variable. You can specify your favorite directory to put template files. Default directory for it is ~.

Above template files are parsed as Golang's standard text template. Below variables are available in template. They are useful to write flexible and common template files for each repositories.

Variable NameTypeDescription
.IsIssuebooleanTrue when used for issue template.
.IsPullRequestbooleanTrue when used for pull request template.
.IsContributingbooleanTrue when used for contributing template.
.RepoNamestringRepository name.
.RepoUserstringRepository owner name.

Template Examples

Template files

{{if .IsIssue}}
### Expected Behavior


### Actual Behavior


{{end}}
{{if .IsPullRequest}}
### Fix or Enhancement?


- [ ] All tests passed
{{end}}

### Environment
- OS: Write here
- Go version: Write here
Thank you for contributing {{.RepoName}}!
=========================================

Please follow issue/PR template.

Generated Files

### Expected Behavior


### Actual Behavior


### Environment
- OS: Write here
- Go version: Write here
### Fix or Enhancement?


- [ ] All tests passed

### Environment
- OS: Write here
- Go version: Write here
Thank you for contributing my-project!
=========================================

Please follow issue/PR template.

Update dot-github command

To update dot-github command, -selfupdate flag is recommended.

References

License

This software is distributed under MIT license.