<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GitLab on Romano Roth</title><link>https://romanoroth.com/en/tags/gitlab/</link><description>Recent content in GitLab on Romano Roth</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Romano Roth</copyright><lastBuildDate>Wed, 28 Dec 2022 11:25:25 +0000</lastBuildDate><atom:link href="https://romanoroth.com/en/tags/gitlab/index.xml" rel="self" type="application/rss+xml"/><item><title>GitLab vs. GitHub: DevSecOps Pipeline</title><link>https://romanoroth.com/en/blogs/gitlab-vs-github-devsecops/</link><pubDate>Wed, 28 Dec 2022 11:25:25 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-vs-github-devsecops/</guid><description>&lt;p>by &lt;a href="https://www.linkedin.com/in/romanoroth/" target="_blank" rel="noreferrer">Romano Roth&lt;/a> and &lt;a href="https://www.linkedin.com/in/patrick-steger-ch/" target="_blank" rel="noreferrer">Patrick Steger&lt;/a>&lt;/p>
&lt;p>&lt;figure>&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="auto"
 alt=""
 width="1280"
 height="720"
 src="https://romanoroth.com/images/blog/gitlab-vs-github-devsecops-inline-1_hu_21f4da4944ff7974.png"
 srcset="https://romanoroth.com/images/blog/gitlab-vs-github-devsecops-inline-1_hu_21f4da4944ff7974.png 800w, https://romanoroth.com/images/blog/gitlab-vs-github-devsecops-inline-1.png 1280w"
 sizes="(min-width: 768px) 50vw, 65vw"
 data-zoom-src="https://romanoroth.com/images/blog/gitlab-vs-github-devsecops-inline-1.png">&lt;/figure>
&lt;/p>
&lt;p>This video series will show you how to build up an enterprise-ready DevSecOps Pipeline with GitLab and GitHub and compare the two platforms.&lt;/p></description></item><item><title>GitLab DevSecOps Part 12: Our Recommendations and Lessons Learned</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-recommendations/</link><pubDate>Wed, 16 Nov 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-recommendations/</guid><description>&lt;p>After eleven sessions building a full DevSecOps pipeline with GitLab — from Software Composition Analysis to Container Scanning, SAST, Secret Detection, DAST, merge request integration, and scheduled pipelines — Patrick Steger and I close the series with our recommendations. What worked, what tripped us up, and what we would tell anyone setting out to build the same pipeline today.&lt;/p></description></item><item><title>GitLab DevSecOps Part 11: Scheduled Pipelines for Production Code</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-schedule-pipeline/</link><pubDate>Wed, 09 Nov 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-schedule-pipeline/</guid><description>&lt;p>Over ten sessions we wired six security tools into a GitLab pipeline that fires on every commit and every Merge Request. So are we done? Not quite. Code in production sits there for weeks or months, and during that time researchers keep finding new CVEs in the dependencies you are already shipping. In Part 11 of the GitLab DevSecOps series, Patrick Steger and I add a scheduled pipeline so the production branch gets re-scanned automatically — without anyone having to push a commit.&lt;/p></description></item><item><title>GitLab DevSecOps Part 10: How to Do a Merge Request the Right Way</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-merge-request/</link><pubDate>Wed, 02 Nov 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-merge-request/</guid><description>&lt;p>In the previous nine sessions Patrick Steger and I built a GitLab DevSecOps pipeline that runs SAST, secret detection, software composition analysis, container scanning and DAST. Useful — but only if it actually catches issues &lt;em>before&lt;/em> they reach the default branch. In Part 10 we close that loop: we wire the pipeline into Merge Requests so every change is scanned, the deltas against the default branch are visible, and approvals are required when new high or critical vulnerabilities appear.&lt;/p></description></item><item><title>GitLab DevSecOps Part 9: Overcoming Vulnerability Management Challenges</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-vulnerability-management/</link><pubDate>Wed, 12 Oct 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-vulnerability-management/</guid><description>&lt;p>After eight sessions of adding scanners to our GitLab pipeline — SAST, secret detection, SCA, license compliance, container scanning, DAST — we now have a different problem. We have hundreds of vulnerability findings. In Part 9, Patrick Steger and I look at GitLab&amp;rsquo;s built-in Vulnerability Management: what it gives you, where it falls short, and how to actually triage findings without losing your mind.&lt;/p></description></item><item><title>GitLab DevSecOps Part 8: Dynamic Application Security Testing (DAST)</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-dast/</link><pubDate>Wed, 05 Oct 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-dast/</guid><description>&lt;p>Everything we have done in the GitLab DevSecOps pipeline so far has been static — analysis of source code, dependencies, containers and configuration. In Part 8, Patrick Steger and I cross the line into Continuous Delivery and add Dynamic Application Security Testing. DAST means we deploy the application, start it, and then attack it from the outside with an automated penetration testing tool. GitLab ships this capability out of the box, powered by OWASP ZAP.&lt;/p></description></item><item><title>GitLab DevSecOps Part 7: Finding Secrets in Your Code with Secret Detection</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-secret-detection/</link><pubDate>Wed, 28 Sep 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-secret-detection/</guid><description>&lt;p>Hard-coded passwords and API keys are still one of the most common ways credentials leak. They get committed by accident, stay in the git history forever, and only show up when someone is already exploiting them. In Part 7 of our GitLab DevSecOps series, Patrick Steger and I add Secret Detection to the same pipeline we have been growing — one line of YAML — and then look at what GitLeaks actually finds, what it quietly misses, and what to do about it.&lt;/p></description></item><item><title>GitLab DevSecOps Part 6: How to Use Container Scanning</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-container-scanning/</link><pubDate>Tue, 06 Sep 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-container-scanning/</guid><description>&lt;p>We have already wired SAST, secret detection, and software composition analysis into the GitLab pipeline. Those checks cover the source code and its dependencies — but the artifact we actually ship is a container image. Operating system packages, the base image, and everything copied in along the way can carry vulnerabilities of their own. In Part 6 of our series, Patrick Steger and I add container scanning to the pipeline, build a Docker image from the jar we compiled earlier, and push it through Trivy and Grype.&lt;/p></description></item><item><title>GitLab DevSecOps Part 5: Static Application Security Testing (SAST)</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-sast/</link><pubDate>Wed, 31 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-sast/</guid><description>&lt;p>Software composition analysis takes care of the libraries you pull in. But what about the code your own team writes? That is where Static Application Security Testing comes in. In Part 5 of our GitLab DevSecOps series, Patrick Steger and I add SAST to the pipeline, plant a few realistic vulnerabilities in our Spring Boot sample, and watch GitLab pick them up.&lt;/p></description></item><item><title>GitLab DevSecOps Part 4: How to Ensure License Compliance</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-license-compliance/</link><pubDate>Wed, 24 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-license-compliance/</guid><description>&lt;p>You ship a Java application that depends on Spring Boot, which depends on dozens of other libraries, each with its own license — and most teams cannot tell you what those licenses actually are. In Part 4 of our GitLab DevSecOps series, Patrick Steger and I add license compliance to the pipeline so the question is answered automatically on every commit. The good news: with GitLab Ultimate, this is one template line away.&lt;/p></description></item><item><title>GitLab DevSecOps Part 3: Software Composition Analysis with Gemnasium</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-sca/</link><pubDate>Wed, 17 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-sca/</guid><description>&lt;p>Your code is the small part. The libraries you pull in are the big part — and that is where most of your CVEs live. In Part 3 of the GitLab DevSecOps series, Patrick Steger and I bring up a tiny Spring Boot demo, wire it into a GitLab pipeline, and then add Software Composition Analysis with a single include line.&lt;/p></description></item><item><title>GitLab DevSecOps Part 1: What Is GitLab and Why Shift Security Left?</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-introduction/</link><pubDate>Wed, 10 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-introduction/</guid><description>&lt;p>Why does security still get bolted on at the end of the development process, and how do we move it earlier without slowing teams down? In Part 1 of our GitLab DevSecOps series, Patrick Steger and I set the stage: what GitLab is, what shifting security left really means, and which CI/CD concepts you have to understand before you can build a DevSecOps pipeline that actually works.&lt;/p></description></item><item><title>GitLab DevSecOps Part 2: Creating a Simple Project and Your First Pipeline</title><link>https://romanoroth.com/en/blogs/gitlab-devsecops-creating-a-project/</link><pubDate>Wed, 10 Aug 2022 00:00:00 +0000</pubDate><guid>https://romanoroth.com/en/blogs/gitlab-devsecops-creating-a-project/</guid><description>&lt;p>Before we can shift any security checks left, we need a project, a repository, and a pipeline that actually builds something. In Part 2 of our GitLab DevSecOps series, Patrick Steger and I log into GitLab, create a new .NET Core project from a template, and look at the &lt;code>.gitlab-ci.yml&lt;/code> file that GitLab generates for us — including the build and test jobs that will become the foundation for everything we add later.&lt;/p></description></item></channel></rss>