Hello! i just have a lot of questions and having those in the forum is better, i wanted to ask how do you manage to load the content of you different track repositories to the main website? its an amazing way of open content and prs for everyone and also works really well, its a good way of LMS or CMS, but im curious, how does that happen? do you have docs or papers that led you to do it like that? i would like to do something similar but based on something solid.
Thanks in advance, really impressed with how good exercism is.
Basically what we do is that we have a global, org-wide webhook that fires when one of the (exercism) organisation’s repos push a commit. The website listens to and receives that webhook after which we’ll determine from its contents which track was committed to and update the track’s contents based on its latest commit (we checkout the repo locally and use that information).
But you load all information from the repo? never store a copy of that in your db (that would add complexity, resources and could be an overkill
We do a mixture. Sometimes we check out the code in real time and use it, others times we cache it first. It depends on whether we care most about performance or being DRY, and whether we need versioned content (in which case we use git) or just the latest version (in which case we’re more likely to materialise it to a database).