Every GitHub maintainer knows how tedious can be the task of pushing a new release:
- we may push a new commit(s) with some information about the new version;
- we create and push the tag;
- we complete the release description with a list of contributions;
- we try to spread the world with this new release, announcing it on Twitter using TweetHub for instance;
If we can automatize first, second and fourth steps, I didn’t find any tool to help GitHub maintainers to complete their release description (and I hope GitHub will provide something, someday).
Here’s come Kimeo free as a beer and as a speech!
What is Kimeo?
Kimeo is a CLI application (but also a minimalist web client) able to generate a report of all contributions done to a GitHub project between an interval of dates. This is useful when:
- You want to make a Community report, let’s say a Weekly report like PrestaShop or Symfony projects;
- You want a release body (description) useful for your users, highlighting all changes;
- You want human readable data about your contributors;
How does it work?
I wanted this tool to be used by everyone, even the ones who don’t know PHP.
To generate a report, you need to know the GitHub project name and the owner. For instance if you want to make a report for the vuejs framework the owner is “vuejs” when the name of the project is “vue”.
Then, a lot of requests to the GitHub API will be made, this is why this tool needs you to be authenticated to GitHub. We need the credentials of any GitHub account because the API rate limit is increased in the case of an authenticated request.
Finally, we need an interval of dates.
Setup a Kimeo instance
The only thing you need to do is to create and complete a file named
.env : you can copy/paste the distributed
.env.dist file provided.
Wait, what are Core members?
You may want a different behavior to distinct your external (and beloved) contributors from the members of the team.
For instance, this is what you can get from a Vuejs report, with the above configuration:
We thank external contributors, but not core members. Indeed, this feature is optional and you can let
CORE_MEMBERS parameter empty.
How does it look likes?
It’s simple, but here are screenshots of the console application and web client:
If you want to try it, you can also try the demo project for Vuejs framework.
Great, I want to contribute!
Please don’t. For real I don’t have too much time to spend on this kind of baby project, I encourage you to fork it and have fun with it like I had :)
Happy coding everyone!
PS: If you have something to share, feel free to do it here, on GitHub or Twitter ;)