Jinja2 Extensions for rendering GitHub project properties.
Available extensions are the following:
github_repo_branch_sha
: render the last commit SHA associated with a GitHub project branch.github_repo_description
: render the description of a GitHub project.
jinja2-github is available for download from PyPI via pip:
$ pip install jinja2-github
It will automatically install jinja2 along with pygithub.
The extension comes with a github_repo_branch_sha
tag that allows to
render the last commit SHA associated with a GitHub project branch.
By default, the master
branch is used.
from jinja2 import Environment
env = Environment(extensions=['jinja2_github.GitHubRepoBranchShaExtension'])
# Default branch is master -> "4f5191b50026f7281ca1b1cd180e05fad1d716c6"
template = env.from_string("{% github_repo_branch_sha 'Slicer/Slicer' %}")
template.render()
It is also possible to specified a branch (or tag) name:
from jinja2 import Environment
env = Environment(extensions=['jinja2_github.GitHubRepoBranchShaExtension'])
# With an explicit branch name -> "cfe12ceefd761502181660de76a8cc5d40d5f31c"
template = env.from_string("{% github_repo_branch_sha 'Slicer/Slicer', 'master-48' %}")
template.render()
The extension comes with a github_repo_description
tag that allows to
render the description of a GitHub project.
from jinja2 import Environment
env = Environment(extensions=['jinja2_github.GitHubRepoDescriptionExtension'])
# -> "Multi-platform, free open source software for visualization and image computing."
template = env.from_string("{% github_repo_description 'Slicer/Slicer' %}")
template.render()
If you encounter any problems, please file an issue along with a detailed description.
- Make sure that all CI tests are passing on GitHub Actions.
- List all tags sorted by version
$ git tag -l | sort -V
- Choose the next release version number
$ release=X.Y.ZWarning
To ensure the packages are uploaded on PyPI, tags must match this regular expression:
^[0-9]+(\.[0-9]+)*(\.post[0-9]+)?$
.
- Download latest sources
$ cd /tmp && \ git clone git@github.com:jcfr/jinja2-github && \ cd jinja2-github
- Update
__version__
injinja2_github.py
script.
$ sed -i "5s/.*/__version__ = '$release'/" jinja2_github.py
- Commit and push the changes
$ git add jinja2_github.py $ git commit -m "jinja2-github $release" $ git push origin master
- Tag the release
$ git tag --sign -m "jinja2-github ${release}" ${release} origin/masterNote
We recommend using a GPG signing key to sign the tag.
- Publish the release tag
$ git push origin ${release}Important
This will trigger builds on each CI services and automatically upload the wheels and source distribution on PyPI.
- Check the status of the builds on GitHub Actions.
- Once the builds are completed, check that the distributions are available on PyPI
Everyone interacting in the jinja2-github project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PyPA Code of Conduct.
Distributed under the terms of the Apache 2.0 license, jinja2-github is free and open source software