-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lint workflow voor alle repo's #16
Comments
de volgende statements moeten worden uitgevoerd in de parent map van een specificatie map:
in package.json, onder scripts de volgende regels toevoegen:
Pas de naam aan van de postman-collection.json bestand in de de bovengenoemde scripts kunnen worden uitgevoerd met de volgende statement:
in package.json, achter de één na laatste } de volgende regels toevoegen. Dit zorgt ervoor dat de openapi.yaml en de genereervariant tijdens een commit worden ge-lint:
Om de Haal Centraal openapi rules te gebruiken, moet een .spectral.yml bestand worden aangemaakt met de onderstaande regels:
Om het genereren van de resolved variant, het linten, codegeneratie en postman collectie moeten de yml bestanden onder .github/workflows folder van bijv. de BRP-bevragen repo naar de parent map. Pas in de generate-postman-collectie.yml bestand de naam van de postman-collection.json bestand aan. De naam moet overeenkomen met naam die wordt gebruikt in de |
Deze action voor de genereerversie moet niet uitgerold worden op de BAG repo. In principe voorziet deze action zodra uitgerold op andere repo's de gerelateerde GitHub Pages van de gewenste indicatoren alleen moet daarvoor wel in de 'index.md' de volgende statements opgenomen worden:
|
@MelvLee, Ik begrijp de volgende zin in jou post niet.
Zeg je hier eigenlijk dat de yaml bestanden in de .github/workflows folder verplaatst moeten worden naar de root? Omdat dit issue al van november vorig jaar is en er op dit gebied stiekem al heel veel gedaan is en er ook wat zaken gewijzigd zijn heb ik alle repo's eens tegen dit issue aan gehouden. Ik wil voorkomen dat we wijzigingen gaan aanbrengen die misschien helemaal niet (meer) nodig of gewenst zijn. Hieronder dus per repo mijn vragen/opmerkingen. BRK-bevragen
Kadsterpersonen-bevragen
BRK-event-sourcing
BRK-historie-bevragen
BRK-WKPB
BRP-bevragen
Reisdocumenten-bevragen
Als dit niet correct is dan is dat mogelijk ook voor andere repo's niet correct. BRP-tabellen-bevragen
BRP-bewoning
BRP-Update-API
BRP-historie-bevragen
BAG-bevragen
HR-bevragen
WOZ-bevragen
BGT-bevragen
Web-Security
|
@MelvLee, Ik begrijp de volgende zin in jou post niet.
Wat ik hiermee wil zeggen is dat je de .github/workflows folder + inhoud moet copieren naar de root van de repo waar je deze workflows ook wil draaien |
De |
De twee scripts zijn bedoeld om de bestanden die mbv GitHub Actions worden gegenereerd niet te commit-en (unstage) en terug te draaien (rollback). De unstage-generated wordt gebruikt in de pre-commit hook. Dit zorgt er dus voor dat de gegenereerde bestanden niet worden ge-commit omdat het in GitHub ook gebeurd. |
@MelvLee Duidelijk nu. Waarbij natuurlijk wel geldt dat je alleen die actions meekopieert die ook van toepassing zijn voor de betreffende repo. De action 'lint-oas' is immers n.v.t. voor een repo waar geen 'openapi.yaml' aanwezig is.
@MelvLee Ik begrijp het denk ik nog niet helemaal dus hieronder even mijn interpretatie. Graag hoor ik van je waar ik er naast zit. Als ik het goed begrijp kan ik de beschrijving in de API Kennisbank nl. aanpassen. Volgens mij hebben deze scripts vooral een functie in een lokale versie van een repo (bijv. als je met GitHub Desktop werkt).
Blijven er nog enkele vragen over:
|
Als je in je repo testen hebt, dan zou je die aan deze script kunnen toevoegen. De repo's hebben op dit moment geen testcode, dus kan deze script weg
Dat klopt
De scripts unstage en rollback alle bestanden die lokaal worden gegenereerd.
Je kan meerdere paden opgeven
Vanaf OAS 3.1 is dit niet meer relevant. Dan mag $ref wel siblings hebben. Je kan nu ervoor kiezen om de 'no-$ref-siblings: off' rule te verwijderen uit de .spectral.yml van alle repo's en de rule alleen toe te voegen in de .spectral.yml van Haal Centraal Common. Dit kan je dus ook doen als je een rule uit wil zetten voor alle HC repo's |
@MelvLee Voor de meeste repositories is de lint workflow inmiddels correct geïmplementeerd. De GitFlow uitgangspunten lijken dus wat te conflicteren met deze actions. Vreemd is echter wel dat de action 'lint-oas' wel een genereervariant oplevert in de 'develop' branch. Laten we, om het eenvouidg te houden, even uitgaan van een repository die geen gebruik maakt van GitFlow. De 'master' of 'main' branch bevat dan altijd de laatste status van de openapi specs.
Lijkt me goed om hier nog eens goed naar te kijken. |
Je zou de npm script kunnen aanpassen dat hij alleen wordt uitgevoerd als er een genereervariant is. Nadeel hiervan is dat je wel een groene badge krijgt en dan denk je dat er sdks of een postman collection is, maar die is er niet. Persoonlijk zou ik ervoor kiezen om in dat geval nog geen github actions toe te voegen voor het genereren van de sdks en postman collection. Consumers kunnen toch nog niks met de sdks en postman collection omdat er nog geen api is om tegen aan te testen.
De 'lint-oas' action en de ook de andere actions werken voor alle branches. Dit is in de action geconfigureerd. Default toont de badge de laatste status van de bijbehorende action die is gedraaid op de master. Wil je dat niet, dan kan je dat aanpassen door de 'branch' query parameter te gebruiken. Voorbeeld: Nadeel hiervan is dat de readme.md voor elke branch anders is/moet zijn. Je moet dus elke keer als je gaat mergen de conflict in de readme.md resolven.
Je kan de branch query parameter gebruiken om dit te sturen. Je kan er ook voor kiezen om alleen de badges te tonen voor delen dat een consumer al kan gebruiken. Ik denk dat dit niet te maken heeft met het gebruiken van GitFlow. GitFlow beschrijft alleen maar een gestandaardiseerde manier om met branches in een development lifecycle te werken. Dit probleem heb je zodra je met branches werkt. Het kan worden opgevangen door het gebruik van de branch query parameter. Nadeel hiervan is dan wel weer dat je altijd een merge conflict krijgt in de readme.md bestanden die je handmatig moet resolven. Of je kiest voor één branch en met forks werken, maar dan heb je weer andere problemen. |
Ok, ik neem aan dat je bedoelt dat er standaard altijd een groene badge is voor de sdks en postman collection ook al zijn deze er nog niet. Lijkt me inderdaad niet de way to go.
Daar kan ik me wel in vinden. Zolang er nog geen (referentie) implementatie is dus geen badges voor sdks en postman collection maar wel voor de oas linter. Ik zie alleen nog wel een bron van onduidelijkheid. Neem bijv. de GitHub page voor de BRK Bevragen API waar de badges in de main pagina staan. De vraag is of het iedereen wel duidelijk is dat deze slaan op de 1.2 (Live) versie of zou men ook kunnen denken dat deze (ook) op de 1.3 (IO) versie betrekking hebben?
Ik ben het eigenlijk wel met je eens dat het meer te maken met het feit dat je gebruik maakt van branches.
Ik realiseer me nu dat het feit dat we GitFlow gebruiken het juist makkelijker maakt. De master/main branch bevat, zolang GitFlow netjes gevolgd wordt, immers altijd de laatste officiële versie van de API specificaties. |
Lint workflows voor alle repo's in orde te maken.
The text was updated successfully, but these errors were encountered: