From 6b41809891129f8b12c37abf60b156498df94a35 Mon Sep 17 00:00:00 2001 From: 2211275 <2211275@stud.hs-mannheim.de> Date: Mon, 18 May 2026 18:46:39 +0200 Subject: [PATCH 1/3] positioned github at start --- DMS_paper15_gitlab.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DMS_paper15_gitlab.tex b/DMS_paper15_gitlab.tex index c039d94..b60cc4b 100644 --- a/DMS_paper15_gitlab.tex +++ b/DMS_paper15_gitlab.tex @@ -163,6 +163,7 @@ \item \textbf{Internal} Ein Interner Nutzer besitzt meist eingeschränkten Zugriff und wird durch GitLab automatisch erstellt. Interne Nutzer können als Bots betrachtet werden, die automatisierte Prozesse durchführen, die durch normale Nutzer nicht ausgeführt werden können. Interne Nutzer sind für alle Lösungen von GitLab erhältlich. \item \textbf{Service} Service Accounts repräsentieren nicht menschliche Nutzer. Service Nutzer kommen bei der automatischen Ausführung von Prozessen und Pipelines zum Einsatz. Service Nutzer sind für alle Lösungen von GitLab erhältlich. \end{itemize} + \subsection{GitLab vs. GitHub} \section{CI/CD} @@ -172,7 +173,6 @@ \subsection{Pipelines} \subsection{Jobs} \subsection{CICD-Komponenten} - \subsection{GitLab vs. GitHub} \subsection{Anwendungsbeispiel} \section{Selbstgehostete Lösung} From 42535b8ac221e801c166754399bea9889f5bcf15 Mon Sep 17 00:00:00 2001 From: 2211275 <2211275@stud.hs-mannheim.de> Date: Tue, 19 May 2026 10:55:31 +0200 Subject: [PATCH 2/3] github introduction --- DMS_paper15_gitlab.tex | 4 + bilder/gitlab_github_user_count_q4_2025.png | Bin 0 -> 11816 bytes literatur/dms.bib | 625 +++++--------------- literatur/dms.rdf | 177 ++++++ other/statistics.ods | Bin 18108 -> 22106 bytes 5 files changed, 341 insertions(+), 465 deletions(-) create mode 100644 bilder/gitlab_github_user_count_q4_2025.png diff --git a/DMS_paper15_gitlab.tex b/DMS_paper15_gitlab.tex index b60cc4b..853d282 100644 --- a/DMS_paper15_gitlab.tex +++ b/DMS_paper15_gitlab.tex @@ -165,6 +165,9 @@ \end{itemize} \subsection{GitLab vs. GitHub} + Bei der Wahl von Code-Hosting ist oft GitHub die erste Wahl. GitHub wurde 2008 von Chris Wanstrath, Tom Preston-Werner und Phillip Jeffrey Hyett gegründet. GitHub wurde 2018 für ungefähr 7,5 Milliarden USD an den Software-Giganten Microsoft verkauft \cite{jrHowThis33yearold2018}. \url{github.com} besitzt im Vergleich zu \url{gitlab.com} eine höhere Anzahl an Nutzern für Q4 2025. GitHub hat verdächtige Nutzer und Bots in ihrer Angabe herausgefiltert und kommt auf eine Gesamtanzahl an ca. 179 Millionen Nutzer \cite{GitHubInnovationGraph}. GitLab gibt an, dass von mindestens 50 Millionen Nutzern ausgegangen werden kann \cite{Q4FY2026GitLab}. + Aufgrund der grösseren Nutzerbasis eignet sich GitHub mehr für eine kollaborative Zusammenarbeit an \ac{OSS}. Ein Projekt erreicht mehr Nutzer, die potenziell beitragen können. + \section{CI/CD} %https://docs.gitlab.com/topics/build_your_application/ @@ -310,6 +313,7 @@ \acro{SVN}{Subversion} \acro{TFVC}{Team Foundation Version Control (TFVC)} \acro{CVS}{Concurrent Versions System} + \acro{OSS}{Open Source Software} \end{acronym} \printbibliography diff --git a/bilder/gitlab_github_user_count_q4_2025.png b/bilder/gitlab_github_user_count_q4_2025.png new file mode 100644 index 0000000000000000000000000000000000000000..c5abe43c51360a7863e57224d4177bb64f1c8d9c GIT binary patch literal 11816 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\$$}5K ARR) Enhanced workflow management, enterprise-grade support (24/7), advanced CI/CD features, and compliance controls. Focuses on improving team efficiency and collaboration. Ultimate (including GitLab Duo) Large Enterprises \& Highly Regulated Industries (e.g., 1,229 customers with {$>\$$}100K ARR) Full DevSecOps capabilities: Advanced security testing (SAST, DAST), compliance, portfolio management, and GitLab Duo (AI-powered code generation and assistance). GitLab Inc.'s Operational Framework GitLab's operational framework is built on a few core principles that translate directly into value creation for customers. Honestly, it's all about consolidation and efficiency. They are the only cloud-agnostic, model-neutral DevSecOps platform, meaning you can run it anywhere, which is a huge draw for large companies. The company's revenue growth, which hit 31\% for FY 2025, is primarily driven by this 'land and expand' motion, where customers start with lower tiers and expand to Premium or Ultimate as they consolidate their toolchains. Single Application Approach: Instead of integrating 10+ disparate tools for planning, coding, testing, securing, and deploying, GitLab provides a single codebase and unified data model. This cuts down on integration costs and context switching for developers. Open-Core Business Model: The free, open-source Community Edition drives widespread adoption and a massive user base (over 50 million registered users), which acts as a powerful top-of-funnel for their paid Premium and Ultimate subscriptions. AI-Driven Development: A key FY25 investment theme was enabling AI/ML efficiencies across DevSecOps, with GitLab Duo moving from 'AI-assisted' to 'AI-driven' to boost developer productivity and ensure security and compliance for AI-generated code. You can see how this operational focus aligns with their core beliefs: Mission Statement, Vision, \& Core Values of GitLab Inc. (GTLB). GitLab Inc.'s Strategic Advantages The company's market success comes down to three clear advantages: platform completeness, a superior economic model, and their commitment to AI-native security. What this estimate hides, though, is the intense competition from Microsoft's GitHub, still the primary risk. Toolchain Consolidation: The single DevSecOps platform is a major differentiator against competitors like Microsoft Corporation's GitHub, which often requires users to integrate third-party tools for security and operations. This consolidation saves time and money for enterprise customers. Exceptional Unit Economics: GitLab maintains a very high gross profit margin, sitting at about 88.52\% as of late 2025, giving them significant capital flexibility to invest in their AI platform. High Customer Expansion: Their dollar-based net retention rate (DBNRR) was a strong 123\% in Q4 FY25, meaning existing customers spent 23\% more on average than they did the previous year. This shows the 'expand' part of their strategy is working defintely well. Financial Strength and Efficiency: For the full fiscal year 2025, the company achieved a non-GAAP operating margin of 10\% and a non-GAAP adjusted free cash flow of \$120.0 million, demonstrating a focus on profitable growth, which is rare in the high-growth software sector. GitLab Inc. (GTLB) How It Makes Money GitLab Inc. (GTLB) primarily generates revenue by selling subscriptions to its comprehensive DevSecOps platform, which is offered as both a cloud-based Software-as-a-Service (SaaS) and a self-managed solution. The company's financial engine is built on recurring subscription fees, meaning predictable, high-margin revenue from customers who pay per user to access its integrated development, security, and operations tools. GitLab Inc.'s Revenue Breakdown You need to see where the money is actually coming from, not just the top-line number. For the second quarter of fiscal year 2026 (ended July 31, 2025), GitLab's revenue was \$236.0 million, and the breakdown confirms the dominance of the subscription model. Revenue Stream \% of Total (Q2 FY2026) Growth Trend Subscription (SaaS \& Self-Managed) 90.13\% Increasing Professional Services \& Other 9.87\% Increasing That 90.13\% from subscriptions is the core of their business model, a classic high-quality SaaS revenue stream. The Subscription revenue of \$212.7 million in Q2 FY2026 was the main driver of the overall 29\% year-over-year revenue growth. Business Economics The real story here is how GitLab is monetizing its customer base, and that means looking beyond the initial sale. Their business economics are shifting toward a hybrid model to capture more value from heavy users, especially with the rise of AI-powered development. High Retention: The Dollar-Based Net Retention Rate (DBNRR) was 121\% in Q2 FY2026. This means existing customers, on average, spent 21\% more this year than last year. That's a huge lever for growth. Gross Margin Strength: Non-GAAP Gross Margin stood at a very healthy 90\% in Q2 FY2026. This high margin shows the platform's efficiency and scalability, proving that selling another user seat costs the company very little. Hybrid Pricing Model: GitLab is transitioning from a purely seat-based subscription to a seat-plus-usage model. This lets them charge for the base access and for consumption of high-value features, like their AI agent, GitLab Duo, which is priced at \$19 per month per user. This is defintely a smart move to monetize the AI productivity boom. Here's the quick math: a 121\% DBNRR means they grow revenue even if they don't add a single new customer, just by getting existing ones to expand their usage or upgrade their tier. GitLab Inc.'s Financial Performance The financial trend is clear: strong growth is being paired with a rapid move toward operational efficiency, which is what you want to see in a maturing software company. For more detail on the structural health of the business, you should check out Breaking Down GitLab Inc. (GTLB) Financial Health: Key Insights for Investors. Annual Revenue: Total revenue for the full fiscal year 2025 reached \$759.2 million, marking a robust 31\% increase year-over-year. Operating Profitability: The non-GAAP Operating Margin has seen massive expansion, moving from 10\% for the full FY2025 to 17\% in the more recent Q2 FY2026. This indicates serious operational leverage as the company scales. Cash Flow Generation: GitLab is generating substantial free cash flow (FCF), a sign of financial health. Non-GAAP Adjusted Free Cash Flow for FY2025 was \$120.0 million. In Q2 FY2026 alone, it was \$46.5 million. Enterprise Customer Growth: The most valuable customers are expanding quickly. The number of customers with over \$100,000 in Annual Recurring Revenue (ARR) grew 25\% year-over-year in Q2 FY2026, reaching 1,344 customers. These large contracts underpin the revenue stability. GitLab Inc. (GTLB) Market Position \& Future Outlook GitLab Inc. is defintely positioned as the leading integrated DevSecOps platform, aggressively challenging the incumbent toolchain model by consolidating the entire software development lifecycle (SDLC) into a single application. The company's focus on AI-driven security and compliance positions it to capture a larger share of the enterprise market, targeting an estimated full-year Fiscal Year 2025 revenue of approximately \$753 million. You're looking at a company that's not just selling a tool, but a platform philosophy-so its near-term success hinges on converting customers from fragmented toolchains (like Jira + Jenkins + GitHub) to its all-in-one solution. Competitive Landscape The DevOps market, valued at around \$16.13 billion in 2025, is a battleground between integrated platforms and best-of-breed toolchains. GitLab's primary competition comes from Microsoft-owned GitHub and the Atlassian ecosystem, each dominating different parts of the SDLC. Here's the quick math on the relative market positioning as of late 2025, based on platform adoption and CI/CD tool usage: Company Market Share, \% Key Advantage GitLab Inc. 12\% Single, integrated DevSecOps platform; strong self-managed/compliance features. GitHub (Microsoft) 55\% Dominant code hosting, largest developer community, expansive third-party Actions ecosystem. Atlassian (Bitbucket) 18.61\% Deep integration with Jira and Confluence; strong presence in the Continuous Integration/Continuous Delivery (CI/CD) tools market. Opportunities \& Challenges GitLab's strategic initiatives for late 2025 and into 2026 center on AI and enterprise compliance, but still face headwinds from established competitors and a complex regulatory environment. Opportunities Risks AI-Native DevSecOps: Monetizing GitLab Duo (AI orchestration platform) to accelerate development by an early-reported 50\%. AI Competition \& Pricing Pressure: Aggressive AI product launches from Microsoft (GitHub Copilot) and other cloud vendors. Enterprise Consolidation: Driving adoption of the Ultimate tier, which focuses on security and compliance, to increase the Dollar-Based Net Retention Rate (DBNRR), which was 121\% in Q2 FY2026. Macroeconomic Spending Slowdown: Enterprise customers optimizing cloud and software budgets, which can delay platform migration decisions. Regulated/Sovereign Cloud: Expanding the GitLab Dedicated offering via the partnership with Amazon Web Services Inc. (AWS) to capture highly regulated industries requiring data residency. Leadership Transition: CFO Brian Robins' departure in September 2025 introduces a minor, but real, operational risk during a critical growth phase. Industry Position GitLab is a clear leader in the DevSecOps platform category, often recognized for its completeness over competitors who rely on assembling toolchains. The company's unique all-remote structure also gives it an edge in talent acquisition and operational efficiency. Win the Platform War: The strategy is to win on platform completeness, offering a single data model for the entire SDLC, which eliminates context switching and tool sprawl friction. Ultimate Tier Focus: Continued investment in security, compliance, and governance features drives higher average selling prices (ASPs) and targets the large enterprise market. Investor Confidence: The company's guidance for Fiscal Year 2026 revenue of \$936 million to \$942 million suggests strong confidence in sustaining momentum. This aggressive push into AI and compliance is why you should be watching their customer adoption metrics closely. You can find more details on institutional holdings and investment theses here: Exploring GitLab Inc. (GTLB) Investor Profile: Who's Buying and Why?}, + howpublished = {https://dcfmodeling.com/blogs/history/gtlb-history-mission-ownership}, + langid = {english}, + file = {C:\Users\Roman\Zotero\storage\C5XVTVNI\gtlb-history-mission-ownership.html} } diff --git a/literatur/dms.rdf b/literatur/dms.rdf index 9be1da4..4bc0007 100644 --- a/literatur/dms.rdf +++ b/literatur/dms.rdf @@ -839,4 +839,181 @@ This aggressive push into AI and compliance is why you should be watching their 1 text/html + + webpage + + Tipps-Tricks + + + + + + online + heise + + + + + + GitHub vs. GitLab + GitHub und GitLab klingen ähnlich und sie bieten Ähnliches: Source Code Management und Hosting auf git-Basis. Wo liegen die Unterschiede? + 2024-02-12 + de + + + https://www.heise.de/tipps-tricks/GitHub-vs-GitLab-4597154.html + + + 2026-05-19 07:55:34 + onlineGitHubVsGitLab2024 + + + attachment + Snapshot + + + https://www.heise.de/tipps-tricks/GitHub-vs-GitLab-4597154.html + + + 2026-05-19 07:55:39 + 1 + text/html + + + webpage + + heise online + + + + + + online + heise + + + + + + Microsoft kauft GitHub für 7,5 Milliarden US-Dollar + Was sich bereits angedeutet hat, wurde nun bestätigt: Der US-amerikanische Softwarekonzern Microsoft kauft GitHub und legt dafür stolze 7,5 Milliarden US-Dollar auf den Tisch. + 2018-06-04 + de + + + https://www.heise.de/news/Microsoft-kauft-GitHub-fuer-7-5-Milliarden-US-Dollar-4067633.html + + + 2026-05-19 08:01:12 + onlineMicrosoftKauftGitHub2018 + + + attachment + Snapshot + + + https://www.heise.de/news/Microsoft-kauft-GitHub-fuer-7-5-Milliarden-US-Dollar-4067633.html + + + 2026-05-19 08:01:17 + 1 + text/html + + + webpage + + CNBC + + + + + + Jr + Tom Huddleston + + + + + + How this 33-year-old college dropout co-founded GitHub, which just sold to Microsoft for $7.5 billion + Chris Wanstrath co-founded GitHub in 2008, three years after dropping out of college. + 2018-06-04T22:20:12+0000 + en + + + https://www.cnbc.com/2018/06/04/chris-wanstrath-co-founded-github-which-microsoft-bought-for-billions.html + + + 2026-05-19 08:08:21 + Section: Make It - Entrepreneurs + jrHowThis33yearold2018 + + + attachment + Snapshot + + + https://www.cnbc.com/2018/06/04/chris-wanstrath-co-founded-github-which-microsoft-bought-for-billions.html + + + 2026-05-19 08:08:27 + 1 + text/html + + + webpage + + + + + Q4 FY2026 GitLab Overview Investor Presentation - Q4-FY2026-GitLab-Overview-Investor-Presentation.pdf + + + https://ir.gitlab.com/js/pdf-js/web/viewer.html?file=https://s204.q4cdn.com/984476563/files/doc_financials/2026/q4/Q4-FY2026-GitLab-Overview-Investor-Presentation.pdf + + + 2026-05-19 08:28:49 + Q4FY2026GitLab + + + attachment + Q4 FY2026 GitLab Overview Investor Presentation - Q4-FY2026-GitLab-Overview-Investor-Presentation.pdf + + + https://ir.gitlab.com/js/pdf-js/web/viewer.html?file=https://s204.q4cdn.com/984476563/files/doc_financials/2026/q4/Q4-FY2026-GitLab-Overview-Investor-Presentation.pdf + + + 2026-05-19 08:28:53 + 1 + text/html + + + webpage + + + + + GitHub Innovation Graph + Explore a universe of data about how the world is building software together on GitHub. + en + + + https://innovationgraph.github.com + + + 2026-05-19 08:29:37 + GitHubInnovationGraph + + + attachment + Snapshot + + + https://innovationgraph.github.com + + + 2026-05-19 08:29:42 + 1 + text/html + diff --git a/other/statistics.ods b/other/statistics.ods index b04702edaab5a8456292df3aa47344e02609b0b5..ee90a1a22ed4690414ca8887549702a17c646422 100644 GIT binary patch delta 14904 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 XCY6L3DKbx&i2Lg^ delta 11955 zcmb_?bzD?k_b*6DBi$j5bT^1}H;Ba0Js@4ek(Q1DR8qRT8>9uKyCftXB!`BJKF|BS z-uD;xpSwSw`Ru*US@AvV%-MVGwbw!^d}}m3rn(XWB0d}(3LG4sT|zvj2Es#EW$Ft5 ztFM`bCwugJaE2iG`1gPlUG(=Yh!Y0OuM3cG_$-hC3=E(a$;Y5lo+GwT9Uht*fvwn- z_yRQXLJ~+k9;Fv^`K95#45a8<2%?- zxsHrFYHAks>zA9?xT_j?QisJ_cxtv&PevMQVntf)?a4?Nlfw#wdvLQKxp43`;83&# z*&L8(Bgq3Z$Q5pkIAQ^Nr~_oAKE(Dy<;yYIGdDujvcWKOFyRa?>sv&Y_eA9cq$`h` z`*43&0C z!^XmLF@A?-POH5C%5Fiow!X~Km;h=My)s?J`$`X3r8^{P8M3}EK4_8M*BLA-ge6H=c8iBw;zQAi)|*k z3sm8nef#oT=It!o&P0+l$_9`Xq%Vf*3ToW7<1X^{f8gVw8d$n{ORm2!cfF*+t^cxf z9N5DF7)cC2iLca=eNRN^zk6k!{4ThRySbJ6NJ;M?`X4T%-V+%*hotfENa3L7y&~ZE5%F6Kn5ne}kjQN-Fti|;UgI%3AqMorl9HY$9zf6$*rYh8ke#`u(03*3$ z>EEi6x!i1}XTKKxHtG^Y+{~M8?;i6T&JuMfd-Tq;5!`>v8EH-Yh3GG_@A%jESNI`r zO_CT!q~q@F8q%M2NsJtyNWGVJ6M~o{FY_ANH~&(jvg2|GR#$v@+V))^UK$#pDc40f z?H3eOBhjo_TGNs!c8+&hN_fp)ceHZ9lo&rKVQ@Qg)A;-0e(6}BuOt7wY}n7kaqCyJqVr zJ}wgS*Zm7>R#Bbp&%Rl;s^W`tPmEJ&L{&1CYpwGCqLHgZ3MAt4zbou-)&S9%St43q z%^y?~;~C2!qx}5ANw%LScNL_GKL4eRseb!YTIbq4N%G8~H5u89W-)A24#S%?mIrQK znnSoJ0fRa2;Bj{_1smU)3b>5L?p3x+A5CABJl=jO{PyXVTY%ul@?grVLWoyn14#A?vxuy-7d4H=e#}cda`(J5r;oW& zkZVNDj`tHtj*1V~X-)syUnMaoRLj?JuQQ4iZQ2zMh6`IHBaF5W#=Wv(0r!Pp`7h~8 z+X&%TN7uiM-X;Zj#)B*3Uwymf$mMAjFoYrG;G6lP+48VU8%tf0?K(XBDU=LK5iBlI zIpRp!1SRenOdWuLv@OlZi})u&bzw(g&lHZEajUH!@>H@>;FF#R>7+}rvTj?ewhpQJD8kx#$-%8O`v za{#ft&WX$7;?jWoHiBy*VmsVD3OgEiFOnBta4R~IK--L#zBBv*2JG^%VUTaGz{_s3 zC%#=njT$&xLRbvgxK(R3RU2u<*$<=Sr*(goB42lWNq8W2?b1bJA|WY^VI4haXup}k z>pbP=o|89jLX9bo*@CFrp~$dbvfxe}?XxSs4`Y1+eYtJW;GdQu0*xFcFUiOmgg2Q& zIA@w56%-FY6?v2XqF}jaG&dgWQ@E0IDB7C#DHkye9nE&3}luO76Dx5%H*}VcaKU2oyr3_U2MSrQx=Ai=-r`RC42}lKYmjag|n( ze0zlO)*qcs`WflLc>}cl9+_Dr-qkYNdHyF<7MDvg(04zQ{3&X=_WItj1xuJr)hJxlLqWMHB6uE z2uXhN1x;)6O~dPGfwgm*?2HQmTn?0XRr!c^FY!%EM?L3G9#PdrzW)TO-N zia6=VM%nRdt7u5K>QZMM>paIyg3mY}^s&&+$+BB{hF^h)GM)HXSgL71UL!iR*xNP# z13!oM-}qmZY-NdZ$r#;i86Xc>st~n1W`ULkiZZ5mXzVNG@hZ zElk1vMW6V;94;X&Uh~bFfGhqRRBdo?t#KAE7FL`A{D{S}y?prHH;Olmw?Qc(d_ihHwmn5f>}nJ75K#PD8_2iZETfKb`WZWZJ` zG(EqLsCtGzdJd2CyjStAF7jaLVC$+qHc?>QegDyM$-tS5K9RclYP>;g!`jmz`;Sh1+W1H*L6Ys_R)$@jjDP2)ox*mJ7!z~7<49N z30vIs4)CNFgY<)}muDvqQhF~I#cCx#rWC!-a!^_|IQ6*R+F!_Nq9;sv?UBmi_iW4c zgU}MagGVaWLRk&RWySQWO5>%Z(zC%v14VQn{DHfj3jsiO$=u!uWzu_Q+JM!tB{X3&-&%+_83D$~u> z-5y_eFnn_nM!+Mv5d-uRjX>@l9Sz-tS1qS?CL|OiG;G`wYZlhc3vv&KdR^}U&W2H_bQ5~PS%y%VQ z3S-|nwlgbYLY>UHQyHs`pS>?13R}th=BExp zq#62&PCmm$S}I1z(-$arGc+mJ@#H>$C4H>!d4Tgymy`1v68<11ZlpF&jCMyxEnYUi z;H@OrBI)s7t6}@_+|yPr70kzrvbciSqE^Q`WVA%Dq}ZfOh5FE56d<3*yur}^kXITl z5O86?HZ|pp5kFwRsNOYE8G#A#5Tf%0#MI8knVj`NE#4#U8)M;>5A#Nx- zRYd4dc8R}niFBuHB~Ui3rsGb!#S38M$((jGyI4q(w@3J1`7Nq7*TB{zb}n>Z7&km8 z5{whC5f%I5E+=la#asSq2gMtDj<}Z;;)_vEh&07(faQRGj!Chf&EqLRER*+%E9dms z_LcbZ+pjWs%(?L5>a78V2nS`F5Gjv~K62E}xBC2z+vu#_#9qhzJ%ZX7T zR1)V_-LN(ZQwDddI^fJ&V!VU==ar=vO$J&HiOCx+Ytyt8NQG~j+=htSUX?iN zcMoL=HD@kF&IH*4Bz5pDpk`0ky*QtK$3!3O`l>yWE%Sog=K+jpt(e~=UjLL$?JIV~ zAUfT>_J>f>OhV;G@5fI%kQ>Hu7f(7qC0SHq!Aj=(jbo_P_ua zC}SPA+tUx4X}BL_d{MF#gBv4hi5R1C(MX zIq^fzZz7l~RelJ@F6gGrKP9A&V+u6-F5J)?w~z!?4h3RQ_S`Q%*;@d}Pza9~4pNE78}Ws{w&^95 z0`l2)j2Pd+5u{VQwFcfyG`0vXVDX~hoG50@=0o_@93BlZkqxD^?d-F!GikJ}x8w%Asx(``TKWL+}Cqx}^4=eR?sR&$#u9tQ;0m?~T-YIw(<%FuQp_7Aac8 zIQC??kDqF~>+?3VFpZ_+Bscxf_7cv6E+{Z&2O=29tm$}pf}Sg~edxPez05Z5#ky+;PIZW0k z0fU~r(+Ww~tyfqwlX!$`u~J9JdwMt+qr9TRuf|Siqi~ubpEs2=G_(b^ixGYGt7wK{rz zqQ8`71Hodjflvxw*+lo66i2y)S+|nG=jV56Pt9O;mEPHGU>ZfD_~6 zrY-iF)h-FLW{L43AIwK@Xi;5}M%^=2@m>UjlHGS#X6QZRG+}4IU8Lvsp_8{=4+q( zF29c94rg++>53ey@>sTfS%&??a#x}=`_j8{)!ir_Qw6hZk$FLW%pmjXEVUO#-%DCQkpPjR-ZANQU&emf2mYkTEIZXlC)BQQp3 zL)W+&PI?;v(411&inTo*LmuCv5+0I`QR>ZtjG>T7K%b_repRKRtnDJ*$?xudXJwfj zTb9Qnjg-iV6M-wF=+%geD3MJNV22zA2-lv?73%TMsDQWFwlu81iP*$Qrrzm|<*&F^ zi6W&6N~eCCrsRxkEZn1KGsH_N&(c$Fy);AXibY_jmuyw%?Z#-DQB1TDbPTz6HZVn= zC8bdh&dsAc)0$(*mhYUg5tDg&YQAtW{3sqW3 zqgs~Ij^RC`F{#}O^xyIcq#3qJu~&6*4f?SMb_=#CNYeQ5YKH7_)RhFvP@r@iXJyM3 zE&^N7etQ$VD5}-Ou1}?uLw%(lpeDRYncTH~ImGj7k?FYs=I#?PmK+Ev2dGrzM`xjQ z@}$L=Wsmuu^2FU!tDvR5K6w~}f-ZbQ-;u?1nDLWJFzUR$NVkkgg(%CB%a5 zCBNwmpRCS)dc>l)_z1>f3+R4mprwV_-@cIl*2`T_LtcbyvKr&?T_q^XmSOpgtwRK@e>G?Ce&fLU*`fZ&RM1Emk3h%q*89)o7RzGd zPBSBfdfiQ_Y^^0qYX|U={U7u$cQ7qCTk*fDF)hvCxS*ZOWiVEz$XRbW`Je%lLu)_3 zZ)?Vl+gGoJh_VEA0n?~581L&Nnb$oHS4Y1NFR#-b5WfGse4Uib)w^xQAsF8FO>@q7 z$Q$h^sKfb)3H{9$7BOo+V`bxE{`=4C2n08+!z0#=oC4=o1>D<;tcD{mf3(kvfE+|t zaZ4-j7ECf>_bI@+z^{df*+Egy5E%{*i~3&+5gf{s--&d?7G7Rn5fKq-X=z18MJ+8Y z0|Ntdb8`m=2RAo2Utizg;NZx}NC*UynwpxElT%t+T3cJ&+S=OF(=#+QG%+!;xVX5n zv9Z6ue|ma)cX#(-=l=da4}k|zdl;g=me+TMgG0yr^@E2?Nh5xMDx)ARsqM7@O-J?2 zX~YeIf9es{)%T_AmD11!0UA&b|M^JBRX6#;h~WvH-@#jMhJ&+8fbd( zn3ie}bg#bn6Ixy1e|H$MD|g8m6V}T~FG+sMc$Z7ljB7-5`SlyH3NTfiyN@$OM;_8a zrIPlQ^pY5T@?DJ&eLv+3QzGZ6lB4C={XqXRCNso%ix*mRIdyfHo14yhC%?^Wz(ovv z8)9YV#dmRy7(U|Ug_Tc!_B7Vm+%=6vHW&4ePt`N-(XY&TXQO!+=5!J- zdF{pE>rPc$dksRMyNByFYD@V~(#$9U5sWOve*af!eNLcU!`EuQ_QAZYN+f0Zvve)Rw zD>I8sJXY@Jv$M1oC8p8}hioIT1+*rFTsiaFJr&1=wGv_mnEE;muS_J&r7Ux@2r#&% zWBEY!52q+KKj+3isAp0*E^`)CI}TWfBj>Cy5@LobW<)Q3)YL>2*>iX=__aHbah8%L zpG;1&?3gzZ7-vap=P6r1cw4g5Tb8|CFk0sSqk(U)wPYxxId-<&X>GS8-H08Q_!j;V zvdP=G@Wh`uI@L!Xx8AI6$j%0UsT9SWa_xjC++*)TX3;dr!_H?Q$Hga|^|3aKoTP;M z)oj-t2l70j*>uGVXGxJUI|KFDO@1PL>aQo3vmwfLfN#f-y+qIeq8hwth=7V*z2A(D zx|lh2^U;0z_}7Z&SPb(If#OOW`%2EUO1uNW*;8;PBZkLg+aF|gKO^~l==#R4d*?zN zhmH(2N6otfz?o%QW*9khSo$A-l1u4BOo)4*fudb0F_HUTn=D%UNF$ibe@z9dK_QAE z{_3pafO+G*(PackGb5dkVhW~z6VvTmCBhd@tGAoH|7mV%Qtu6sc| zn(BH9Qa=6~_4tA?4J*JDZ9{%^1{NPPXeL+=t!e#0r{!cL{3XiiVkG1MYJYTiM1O&Pv&UclrdM(KA zYGnhnM&oe=e0c(u%LcvNQ<}wXVb`p-x_GtzkV)}a)gp9Rw2BF&A1uR49OO3R(__s* zyW8nW)$EyXIxKufgM(cO%TGv`$J=)w>=ZyoOzK+&NmH^rBg=qg2|L%PrESmY@nUfE z=Q?^Uht|g?xGMbgSm-wuJo)hYh*;`ii$P>BK~o5G0S3Q%Jv=W?qNXvFwz5|ntK8o< zM4W32$#wNoJTcMRB~2Do#$VmmirWLcs_I8e&GiLZH*Be@f}-9u{WyTHKC2y_kkG|K zP`!TM35W576Al3pQjj5B!JL3#MK{bWUJg_w_DkkyqJ**sosQXsRt$68V`5%cNx3V$>MAyPDXXUKC7! z&{o(2fjBwY?(!6@^)K3dsZya*IqhI#tjx`_=+v|vVGfo(#TLsZuV`KeJOSQI9<3r~ zg49=#gCf;uDfslv{r)!*SwON)oT%I?U?}fE#jUYgmOgO=X!+&la?GI@K?Hq&G^l4J!gpFZ36~o;eD#gl;f; z+naw$Wv1)n47SxrL2i#MN)YeozqoM_#q!yRHZl{WQ=VDqYIGM_*8!G1jRYEPIE|BQ z+Wj~V38VZR_%WQ~Hlw-Rj+$^WCeBV-LN|F4bM}oB*hmR;nxnqxUabz%k{b7ge!CXg znuZA#sUx)~tX*Ixv<@;AbSrSmtGUL8qVp|8iSiHM%`ZGNdz^Q3%on{&|4Zhy$7u0f zl~`}F-$VAOh0c2eu&Mm{O?!Nr@{Cyk!wgIy`gB{vbNyq&FhF{cZl!ON+YuQmqwADTm;n#*~vQz>UQ9y z`4;!(@7NX~m-<+TIn_4KTxGjUM#_wlMdgJitmOLW;=w&R>19Xkb$+-KGkXke zn(@++W$S0}LZ8Y{)}%9k*Dza}>m1LNE?RGj_`-d*!5E;sSa7~lT0h!aPL!dWHwx^B zc;9Bd|G2v|oPHNe-X91>fJfl``>XGMdg{h-`|y#!I|UUK3W#$gxz)u+zi~a@^pJS? z=lLfHWV1*3pVe-Nihcjdf7}-~<;W3B^`#-DU`x7gunWiEbMm}g%~r`L^m=SD1SgVL+(^-9WYr;zd?IWO1TlUtRxspdQg zFx2Y&R;UM4{b)oQ2*}Ep5-Gj5Y^~_wfWm=aKFU7bo3y%b&pWVxtG3yR z`!_fPhqfJIAUPmlsfIyT2%}B(v3hjuM@`%lrZiX3u-{zi#LV(lYWCL+U#j|?8@AU2b?)P{|-6UZn>uVKOFfzll9)Db0TUHZK*&aG$z-Z%&54kf#S6wEyqJzLlQ2R z(x^L#(K|+kjFy7*IcbDFPJqzoZ&!~N-iJ)xPdcg_|v8!G(t^ju-%)fL*?)e#mom|@*S0a z#njXBVz}qX^`psNW?n`DD~rF;Xh9j;jwDT}E-NLAF+ik!D%+yG}jxHj|gsHgL=BD~b} z{myzdD2%B>v%Y1323$Dhors37m`#Iiz!kv$EY`dR4{xUi$}?a4_90MP;=+B^T6ONY z^w{Xf*YDn@7y_0y--xE4%Z#ozAM_z!*<8mBef2U~WHhG01$HbSSFp+xOr#M@(fcNU zkwsvW>X&FD!UJ}Kpf#p~l~73fjLnB!vIN?fT1A1ckR6(K69yu<5=}MstOOXwtQY&u z9+)O~uIH#nmR5YQLSnMg>TQUTcMB7&1P;2b7p;{@eCOz#ig~%Unl(B4g>oX(i)7i% zZM+?J#KMuC^B-fyi!)!Ts|Vzdz!qslHGkh0xl^@||%{At*DwUw)H5jakI ztqQQeF2q~i9?$QZbKxl+6579;)7CLCr5fCn!XHYuXJqE7$8fr(=&mHlN-<1RQ3J8v z&IS+LT^GuwmwdB2XNomk><7mTj);VWf!b<>sH=yUSkU^Z9_9qL6EH|7X` zua#EFDxcct<&H8%bK-{#CPmN;;@>Nmp8%Eko_v$@ZK7ix?`!;a24V45THoc$p^&6= zHaLThZN)3I$fxq%625_^36sv{Z^P--?Iy*mC76W#d{$4}Exh&#mo>XReeDV>{l}{< zWHkrov$30(zaaR9lwQ|U9?jDP-k*-!Ur*`iv_#Nbat(>!Jt0;w7SP8aT6XtaQw10Z z=?O5AhCF7v!4J%Wb6DNbCGac2`NE$Uxtw-Sr&(t#A=K zZW%WCx^{sSOH-<^EWEGc#JXLf1lo;f4&`JOuMmLjjVY`o$bSJ&nH=S|)9xpcrcH6^ zMf_Pxeg)BGUzyK^5H#-UgZ|mdKlB;2gD4cB6tMb4^#ipLl8{#@HR#l5LK!@G5j2Mm`S%b-45xT zjNX*nM2FsR0^_eW6(0gvE{Aw1ba4&Ry8GHEB2-~-SbF3@gg#k1NaeT>r024aoxTYj z78~28#GERm`2rKsT5!lDkQ&lZf2@#e5qK(I=Vx=i9||(&vioDp@-R946U#j8VE#q^ zc@g;M>fhU(e=+^f!2Ivc)IU~$f2Ohj4(Wdw_!Id5C)~h)2kO6I z`fq^$7oJ~x#D5;^|GxXb;QoL5|EECFvIG=+G?%`FQEV-L< z#BxKPsuTV$o)uPS0P1v9)HXQrTTfVMs2V@by@kD1*21EG5;m>)POKv8B#l(4zA7{8 z_T2vQi%9jndKv*h*=j5Lc71-jT40(bxG)_&Kq5v@@N)MRxFz()ueFS0VEV>p2EBwp zdUNB`m(}?TA+S7JvIvg*rtawzA;kmHxtYPKAelRY(Z_kC^FU|-XftR*@MTPE)&_07 z%V7N@o+~MoWXeExgU_!E5|cXxh>`OyHR{+UZ4ulxpk28wK~L)V#?Zgm?VxaB-D>r8nL_$l=o@`|wC3GT@`PO{%)}*ygc~ z+)oNN-hVY4H01^Yx?^S8rRPr6`}jy-)djtlP5)suUst2($&7)2^k(*vc{RO73U5*> zMp(}k+zJXRecnJ{uIFJ@sZ!@pzn7k6?0O9-#_hZ0*9JEQhC4{fE8rMVLibQh>h&s# zTdL$w^y~Tb9hmI%VTrCx#*Eze1$I^aGJBb&V+`EnVN;8oj*;&UWFD9PuudYmhS?3@ zBmBzj@)*IWV;+teUnBp@?7~07hx?~S8bYth^ZVtQXp=!aG@t$+XFiPUG--d27d0h* z_Y_(Jzk59`5v+$2Cc}RhH$gsWiBSK#^k?Z2+Cz%=-;IC(BB4VJ{9^j^1pA>1>5oQ5 z1qbJ9>E>qZXzj}G1$Ous(!YzQ4F5bReWb2Il5Uoy8S8nclG!mNpCo~hvf1f&65ohAx6sjp8)@KGr=G1aB$U<5H?*ZEKE2| OINFD_d63kvyZ;A^oEgyo From 4087d4a54bf52403976ee75dcf585eeb20982d8a Mon Sep 17 00:00:00 2001 From: 2211275 <2211275@stud.hs-mannheim.de> Date: Tue, 26 May 2026 15:54:23 +0200 Subject: [PATCH 3/3] add github ai, cicd, feature comparison --- DMS_paper15_gitlab.tex | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/DMS_paper15_gitlab.tex b/DMS_paper15_gitlab.tex index 853d282..6f3b536 100644 --- a/DMS_paper15_gitlab.tex +++ b/DMS_paper15_gitlab.tex @@ -78,7 +78,7 @@ \end{figure} Diese wissenschaftliche Ausarbeitung beschäftigt sich damit, inwiefern sich die von GitLab v18.11 bereitgestellten Werkzeuge bzw. Möglichkeiten eignen um eine beispielhafte Anwendung zu entwickeln, zu testen und einzusetzen. Ebenso wird betrachtet in welchen Punkten sich die Implementierung von \ac{CI}/\ac{CD} in GitLab zu seinem Mitstreiter GitHub unterscheidet. \subsection{Softwarelösung} - GitLab ist eine mit Git kompatible Plattform für Code-Hosting. Der Code von GitLab ist in Ruby verfasst \cite{degeler_gitlab_2014}. Unter der Haube verwendet Git die relationale Datenbank PostgreSQL. Auf GitLab kann mithilfe einer Weboberfläche zugegriffen werden \cite{gitlab_about}: + GitLab ist eine mit Git kompatible Plattform für Code-Hosting. Der Code von GitLab ist in Ruby verfasst \cite{degeler_gitlab_2014}. Unter der Haube verwendet Git die relationale Datenbank PostgreSQL. Auf GitLab kann mithilfe einer Weboberfläche zugegriffen werden \cite{gitlab_about}. Es wird differenziert in die kostenfreie \ac{CE} und kostenpflichtige \ac{EE}. GitLab kann in folgenden unterschiedlichen Formen genutzt werden: \begin{itemize} @@ -165,8 +165,12 @@ \end{itemize} \subsection{GitLab vs. GitHub} - Bei der Wahl von Code-Hosting ist oft GitHub die erste Wahl. GitHub wurde 2008 von Chris Wanstrath, Tom Preston-Werner und Phillip Jeffrey Hyett gegründet. GitHub wurde 2018 für ungefähr 7,5 Milliarden USD an den Software-Giganten Microsoft verkauft \cite{jrHowThis33yearold2018}. \url{github.com} besitzt im Vergleich zu \url{gitlab.com} eine höhere Anzahl an Nutzern für Q4 2025. GitHub hat verdächtige Nutzer und Bots in ihrer Angabe herausgefiltert und kommt auf eine Gesamtanzahl an ca. 179 Millionen Nutzer \cite{GitHubInnovationGraph}. GitLab gibt an, dass von mindestens 50 Millionen Nutzern ausgegangen werden kann \cite{Q4FY2026GitLab}. + Bei der Wahl von Code-Hosting ist oft GitHub die erste Wahl. GitHub wurde 2008 von Chris Wanstrath, Tom Preston-Werner und Phillip Jeffrey Hyett gegründet. GitHub wurde 2018 für ungefähr 7,5 Milliarden USD an den Software-Giganten Microsoft verkauft \cite{jrHowThis33yearold2018}. Der Code von GitHub selber ist nicht öffentlich zugänglich. Für Github besteht keine Option die Plattform selbst zu hosten. Nutzer sind daran gebunden, unter der Haube, auf Services zuzugreifen, die in Microsoft Azure laufen. \url{github.com} besitzt im Vergleich zu \url{gitlab.com} eine höhere Anzahl an Nutzern für Q4 2025. GitHub hat verdächtige Nutzer und Bots in ihrer Angabe herausgefiltert und kommt auf eine Gesamtanzahl an ca. 179 Millionen Nutzer \cite{GitHubInnovationGraph}. GitLab gibt an, dass von mindestens 50 Millionen Nutzern ausgegangen werden kann \cite{Q4FY2026GitLab}. Aufgrund der grösseren Nutzerbasis eignet sich GitHub mehr für eine kollaborative Zusammenarbeit an \ac{OSS}. Ein Projekt erreicht mehr Nutzer, die potenziell beitragen können. + GitLab und GitHub teilen sich neben demselben Namenspräfix, ähnliche Mechanismen \cite{gitlab_gitlab_nodate}.\\\\ + \ac{CI}/\ac{CD} ist für jeweils beide Plattformen erhältlich. Unter GitHub bieten \textit{GitHub Actions} die Möglichkeit Build-, Test- und Deploymentprozesse zu automatisieren. In GitHub sind diese Abläufe in Form von \textit{Workflows} organisiert. Ein \textit{Workflow} wird durch ein Ereignis ausgelöst. Ein \textit{Workflow} ist in \textit{Jobs} aufgegliedert. \textit{Jobs} beinhalten Anweisungen bspw. in Form von Kommandozeilenskripts, die sequentiell ausgeführt werden. Eine \textit{Action} beschreibt eine Menge an wiederverwendbaren \textit{Jobs}. \textit{Workflows} werden auf einem Server bzw. einem \textit{Runner} ausgeführt. Für GitHub ist auch das eigene Hosten eines \textit{Runners} möglich. Die Verwendung von eigens gehosteten Runnern, sowie der von GitHub bereitgestellten Runnern ist für öffentliche Repositories kostenlos. Für private Repositories existiert ein Zeitbudget.\\\\ + Beide Plattformen bieten KI-Assistenten an. Für GitHub existiert \textit{GitHub Copilot} und für GitLab \textit{GitLab Duo Agent}. Aktuell kann \textit{GitHub Copilot} mit einem eingeschränkten Zugriff auf Funktionalitäten, kostenlos verwendet werden. Im Gegensatz ist aktuell eine kostenfreie Nutzung von \textit{GitLab Duo Agent} nicht möglich. Copilot beschränkt sich auf alle Artefakte, die in einem Code-Repository liegen. \textit{GitLab Duo Agent} besitzt einen größeren Kontext, zu dem zusätzlich Dokumentation, Planung und Sicherheit gehören. Aufgrund der Aneignung von \textit{Visual Studio Code} durch Microsoft ist \textit{GitHub Copilot} nativ enthalten. Eine Unterstützung für \textit{GitLab Duo Agent} muss über die offizielle \href{https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow}{Erweiterung} ergänzt werden. Interaktionen mit \textit{GitHub Copilot} werden standardmässig von GitHub zum trainieren und verbessern von KI-Modellen verwendet. UM eine Weiterverarbeitung der Daten zu verhindern muss manuell widersprochen werden. Für beide KI-Assistenten kann das unterliegende Modell variiert werden.\\\\ + Das Hosten von Code-Schnipseln ist in GitHub als \href{https://gist.github.com/}{Gist} und in GitLab unter \href{https://gitlab.com/dashboard/snippets}{Snippets} möglich. Organisationen können in GitHub ebenfalls abgebildet werden. \section{CI/CD}