GitHub bij Uncanny
Alle code van de studio staat op GitHub, in de organisatie github.com/uncanny-studio-be. Daar vind je de websites die we voor klanten bouwen, de interactieve presentaties, de tools die iedereen gebruikt en de prototypes van R&D. Deze pagina legt uit hoe je toegang krijgt en hoe we ermee werken.
Eén afspraak vooraf: GitHub is voor code. Video, renders, projectbestanden en leveringen horen op Z:/, volgens de mappenstructuur in Studio Workflow.
Toegang
Je eigen account
Je werkt op GitHub altijd onder je eigen naam. Zo staat in de geschiedenis van elk project wie wat gedaan heeft, en zo kan iemand je vragen stellen over een wijziging van drie maanden geleden.
- Maak een persoonlijk GitHub-account aan op je uncanny.be-mailadres. De gebruikersnaam is
uc-gevolgd door je voornaam in kleine letters, bijvoorbeelduc-tijs. Heb je al een account, dan voeg je dat adres toe als tweede e-mail en hernoem je het naaruc-voornaamvia Settings > Account > Change username. Wil je je bestaande account liever niet hernoemen, dan maak je een apart account voor de studio. - Zet tweestapsverificatie aan. Het is niet verplicht, maar wel sterk aangeraden: met jouw account kun je op klantsites publiceren. Een authenticator-app of een passkey werkt, sms liever niet.
- Vraag Jeff om een uitnodiging. Je komt in het team Uncanny Team en ziet daarmee alle repos van de studio.
- Installeer GitHub Desktop of gebruik git in de terminal. Log in met je eigen account.
Het oude gedeelde studio-account gebruik je niet meer. Dat account bestaat nog, maar het is vanaf nu een machine-account voor automatisering. Wie ermee werkt, is onzichtbaar in de geschiedenis.
Wat je ziet
Als lid van het team zie je alle repos van de organisatie: klantwerk, studiotooling en R&D. Je hebt schrijfrecht, dus je kunt overal committen en pushen. Repos die je niet ziet, bestaan voor jou niet. Je hoeft er niets over te weten.
Externen, zoals een freelancer op een project, krijgen toegang tot één repo en komen niet in het team. Vraag dat aan Jeff of Michel.
Zo werken we
Waar je repos staan
Elke repo van de studio clone je in dezelfde map op je computer: C:/Uncanny-Claude/github. Zo staat alle code bij iedereen op dezelfde plek. Claude Code en de studiotools vinden een project dan zonder zoeken, en een collega die je helpt weet meteen waar alles staat.
Bestaat de map nog niet, maak hem dan eerst aan in Verkenner: open C:, maak de map Uncanny-Claude en daarin de map github. In GitHub Desktop kies je bij Clone repository die map als Local path. Repos die nu nog ergens anders op je computer staan, verplaats je naar deze map. Zorg wel dat alles gepusht is voor je verplaatst.
Repos
- Eén repo per project of tool. Een klantwebsite, een presentatie, een visualizer en een intern script zijn elk een eigen repo.
- Naamgeving volgt de studioregels: kebab-case, kleine letters, geen underscores. Klantwerk heet
client-project, bijvoorbeeldmadlady-website. Studiotooling heetuncanny-tool, bijvoorbeelduncanny-decks. Een persoonlijk experiment heetnaam-onderwerp. De volledige regels staan in Studio Workflow. - Nieuwe repo nodig? Vraag het aan Jeff of Michel. De repo komt in de organisatie en het team krijgt automatisch toegang. Maak geen repos voor studiowerk onder je persoonlijke account, want dan ziet niemand anders ze.
- Elke repo heeft een README die drie vragen beantwoordt: wat is dit, hoe draai ik het lokaal, en hoe gaat het live. Begin je een repo, dan schrijf je die drie regels meteen.
Dagelijks werk
- Pull voor je begint, push als je stopt. Werk dat alleen op jouw laptop staat, bestaat voor de studio niet.
- Kleine commits met een duidelijke boodschap. Schrijf wat er verandert en waarom. "fix" zegt niets. "contactformulier: honeypot toegevoegd tegen spam" zegt alles.
- Alleen op een repo? Dan werk je gewoon op
main. - Met twee of meer op een repo? Dan maak je een branch per taak en open je een pull request als die klaar is. Een collega kijkt ernaar voor het samengaat met
main. Dat hoeft geen zware review te zijn. Het voorkomt vooral dat twee mensen elkaars werk overschrijven. - Bij een conflict stop je en overleg je met de collega van wie de andere wijziging is. Nooit blind "keep mine" kiezen.
Wat nooit in git gaat
- Geheimen. Wachtwoorden, API-keys, tokens en
.env-bestanden horen niet in een repo. Ook niet "even snel". Een geheim dat ooit gecommit is, staat voor altijd in de geschiedenis en moet vervangen worden. Zet geheimen in een.env-bestand en zorg dat.envin.gitignorestaat. Twijfel je, dan vraag je het voor je pusht. - Grote bestanden. Git is slecht in video, renders, PSD's en andere grote binaire bestanden. Alles boven enkele megabytes hoort op
Z:/of op een mediahost. Een website die een video nodig heeft, linkt ernaar. - Klantleveringen. Die volgen de workflow op
Z:/, met versies en archivering zoals beschreven in Studio Workflow. - Gegenereerde bestanden.
node_modules,dist,out, renders en caches staan in.gitignore. De repo bevat de bron, niet het resultaat.
Websites en deploys
Veel van onze websites gaan automatisch live bij een push naar main. Een GitHub Action bouwt de site en zet hem op Cloudflare. Een push naar main is in die repos dus hetzelfde als publiceren.
- Test lokaal voor je pusht. De README zegt hoe.
- Wil je iets uitproberen zonder te publiceren, dan werk je op een branch.
- Mislukt een deploy, dan zie je dat onder het tabblad Actions van de repo. Daar staat ook waarom.
Werken met Claude Code
Claude Code werkt in deze repos zoals een collega: het leest de README, maakt wijzigingen en kan committen. Twee regels:
- Jij pusht, niet Claude. Kijk de diff na voor je iets naar de organisatie stuurt, zeker in repos die automatisch deployen.
- Controleer de remote als een repo al langer op je machine staat. Repos die vroeger onder het oude studio-account stonden, zijn verhuisd naar de organisatie. De oude URL werkt nog via een omleiding, maar zet hem toch recht:
git remote set-url origin https://github.com/uncanny-studio-be/<repo>.git
Veelgemaakte fouten
- Pushen vanuit het gedeelde account. Je commit verschijnt dan onder een anonieme naam en niemand weet dat jij het was.
- Een
.envmeecommitten. Zie hierboven. Zeg het meteen als het toch gebeurt, dan wordt het geheim vervangen voor iemand het misbruikt. - Een hele map media in de repo zetten omdat het makkelijk was. De repo wordt traag voor iedereen en blijft dat, ook na het verwijderen.
- Weken werken zonder te pushen. Een laptop die stukgaat neemt dan weken werk mee.
Vragen
Zit je vast met git, of weet je niet of iets in een repo hoort? Stuur Jeff een privébericht op Slack. Liever een domme vraag dan een gecommit wachtwoord.