GitHub przedstawił właśnie szereg zewnętrznych narzędzi, które będą współpracować z ich nową funkcją skanowania kodu, zapobiegającą dostawaniu się błędów na produkcję. Nowych narzędzi jest 10 i każde z nich ma do zaoferowania coś wyjątkowego. Takie coś może pomóc w dopasowaniu skanowania kodu do potrzeb swojego zespołu, czy organizacji lub dla zwiększenia zakresu działania dla jakiegoś konkretnego obszaru.
Użycie ich wraz z funkcją skanowania kodu jest możliwe dzięki punktowi końcowemu API, który może przyjąć wyniki skanowania przy pomocy Static Analysis Results Interchange Format (SARIF). Działanie narzędzi można natomiast zainicjować przez GitHub Actions lub GitHub App, w oparciu o np. jakiś pull request.
Wyniki wygenerowane przez zewnętrzne narzędzia są dostarczane do zakładki GitHub Security Alerts i formatowane jako SARIF. Alerty są następnie gromadzone według narzędzia, a GitHub je śledzi, aby unikać duplikatów. Dzięki temu programiści mogą korzystać z wybranego przez siebie narzędzia do dowolnego projektu w natywnym środowisku GitHuba.
Nowe produkty są obecnie dostępne w GitHub Marketplace. Użytkownicy mogą je również zaimplementować z poziomu zakładki Security w swoich repozytoriach i skonfigurować swój workflow — będą one wtedy dostępne w UI funkcji skanowania kodu.
Poniżej przyjrzymy się pokrótce każdemu z nowych wydań.
Pierwszy na liście jest Checkmarx CXFlow. Wyniki skanowania tego narzędzia są bezpośrednio integrowane z GitHub Issues, GitHub Merge Requests Overviews oraz GitHub Security Alerts dzięki CodeQL. Integracja z funkcją skanowania kodu ulepsza CI/CD i daje wartościowe insighty na temat bezpieczeństwa.
Następny jest Codacy Analysis CLI. Daje on analizę statyczną, złożoność cyklomatyczną, duplikację oraz śledzi zmiany w pokryciu testami jednostkowymi po każdej zmianie kodu.
Codacy pozwala zaoszczędzić czas przy code review oraz daje wartościowe insighty z analizy kodu.
CodeScan jest przeznaczony specjalnie do pracy nad jakością i bezpieczeństwem platformy Salesforce. Jego działania są w stanie zredukować dług techniczny, zachęcić developerów do pisania lepszego kodu i prosto zintegrować się ze środowiskiem DevOpsowym.
Narzędzie to zostało zaprojektowane z myślą o dogłębnej analizie kodu źródłowego danej aplikacji. Jest to rozwiązanie typu SAST (Static Application Security Testing) i można je łatwo zintegrować z CI/CD oraz środowiskiem DevOpsowym.
Jest to rozwiązanie automatyzujące testy w całym CI/CD pipeline, aby programiści mogli szybciej rozwiązywać napotkane problemy.
Następny na liście jest Muse, który został zaprojektowany, aby umożliwić developerom wyszukanie najbardziej nieuchwytnych bugów. Narzędzie można wpiąć w cykl pracy tak, aby umożliwić naprawienie luki, kiedy jest ona najłatwiejsza do załatania.
Muse wykorzystuje szereg narzędzi do statycznej analizy kodu, aby automatycznie go analizować przy każdym pull request. Co więcej, Muse jest w stanie dodawać komentarze podczas code review, a kategorie błędów, które narzędzie jest w stanie rozpoznać to m.in. te dotyczące wydajności, bezpieczeństwa i stylu.
Narzędzie to stara się zachęcić programistów, aby pisali bezpieczny kod od początku developmentu. Pozwala im osiągnąć szybką poprawę zgodności ze standardami bezpieczeństwa, a także lepszą jakość i szybkość pisania. Im częściej ta platforma jest używana, tym kod, który tworzysz, jest bezpieczniejszy.
Syniosys zapewnia zoptymalizowane skany SAST oraz SCA projektów za pośrednictwem GitHub Actions API. Korzystając z pomocy platformy Polaris DevSecOps, sprawia ono, że uruchamiane testy bezpieczeństwa są odpowiednie dla danej sytuacji.
Następne narzędzie zapewnia szybki i zautomatyzowany feedback bezpośrednio w IDE lub w potoku. Co ciekawe, Veracode Static Analysis przeprowadzi test zgodności z polityką danej organizacji, aby odpowiednio dopasować się do jej potrzeb.
Narzędzie to daje jasne wskazówki na temat problemów, na których należy się skupić oraz błędów, które należy naprawić.
Xanitizer Security Analysis to ostatni produkt na liście. Jego założeniem jest zwiększenie dokładności analizy kodu oraz zredukowanie liczby fałszywych alarmów. W tym celu Xanitizer przeprowadza analizę przepływu danych oraz stymuluje zachowanie niektórych frameworków webowych.
Jak widać powyżej, możliwości jest sporo, a wybór szeroki, ale nie ma też sensu używać każdego z powyższych produktów na raz. Niemniej jednak każde z wymienionych narzędzi daje fajne możliwości rozbudowy potoków CI/CD w oparciu o platformę GitHub i developerzy z pewnością będą zadowoleni z przynajmniej części z nich.