# gitlab

Published articles for gitlab.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## A serverless, data-driven Git metrics dashboard using Amazon Quick Sight

DevFeed: [A serverless, data-driven Git metrics dashboard using Amazon Quick Sight](<https://devfeed.tech/articles/a-serverless-data-driven-git-metrics-dashboard-using-amazon-quick-sight-42128.md>)

Original publisher: [Read original article](<https://aws.amazon.com/blogs/machine-learning/a-serverless-data-driven-git-metrics-dashboard-using-amazon-quick-sight/>)

Author: Saurabh Singhal

Published: 2026-09-17T15:42:31Z

Content type: tutorial

Language: en

Sources: [Artificial Intelligence](<https://devfeed.tech/sources/artificial-intelligence.md>)

Topics: [dashboards](<https://devfeed.tech/topics/dashboards.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [AWS Step Functions](<https://devfeed.tech/topics/aws-step-functions.md>), [event driven](<https://devfeed.tech/topics/event-driven.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [API](<https://devfeed.tech/topics/api.md>), [parallel](<https://devfeed.tech/topics/parallel.md>), [ai-coding](<https://devfeed.tech/topics/ai-coding.md>)

Tags: [advanced-300](<https://devfeed.tech/tags/advanced-300.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding-tools](<https://devfeed.tech/tags/ai-coding-tools.md>), [amazon-quick-sight](<https://devfeed.tech/tags/amazon-quick-sight.md>), [amazon-s3](<https://devfeed.tech/tags/amazon-s3.md>), [automated](<https://devfeed.tech/tags/automated.md>), [aws](<https://devfeed.tech/tags/aws.md>), [aws-step-functions](<https://devfeed.tech/tags/aws-step-functions.md>), [concurrently](<https://devfeed.tech/tags/concurrently.md>), [dashboard](<https://devfeed.tech/tags/dashboard.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [delivery](<https://devfeed.tech/tags/delivery.md>), [etl](<https://devfeed.tech/tags/etl.md>), [event-driven](<https://devfeed.tech/tags/event-driven.md>), [execution](<https://devfeed.tech/tags/execution.md>), [github](<https://devfeed.tech/tags/github.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [technical-how-to](<https://devfeed.tech/tags/technical-how-to.md>)

### AI overview

This tutorial presents a serverless pipeline that collects Git metrics from GitHub and GitLab, processes repository activity through an event-driven workflow, stores results in Amazon S3, and visualizes them in interactive Amazon Quick Sight dashboards. It also describes change detection, incremental loads, and parallel processing for larger organizations.

### Source excerpt

Learn how to build a fully serverless pipeline that automatically collects Git metrics from GitHub and GitLab and visualizes them in interactive Amazon Quick Sight dashboards, giving engineering teams near-real-time delivery analytics at low cost.

## Rate limits on GitLab.com are changing

DevFeed: [Rate limits on GitLab.com are changing](<https://devfeed.tech/articles/rate-limits-on-gitlab-com-are-changing-41278.md>)

Original publisher: [Read original article](<https://about.gitlab.com/blog/rate-limit-change-2026/>)

Author: Sam Wiskow

Published: 2026-09-17T00:00:00Z

Content type: release

Language: en

Sources: [GitLab](<https://devfeed.tech/sources/gitlab.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Users](<https://devfeed.tech/topics/users.md>), [account](<https://devfeed.tech/topics/account.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [automation](<https://devfeed.tech/tags/automation.md>), [credentials](<https://devfeed.tech/tags/credentials.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [limits](<https://devfeed.tech/tags/limits.md>), [platform](<https://devfeed.tech/tags/platform.md>), [product](<https://devfeed.tech/tags/product.md>), [user](<https://devfeed.tech/tags/user.md>), [users](<https://devfeed.tech/tags/users.md>)

### AI overview

GitLab.com will align rate limits with subscription tiers beginning October 19, 2026. Free accounts and unauthenticated requests change first, while Premium and Ultimate limits change in January 2027. Unauthenticated requests are limited to 60 requests per hour per IP address, with preview windows scheduled for October 7 and 14.

### Source excerpt

GitLab.com hosts millions of projects for teams of every size that need a platform they can rely on. Demand is climbing quickly, and we expect platform load to grow several times over this year. Predictable limits are what keep GitLab.com fast for everyone on it, including the automation and agent workloads teams are building on the platform. To hold that as we scale, we're updating how rate limits work. Starting October 19, 2026, rate limits on GitLab.com will align with your subscription tier. Free accounts and unauthenticated requests happen first, on October 19. Premium and Ultimate move in January 2027. What is changing Limits align with your subscription. Free, Premium, and Ultimate subscription plans get their own limits, applied per user and per top-level group. Free takes effect October 19; Premium and Ultimate in January 2027. Signing in gets you the full limit. An authenticated request is governed by your subscription plan below. A request that arrives with no credentials gets 60 requests per hour per IP address. The per-plan limits are published in the rate limits documentation. What happens on October 19 There will be two preview windows for Free and unauthenticated traffic, on October 7 and October 14 from 15:00 to 19:00 UTC. Signed-in Premium and Ultimate requests are not affected, since those limits do not change until January. Unauthenticated requests are capped no matter where they come from, including automation running against a paid account without credentials. A preview window (engineers call these brownouts) is a short, planned window where we switch the new limits on and then switch them back off. Nothing else about the service changes while it runs. The point is to give you a real look at how your own workloads behave under the new limits, weeks before they apply for good. On October 19 the new limits take effect. We set these limits by looking at how GitLab.com is actually used. Almost all users are already inside the new limits and won't n

## GitLab Duo CLI takes a task from goal to done

DevFeed: [GitLab Duo CLI takes a task from goal to done](<https://devfeed.tech/articles/gitlab-duo-cli-takes-a-task-from-goal-to-done-42082.md>)

Original publisher: [Read original article](<https://about.gitlab.com/blog/gitlab-duo-cli-drives-automation/>)

Author: Rebecca Carter

Published: 2026-09-17T00:00:00Z

Content type: release

Language: en

Sources: [GitLab](<https://devfeed.tech/sources/gitlab.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [cli](<https://devfeed.tech/tags/cli.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [features](<https://devfeed.tech/tags/features.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [product](<https://devfeed.tech/tags/product.md>)

### AI overview

GitLab Duo CLI adds a governed /goal command in GitLab 19.4 that lets developers describe an outcome and have open-ended work continue locally, with progress checked against the requested goal and unresolved issues reported.

### Source excerpt

Complex tasks hit a wall at the end of every chat turn. Developers already know what they're trying to accomplish. What stalls the work is the handoff back and forth between each step. Without a pre-defined definition of success, the agent stops and waits for direction or clarification, so you end up re-prompting it step by step, effectively acting as its continue button until the task is done. Depending on the team, that handoff can mean minutes of back-and-forth, or it can mean the request sits until someone is free to look at it again. A back-and-forth like this is manageable for small, well-scoped requests, but it breaks down for the kind of open-ended work developers actually spend their time on: fixing the failing tests, getting this build past checks, or cleaning up the lint errors across a module. With GitLab 19.4, GitLab Duo CLI includes the /goal slash command, a governed, goal-driven flow that takes on that open-ended work directly, running locally while you stay in control. GitLab Transcend returns in October Coding agents are increasing your speed of development, but your reviews, security policies, and release cycles still have to keep pace. Our Transcend event on October 6 will demonstrate how GitLab is helping teams close that gap and explore what it takes to carry the speed of agentic AI across the software lifecycle. Register for the livestream today! Why turn-by-turn chat keeps costing you time This isn't about the assistant getting smarter. Turn-by-turn chat requires someone to keep it moving: read the response, decide the next instruction, send it, repeat. Even a capable model still waits at the end of each turn for a person to unstick it, so a developer's attention stays tied to how long a task takes, not how much of it they actually need to do by hand. That's why AI assistance so far has mostly changed the shape of a developer's time rather than given much of it back. Delegate it, and get a verified result back With /goal, you describe the out

## Optimize your team's price-performance with hosted open weight models

DevFeed: [Optimize your team's price-performance with hosted open weight models](<https://devfeed.tech/articles/optimize-your-team-s-price-performance-with-hosted-open-weight-models-42085.md>)

Original publisher: [Read original article](<https://about.gitlab.com/blog/optimize-with-open-weight-models/>)

Author: Brittany Lutz

Published: 2026-09-17T00:00:00Z

Content type: release

Language: en

Sources: [GitLab](<https://devfeed.tech/sources/gitlab.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Agentic development](<https://devfeed.tech/topics/agentic-development.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [long-context](<https://devfeed.tech/topics/long-context.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [ai](<https://devfeed.tech/tags/ai.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [cost](<https://devfeed.tech/tags/cost.md>), [features](<https://devfeed.tech/tags/features.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [latency](<https://devfeed.tech/tags/latency.md>), [models](<https://devfeed.tech/tags/models.md>), [open](<https://devfeed.tech/tags/open.md>), [optimize](<https://devfeed.tech/tags/optimize.md>), [product](<https://devfeed.tech/tags/product.md>)

### AI overview

GitLab announces three hosted open weight models for GitLab Duo Agent Platform: Kimi K3, GLM 5.3, and MiniMax M3. The release gives software teams more model choices for balancing quality, latency, and cost across different development workloads.

### Source excerpt

There's no single best model for every software development task. Implementing a new feature, diagnosing a failed pipeline, and resolving security vulnerabilities all place different demands on the model handling them. GitLab Duo Agent Platform is expanding GitLab-managed model choice with three hosted open weight models: Kimi K3, GLM 5.3, and MiniMax M3. Together with the frontier models already available in GitLab, your team now has more control over how you optimize for quality, latency, and cost, tuned to the needs of each workload. Point a hard task at Kimi K3 or GLM 5.3, which outperformed comparable frontier models in internal testing and costs less per call, or hand routine, high-volume work to MiniMax M3. Either way, your team gets up to 4x more calls per GitLab Credit than some comparable frontier models, with more AI model options to match cost to task complexity. GitLab Transcend returns in October Coding agents are increasing your speed of development, but your reviews, security policies, and release cycles still have to keep pace. Our Transcend event on October 6 will demonstrate how GitLab is helping teams close that gap and explore what it takes to carry the speed of agentic AI across the software lifecycle. Register for the livestream today! Why one model has been the easy way out Different tasks in agentic development need different things from an AI model. A long-running refactor needs a large context window and deeper reasoning, while a routine, high-volume task is often better served by a faster, more cost-efficient model. Optimizing for one task type means giving up ground on the other. As teams work through the technical tradeoff, whether they can actually access a new model emerges as an additional governance challenge. In regulated environments, every model and the infrastructure it runs on has to clear security, compliance, and internal review before the team can use it. Reviews and approvals move slowly enough that many teams standardize o

## GitLab 19.4 adds per-user AI credit caps, usage visibility, and session exports

DevFeed: [GitLab 19.4 adds per-user AI credit caps, usage visibility, and session exports](<https://devfeed.tech/articles/see-who-spent-your-ai-credits-and-set-fair-caps-per-team-42084.md>)

Original publisher: [Read original article](<https://about.gitlab.com/blog/new-usage-caps-2026/>)

Author: Bryan Rothwell

Published: 2026-09-17T00:00:00Z

Content type: release

Language: en

Sources: [GitLab](<https://devfeed.tech/sources/gitlab.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [scaling](<https://devfeed.tech/topics/scaling.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-governance](<https://devfeed.tech/tags/ai-governance.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [features](<https://devfeed.tech/tags/features.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [product](<https://devfeed.tech/tags/product.md>), [reporting](<https://devfeed.tech/tags/reporting.md>), [scaling](<https://devfeed.tech/tags/scaling.md>), [visibility](<https://devfeed.tech/tags/visibility.md>)

### AI overview

GitLab 19.4 introduces per-user GitLab Credit budgets, team-level consumption views, usage limits, and detailed session exports. The controls are intended to help organizations manage AI spending and explain usage across teams, namespaces, and projects.

### Source excerpt

Scaling AI across your organization depends on knowing where the budget is going and who's using it. While a subscription cap keeps your total spend within budget, it can't tell you how much AI was used by individual teams. And predicting future budget needs ahead of business needs gets more challenging as teams grow. Without per-user data you can't set a fair cap on AI spend, explain a spike, or show a department what it consumed. GitLab 19.4 makes GitLab Credits manageable per user: Set individual budgets, see the spend, and export a detailed report that explains the invoice. You can give each team its own budget and each developer their own consumption view. If a power user risks draining the team's shared credit pool, you can limit usage, and pull exact session data behind your last spike. As consumption changes, you can adjust spend caps, so no teams need to slow down to renegotiate whose work gets priority. The need for AI spend controls is urgent. In GitLab's AI Accountability Report, 98% of respondents have allocated or expect to allocate budget to AI governance. Committed AI budgets across departments require clear, explainable, and reportable usage data. GitLab Transcend returns in October Coding agents are increasing your speed of development, but your reviews, security policies, and release cycles still have to keep pace. Our Transcend event on October 6 will demonstrate how GitLab is helping teams close that gap and explore what it takes to carry the speed of agentic AI across the software lifecycle. Register for the livestream today! Granular attribution and visibility Every GitLab Credit tracks spend by user, namespace, and project (where applicable) with a timestamp. The record that controls when a user hits their cap is the same one that answers which team consumed how credits, on what activity, and when. The platform that ran the agent session is the one that recorded the credits, so you don't have to reconcile two systems to produce that record. S

## Grab's LLM-Kit Framework Standardizes More Than 500 Internal Agent Services

DevFeed: [Grab's LLM-Kit Framework Standardizes More Than 500 Internal Agent Services](<https://devfeed.tech/articles/grab-s-agent-framework-llm-kit-accelerates-ai-agent-production-deployment-26601.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/grab-agent-platform/>)

Author: Hien Luu

Published: 2026-09-15T09:00:00Z

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [Framework](<https://devfeed.tech/topics/framework.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [agent observability](<https://devfeed.tech/topics/agent-observability.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [OpenTelemetry](<https://devfeed.tech/topics/opentelemetry.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-ml-data-engineering](<https://devfeed.tech/tags/ai-ml-data-engineering.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [framework](<https://devfeed.tech/tags/framework.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [grab-agent-platform](<https://devfeed.tech/tags/grab-agent-platform.md>), [ml-data-engineering](<https://devfeed.tech/tags/ml-data-engineering.md>), [model-context-protocol](<https://devfeed.tech/tags/model-context-protocol.md>), [news](<https://devfeed.tech/tags/news.md>), [opentelemetry](<https://devfeed.tech/tags/opentelemetry.md>), [vault](<https://devfeed.tech/tags/vault.md>)

### AI overview

Grab's internal LLM-Kit framework standardizes more than 500 agent services by providing shared scaffolding for evaluation, tracing, secret handling, service discovery, and tool-server connections. The article reports that deploying a new agent service now takes about one hour instead of two weeks or more.

### Source excerpt

Grab has implemented LLM-Kit, a framework that standardizes over 500 internal agent services. This system enhances service integration, evaluation, and secret handling, reducing the time to deploy new AI agents from two weeks to one hour. It centralizes infrastructure management, allowing runtime tool discovery and flexible model integration, while maintaining operational control. By Hien Luu

## Perfect-10 GitLab bug under attack days after patch lands

DevFeed: [Perfect-10 GitLab bug under attack days after patch lands](<https://devfeed.tech/articles/perfect-10-gitlab-bug-under-attack-days-after-patch-lands-21634.md>)

Original publisher: [Read original article](<https://www.theregister.com/security/2026/09/14/perfect-10-gitlab-bug-under-attack-days-after-patch-lands/5296176>)

Author: Carly Page

Published: 2026-09-14T14:30:00Z

Content type: news

Language: en

Sources: [www.theregister.com - Articles](<https://devfeed.tech/sources/www-theregister-com-articles.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Cybersecurity](<https://devfeed.tech/topics/cybersecurity.md>), [Internet](<https://devfeed.tech/topics/internet.md>), [servers](<https://devfeed.tech/topics/servers.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [cisa](<https://devfeed.tech/tags/cisa.md>), [cybersecurity](<https://devfeed.tech/tags/cybersecurity.md>), [cybersecurity-and-infrastructure-security-agency](<https://devfeed.tech/tags/cybersecurity-and-infrastructure-security-agency.md>), [exploit](<https://devfeed.tech/tags/exploit.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [internet](<https://devfeed.tech/tags/internet.md>), [security](<https://devfeed.tech/tags/security.md>), [servers](<https://devfeed.tech/tags/servers.md>)

### AI overview

CISA confirms active exploitation of a critical GitLab vulnerability shortly after a patch was released. Security researchers observed attackers probing internet-facing servers.

### Source excerpt

CISA confirms active exploitation as watchTowr spots miscreants probing internet-facing servers

## GitLab Dedicated: Compliance for a new regulatory era

DevFeed: [GitLab Dedicated: Compliance for a new regulatory era](<https://devfeed.tech/articles/gitlab-dedicated-compliance-for-a-new-regulatory-era-20785.md>)

Original publisher: [Read original article](<https://about.gitlab.com/blog/gitlab-dedicated-compliance/>)

Author: Aathira Nair

Published: 2026-09-14T00:00:00Z

Content type: article

Language: en

Sources: [GitLab](<https://devfeed.tech/sources/gitlab.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Cybersecurity](<https://devfeed.tech/topics/cybersecurity.md>), [Security](<https://devfeed.tech/topics/security.md>), [Resilience](<https://devfeed.tech/topics/resilience.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Multitenancy](<https://devfeed.tech/topics/multitenancy.md>)

Tags: [amazon-web-services-aws](<https://devfeed.tech/tags/amazon-web-services-aws.md>), [aws](<https://devfeed.tech/tags/aws.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [gdpr](<https://devfeed.tech/tags/gdpr.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [nis2](<https://devfeed.tech/tags/nis2.md>), [product](<https://devfeed.tech/tags/product.md>), [regulatory](<https://devfeed.tech/tags/regulatory.md>), [resilience](<https://devfeed.tech/tags/resilience.md>), [saas](<https://devfeed.tech/tags/saas.md>), [security](<https://devfeed.tech/tags/security.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article presents GitLab Dedicated as a fully isolated, single-tenant SaaS platform hosted and managed by GitLab in a preferred Amazon Web Services region. It explains how the service is intended to help European enterprises address compliance, data sovereignty, audit readiness, security, resilience, and operational responsibilities related to DORA, NIS2, and GDPR.

### Source excerpt

Enforcements such as NIS2 are no longer a future planning consideration. The European Union Agency for Cybersecurity's (ENISA) NIS360 report confirms that supervisory authorities are actively assessing cybersecurity maturity across critical sectors. The agency is moving from guidance and consultation into active oversight, scrutiny, and accountability. This is the regulatory environment European enterprises now operate in. Multi-tenant cloud platforms remove operational overhead but place source code and pipelines on shared infrastructure regulators now scrutinize. Self-managed solutions provide isolation but transfer responsibility for upgrade cycles, security patches, and disaster recovery (DR) tests to an already stretched platform team. Both deployment options leave gaps in risk management, data sovereignty, and furnishing audit evidence. In this article, you'll discover how GitLab Dedicated, a fully isolated, single-tenant SaaS solution deployed in your preferred Amazon Web Services (AWS) region and hosted and managed by GitLab, addresses these challenges and helps you keep pace with evolving compliance requirements. "NatWest Group is adopting GitLab Dedicated SaaS to enable our engineers to use a common cloud engineering platform; delivering new customer and colleague outcomes rapidly, frequently, and securely with high quality, automated testing, on-demand infrastructure, and straight-through deployment." -- Adam Leggett, Platform Lead for Engineering Platforms, NatWest Group Regulations are driving change In the European Union, key regulations are driving the need for a different platform approach. These regulations converge on a decision most enterprises made before they existed: a platform their developers build on. That decision now carries audit consequences it didn't before. Digital Operational Resilience Act (DORA), which came into force across EU financial services in January 2025, requires financial institutions to keep critical technology resilient,

## OpenNMC is an open replacement for expensive APC management cards

DevFeed: [OpenNMC is an open replacement for expensive APC management cards](<https://devfeed.tech/articles/opennmc-is-an-open-replacement-for-expensive-apc-management-cards-10474.md>)

Original publisher: [Read original article](<https://www.jeffgeerling.com/blog/2026/opennmc-apc-ups-replacement-card/>)

Author: jeff@jeffgeerling.com (Jeff Geerling)

Published: 2026-09-08T16:00:00Z

Content type: article

Language: en

Sources: [Jeff Geerling](<https://devfeed.tech/sources/jeff-geerling.md>)

Topics: [Opennmc](<https://devfeed.tech/topics/opennmc.md>), [Homelab](<https://devfeed.tech/topics/homelab.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Ethernet](<https://devfeed.tech/topics/ethernet.md>), [USB](<https://devfeed.tech/topics/usb.md>), [Crowd Supply](<https://devfeed.tech/topics/crowd-supply.md>), [Reddit](<https://devfeed.tech/topics/reddit.md>)

Tags: [apc](<https://devfeed.tech/tags/apc.md>), [ethernet](<https://devfeed.tech/tags/ethernet.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [homelab](<https://devfeed.tech/tags/homelab.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [opennmc](<https://devfeed.tech/tags/opennmc.md>), [sponsored](<https://devfeed.tech/tags/sponsored.md>), [ups](<https://devfeed.tech/tags/ups.md>), [usb](<https://devfeed.tech/tags/usb.md>)

### AI overview

The article tests OpenNMC, an open-source replacement for proprietary APC UPS management cards. It describes hot-pluggable installation, built-in NUT server support, Ethernet and wireless connectivity, and an initial USB-C serial setup.

### Source excerpt

UPSes are typically the most boring part of your homelab, but they're important. One of their main jobs is to give servers time to shut down safely if the power goes out. Another job is to condition your power so your servers can run smoothly. To do both of those things well, you need a smart interface. And at least with APC, there are tons of older UPSes that use Network Management Cards. The one pictured below is the NMC 2, and I pulled out of my old APC Smart-UPS 2200 XL (pictured above).

## postmarketOS August 2026 Update: Conferences, Infrastructure, and Software Projects

DevFeed: [postmarketOS August 2026 Update: Conferences, Infrastructure, and Software Projects](<https://devfeed.tech/articles/postmarketos-in-2026-08-conferences-41779.md>)

Original publisher: [Read original article](<https://postmarketos.org/blog/2026/09/06/pmOS-update-2026-08/>)

Published: 2026-09-06T00:00:00Z

Content type: news

Language: en

Sources: [postmarketOS Blog](<https://devfeed.tech/sources/postmarketos-blog.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Internationalization (i18n)](<https://devfeed.tech/topics/i18n.md>), [gdb](<https://devfeed.tech/topics/gdb.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [conferences](<https://devfeed.tech/tags/conferences.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [git](<https://devfeed.tech/tags/git.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [i18n](<https://devfeed.tech/tags/i18n.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [opensource](<https://devfeed.tech/tags/opensource.md>), [postmarketos](<https://devfeed.tech/tags/postmarketos.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The August 2026 postmarketOS update covers conference appearances and a newly scheduled project conference, infrastructure improvements including faster Git repositories and a new debuginfod server, progress on musl libc collation and internationalization support, and an accepted proposal for an immutable postmarketOS release with improved automated hardware testing.

### Source excerpt

Conferences has been the main theme of this month. We had stands at FrOSCon (photo, next to our friends from Phosh), FOSSY (pictured above) as well as DEFCON and the following postmarketOS / Linux Mobile related talks were given: Automated testing of a phone operating system (Luca at FrOSCon) Push-Benachrichtigungen. Dezentral und OpenSource (Daniel G. at FrOSCon) Random Cool Things from postmarketOS (a linux-based mobile OS) (Ranny at DEFCON) Controlling our devices: linux on mobile (Ranny at DEFCON) Besides that we have of course been very busy planning our own conference and are happy to announce that the schedule is now live! For those who did not get a ticket, the event is completely booked now but we are trying to do video recordings and/or live streams so you can watch the talks at home (no promises for that though since this is our first event). If all goes well, we might even follow up with another one next year. For those who will be there, make sure to join the Matrix chat / IRC channel. Organizational OSUOSL, who maintain gitlab.postmarketos.org, have reacted to slowdowns we have observed across the site and made it significantly faster by moving git repositories to SSDs. Thanks, Lance! Paul has joined the infrastructure team. NLnet and NGI Zero Core related news A production debuginfod server for postmarketOS and Alpine was set up, "allowing developers to automatically fetch debug symbols during crash analysis with tools like coredumpctl and gdb" (!9468, sync-debuginfod, milestone 34) An update was posted by Rich on the collation + i18n support in musl libc project: "I'm pleased to announce a big step in the #musl locale overhaul project: collation is working! This is the result of a long project to design data structures and logic that would admit honoring the full Unicode Collation Algorithm rules, including equivalence under normalization, and keep the size of collation weight tables for the entirety of Unicode under control." And last but not least,

## Announcing GitLab support for Appwrite Sites and Functions

DevFeed: [Announcing GitLab support for Appwrite Sites and Functions](<https://devfeed.tech/articles/announcing-gitlab-support-for-appwrite-sites-and-functions-16430.md>)

Original publisher: [Read original article](<https://appwrite.io/blog/post/announcing-gitlab-support>)

Author: Matej Bačo

Published: 2026-09-03T00:00:00Z

Content type: release

Language: en

Sources: [Appwrite Blog](<https://devfeed.tech/sources/appwrite-blog.md>)

Topics: [Appwrite](<https://devfeed.tech/topics/appwrite.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [cli](<https://devfeed.tech/tags/cli.md>), [code](<https://devfeed.tech/tags/code.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [git](<https://devfeed.tech/tags/git.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [gitlab-ci](<https://devfeed.tech/tags/gitlab-ci.md>), [qr-code](<https://devfeed.tech/tags/qr-code.md>)

### AI overview

Appwrite announces GitLab support for Sites and Functions, allowing users to connect GitLab repositories and deploy directly, including repositories in GitLab groups.

### Source excerpt

Connect a GitLab account to Appwrite and deploy Sites and Functions directly from your GitLab repositories, including projects that live inside GitLab groups.

## Publishing Playwright HTML reports on GitLab Pages

DevFeed: [Publishing Playwright HTML reports on GitLab Pages](<https://devfeed.tech/articles/publishing-playwright-html-reports-on-gitlab-pages-22422.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/08/publishing-playwright-html-reports-on.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-08-29T23:56:10Z

Content type: tutorial

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Playwright](<https://devfeed.tech/topics/playwright.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [CI/CD Pipeline](<https://devfeed.tech/topics/ci-cd-pipeline.md>), [Publishing](<https://devfeed.tech/topics/publishing.md>)

Tags: [bun-create-playwright](<https://devfeed.tech/tags/bun-create-playwright.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [ci-cd-pipeline](<https://devfeed.tech/tags/ci-cd-pipeline.md>), [github-pages](<https://devfeed.tech/tags/github-pages.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [gitlab-ci](<https://devfeed.tech/tags/gitlab-ci.md>), [playwright](<https://devfeed.tech/tags/playwright.md>)

### AI overview

This tutorial explains how to add a deploy stage to a GitLab CI/CD pipeline for a Bun-based Playwright project. The stage publishes generated Playwright HTML reports, including screenshots and videos, to GitLab Pages so they can be viewed online.

### Source excerpt

We've added a lot to our demo project, bun--create-playwright. We've explored setting up a Playwright framework using bun, a new package manager bundled into Claude Code. We've added typechecking, and formatting and linting. We've set up a CI/ CD pipeline for our tests using GitLab, one with three stages: Quality: We check that the formatting, linting and typechecking is correct for any changes we attempt to push to the code base. Test: We run the smoke and then the regression tests to make sure that everything still works. Report: We bundle an archive of the Playwright generated HTML report, with screenshots and videos if things fail. For this post, we will add a new stage to this GitLab pipeline: Deploy: Where we will deploy the HTML report to GitLab Pages, so we can view it online. What is GitLab Pages? GitLab Pages is a built-in feature of GitLab that allows you to publish static websites directly from a repository in GitLab. Similar to GitHub Pages, it is commonly used to host project documentation, personal blogs, portfolios, or corporate landing pages for free. From the GitLab Docs / Pages: "To use GitLab Pages, you must create a project in GitLab to upload your website's files to. These projects can be either public, internal, or private. "By default, GitLab deploys your website from a specific folder called public in your repository. You can also set a custom folder to be deployed with Pages. When you create a new project in GitLab, a repository becomes available automatically. "To deploy your site, GitLab uses its built-in tool called GitLab CI/CD to build your site and publish it to the GitLab Pages server. The sequence of scripts that GitLab CI/CD runs to accomplish this task is created from a file named .gitlab-ci.yml, which you can create and modify. A user-defined job with pages: true property in the configuration file makes GitLab aware that you're deploying a GitLab Pages website. "You can either use the GitLab default domain for GitLab Pages websit

## Examining the artifacts job of a Playwright GitLab CI / CD pipeline

DevFeed: [Examining the artifacts job of a Playwright GitLab CI / CD pipeline](<https://devfeed.tech/articles/examining-the-artifacts-job-of-a-playwright-gitlab-ci-cd-pipeline-22416.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/08/examining-artifacts-job-of-playwright.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-08-29T23:19:22Z

Content type: tutorial

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [Playwright](<https://devfeed.tech/topics/playwright.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [CI/CD Pipeline](<https://devfeed.tech/topics/ci-cd-pipeline.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [bun-create-playwright](<https://devfeed.tech/tags/bun-create-playwright.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [ci-cd-pipeline](<https://devfeed.tech/tags/ci-cd-pipeline.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [screenshots](<https://devfeed.tech/tags/screenshots.md>), [test](<https://devfeed.tech/tags/test.md>), [trace](<https://devfeed.tech/tags/trace.md>), [videos](<https://devfeed.tech/tags/videos.md>)

### AI overview

This tutorial examines how a Playwright GitLab CI/CD pipeline stores and exposes test artifacts. It explains the playwright-report, test-results, and reports/junit folders and describes generated HTML and JUnit reports, screenshots, videos, and trace reports.

### Source excerpt

You may have noticed that in the GitLab CI / CD Pipeline for our Playwright project, in the .gitlab-ci.yml file, after our scripts has run, in the Test stage, there is a subsection called "artifacts" with certain paths to something called "playwright-report", "test-results", and "reports". The Playwright -> Artifacts -> Reports stage playwright: extends: .bun_playwright stage: test timeout: 30 minutes ... ... artifacts: when: always paths: - playwright-report/ - test-results/ - reports/ reports: junit: reports/junit/results.xml expire_in: 30 days https://gitlab.com/tjmaher/bun-create-playwright/-/blob/main/.gitlab-ci.yml Every time Playwright tests run, it generates proof of the test execution: screenshots capturing the state of the UI when a test failed, video recordings of an entire browser session, HTML and JUnit XML test reports, trace reports showing action logs, network requests. These artifacts, when the tests run locally, are placed by the Playwright Test runner in generated folders, playwright-report and test-results, along with a folder called reports/junit. With this post, we will be examining how this artifacts stage of the GitLab CI/ CD pipeline produces downloadable artifacts we can examine. Playwright-Report: A Playwright Test folderThe Playwright Test runner creates a folder called "playwright-report", if it doesn't already exist, and an HTML file called index.html documenting the completed test run. From Playwright.dev / Test Reporters: "Playwright Test comes with a few built-in reporters for different needs and ability to provide custom reporters. [...] All built-in reporters show detailed information about failures, and mostly differ in verbosity for successful runs. [...] HTML reporter produces a self-contained folder that contains report for the test run that can be served as a web page". The HTML Report is the one that automatically opens after you run your tests locally, or if you are using the node package manager: npx playwright show-report

## How Developers Can Test Their Feature Branch Against Various Playwright Configurations Before Creating a Merge Request in GitLab CI/CD

DevFeed: [How Developers Can Test Their Feature Branch Against Various Playwright Configurations Before Creating a Merge Request in GitLab CI/CD](<https://devfeed.tech/articles/how-developers-can-test-their-feature-branch-against-various-playwright-configurations-before-creating-a-merge-request-in-gitlab-ci-cd-22417.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/08/how-developers-can-test-their-feature.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-08-28T20:18:08Z

Content type: tutorial

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Playwright](<https://devfeed.tech/topics/playwright.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [bun-create-playwright](<https://devfeed.tech/tags/bun-create-playwright.md>), [chromium](<https://devfeed.tech/tags/chromium.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [gitlab-ci](<https://devfeed.tech/tags/gitlab-ci.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [tests](<https://devfeed.tech/tags/tests.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

This tutorial shows how to configure a GitLab CI/CD pipeline so developers can test a feature branch before creating a merge request. It uses spec inputs in a YAML configuration to let users choose the branch, Playwright test suite, and browser, including Chromium, Firefox, WebKit, or all browsers.

### Source excerpt

Developers need the option to test out their feature branch before merging it into main. In the last section, we set up a GitLab CI/CD Pipeline in our bun-create-playwright project to check every GitLab Merge Request. Now, we will be giving developers option to create a new pipeline where they can choose: Which feature branch to test against. Which test suite to execute (LoginPage tests? Secure Area? Or all of them?) Which Playwright browser to use: Chromium, Firefox, WebKit, or all. All these features can be set up using our .gitlab-ci.yaml file! Go to to bun-create-playwright, view the Pipelines section, and select the New Pipeline button. Run a New Bun-Create-Playwright Pipeline If you go to the Run new pipeline page at https://gitlab.com/tjmaher/bun-create-playwright/-/pipelines/new you can see the following default values I've set: https://gitlab.com/tjmaher/bun-create-playwright/-/pipelines/new By default: Branch name is "main", TEST_SUITE is "all", BROWSER is "all". ... But all these values can be set, with the developer choosing the options laid out in the .gitlab-ci.yaml file. Collect User Data With Spec Inputs We are going to be adding to the GitLab Pipeline we built in our last post Setting up a CI/ CD pipeline with GitLab: Quality, Test and Report. First, we are going to add a "spec" section to the header of the YAML file to define the behavior of a pipeline, and within that spec header, we will ask the person who triggered a new pipeline to set user defined inputs for the pipeline. spec: inputs: browser: description: "Browser project to run against." default: "all" options: ["all", "chromium", "firefox", "webkit"] suite: description: "Select full regression suite, or a single spec" default: "all" options: ["all", "login.spec.ts", "secure-area.spec.ts"] This is where we declare the "browser" and "suite" variables that appear when a user creates a new pipeline. We've given them a choice to run their feature branch code against: Browser: All, Chromium, Fir

## Setting up a CI/ CD pipeline with GitLab: Quality, Test and Report

DevFeed: [Setting up a CI/ CD pipeline with GitLab: Quality, Test and Report](<https://devfeed.tech/articles/setting-up-a-ci-cd-pipeline-with-gitlab-quality-test-and-report-22424.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/08/setting-up-ci-cd-pipeline-with-gitlab.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-08-25T02:28:52Z

Content type: tutorial

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [CI/CD Pipeline](<https://devfeed.tech/topics/ci-cd-pipeline.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Playwright](<https://devfeed.tech/topics/playwright.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>)

Tags: [bun-create-playwright](<https://devfeed.tech/tags/bun-create-playwright.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [ci-cd-pipeline](<https://devfeed.tech/tags/ci-cd-pipeline.md>), [code-reviews](<https://devfeed.tech/tags/code-reviews.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

A tutorial on setting up a three-stage GitLab CI/CD pipeline for merge requests. The pipeline runs code-quality checks, smoke and regression tests, and produces a downloadable report, with stages executed sequentially and jobs within each stage running in parallel.

### Source excerpt

So far, we have reviewed how to review code with ES Lint + Prettier and Typecheck, how to set up and run smoke tests, how to run all Playwright + TypeScript tests, and reviewed the HTML report of results. In this post, we are going to set up a three stage GitLab CI/ CD pipeline that will run against every merge request: Quality (lint, typecheck, prettier) --> Test ( smoke + regression ) --> Report ( Downloadable ) I haven't used GitLab since when I worked at ThreatStack back in 2020. ( See my blog entry Getting to Know GitLab and How They Test the UI ) GitLab reads .gitlab-ci.yml from the repository root and turns it into a pipeline, a set of jobs, grouped into stages, running whenever you push a change to a repository. Stages run one after another, and jobs within a stage run in parallel. If one stage fails, the stages after it are skipped. This begs the question: What is GitLab? What is CI/ CD? Or a pipeline? Or a merge request? What is GitLab? GitLab began in 2011 as a side project by Ukrainian programmer Dmytro Zaporozhets, built to help developers work together on code more easily. Over time, it grew into a large open-source DevOps platform. More than just storing code, it handles code reviews, CI/CD (continuous integration and continuous delivery), and package registries. A company called GitLab Inc. was eventually created to turn the project into a commercial product. What makes GitLab different from tools that only host Git repositories (like a basic Git server) is that it bundles the entire software delivery process into one application. This includes: Merge requests - GitLab's term for proposing and reviewing code changes before they're merged into the main codebase (similar to a "pull request" in GitHub) Issue tracking - a built-in system for logging bugs, tasks, and feature requests Pipelines - automated workflows that build, test, and deploy code whenever changes are pushed So instead of stitching together separate tools for version control, testing, an

## How to Configure Playwright Test to run smoke tests, headed tests, and debug versions through scripts in package.json

DevFeed: [How to Configure Playwright Test to run smoke tests, headed tests, and debug versions through scripts in package.json](<https://devfeed.tech/articles/how-to-configure-playwright-test-to-run-smoke-tests-headed-tests-and-debug-versions-through-scripts-in-package-json-22419.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/08/how-to-configure-playwright-test-to-run.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-08-20T02:13:32Z

Content type: tutorial

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [Playwright](<https://devfeed.tech/topics/playwright.md>), [Script](<https://devfeed.tech/topics/script.md>), [Bun](<https://devfeed.tech/topics/bun.md>), [Smoke Tests](<https://devfeed.tech/topics/smoke-tests.md>), [test](<https://devfeed.tech/topics/test.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>)

Tags: [bun](<https://devfeed.tech/tags/bun.md>), [bun-create-playwright](<https://devfeed.tech/tags/bun-create-playwright.md>), [commands](<https://devfeed.tech/tags/commands.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [install](<https://devfeed.tech/tags/install.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

A tutorial on configuring Playwright Test commands in package.json scripts. It demonstrates shortcuts for headed, traced, Chromium, Firefox, WebKit, smoke, debugging, reporting, linting, formatting, and type-checking workflows, and explains using Bun and bunx to run commands.

### Source excerpt

Earlier, we went over how we could create scripts in the package.json file of our Playwright framework to add typechecking, linting, and formatting your code with prettier. Want to see the entire bun-create-playwright project? It is on tinyurl.com/bun-create-playwright! With this post, we will explore how the built-in test runner for Playwright Test can run headed tests, debug versions of tests, and smoke tests. ... and shortcuts for all of these can be set up in the scripts in your package.json! If you are using "bun" as a package manager, as we are in bun-create-playwright, just type out "bun run", a space and then the shortcut such as: bun run test package.json "scripts": { "test": "playwright test", "test:headed": "playwright test --headed", "test:trace": "playwright test --trace on", "test:chromium": "playwright test --project=chromium", "test:firefox": "playwright test --project=firefox", "test:webkit": "playwright test --project=webkit", "test:smoke": "playwright test --project=chromium --grep '@smoke'", "test:flaky": "playwright test --project=chromium --repeat-each=20", "test:ui": "playwright test --ui", "test:debug": "playwright test --debug", "test:failed": "playwright test --last-failed", "test:login": "playwright test tests/login.spec.ts", "test:secure-area": "playwright test tests/secure-area.spec.ts", "report:list": "playwright test --reporter=list", "report:line": "playwright test --reporter=line", "report:dot": "playwright test --reporter=dot", "report:blob": "playwright test --reporter=blob", "report": "playwright show-report", "codegen": "playwright codegen", "lint": "eslint .", "lint:ci": "eslint . --max-warnings 0", "lint:fix": "eslint . --fix", "format": "prettier --write .", "format:check": "prettier --check .", "format:debug": "prettier --check . --log-level debug", "format:diff": "prettier --list-different", "typecheck": "tsc --noEmit" }, bun-create-playwright / package.json Do you need to really set up shortcuts like these? Certainly not! B

## Implementing Page Objects in Playwright

DevFeed: [Implementing Page Objects in Playwright](<https://devfeed.tech/articles/implementing-page-objects-in-playwright-22420.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/08/implementing-page-objects-in-playwright.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-08-16T22:04:38Z

Content type: tutorial

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [Playwright](<https://devfeed.tech/topics/playwright.md>), [selectors](<https://devfeed.tech/topics/selectors.md>), [test](<https://devfeed.tech/topics/test.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [bun](<https://devfeed.tech/tags/bun.md>), [bun-create-playwright](<https://devfeed.tech/tags/bun-create-playwright.md>), [code](<https://devfeed.tech/tags/code.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [jest](<https://devfeed.tech/tags/jest.md>), [page-object](<https://devfeed.tech/tags/page-object.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [selectors](<https://devfeed.tech/tags/selectors.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

A tutorial on using Playwright page objects to organize web application tests, centralize selectors, reduce repetition, and simplify maintenance. It compares Playwright Test and Library approaches and demonstrates setting up a login-page object.

### Source excerpt

Picture a login screen, such as The-Internet / Login. On this LoginPage, there is: a heading: Login Page a user name textbox with the label, "Username" a password textbox with the label, "Password" a login button, with the role of a button, and the name of "Login" a flash message that appears if you enter invalid credentials such as "NotAUser" and "NotAPassword". If you successfully log in with "tomsmith" and "SuperSecretPassword!, there is a SecureArea: a heading: "Secure Area" a flash message "You logged into a secure area!" a Logout button. Sure, you could interact with each web element in your test... but what if the username text box locator changes? You would have to update multiple tests every time the element changed. ... Instead, you could place it in a Page Object, something that Playwright handles well! "A page object represents a part of your web application. An e-commerce web application might have a home page, a listings page and a checkout page. Each of them can be represented by page object models. "Page objects simplify authoring by creating a higher-level API which suits your application and simplify maintenance by capturing element selectors in one place and create reusable code to avoid repetition". Using Playwright's Built-In Test Runner? Or Something Else? You may have noticed in https://playwright.dev/docs/pom that there are two different styles of page objects. One for "Test". One for "Library". Test: If you are writing actual Playwright test suites, and Playwright's built in test runner, use the Test section as a guide when creating page objects. Library: If you are integrating Playwright into an existing test framework such as Jest or Cucumber and just want browser automation, instead of having pre-built page fixtures, etc, you can use this format. Setting Up Page Objects Let's review a page object I created for the main login page on my GitLab account for the bun-create-typescript project, tests/pages/LoginPage.ts. The first thing we do is

## Port's Integration Catalog: 200+ Tools for Your Context Lake

DevFeed: [Port's Integration Catalog: 200+ Tools for Your Context Lake](<https://devfeed.tech/articles/port-s-integration-catalog-200-tools-for-your-context-lake-12246.md>)

Original publisher: [Read original article](<https://www.port.io/blog/integration-catalog>)

Author: Alina Barenboim

Published: 2026-08-10T16:27:08Z

Content type: article

Language: en

Sources: [Developer Experience & Platform Engineering Blog | Port](<https://devfeed.tech/sources/developer-experience-platform-engineering-blog-port.md>)

Topics: [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>), [incident management](<https://devfeed.tech/topics/incident-management.md>), [Application Performance Management (APM)](<https://devfeed.tech/topics/apm.md>), [Security](<https://devfeed.tech/topics/security.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>)

Tags: [apm](<https://devfeed.tech/tags/apm.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [devops](<https://devfeed.tech/tags/devops.md>), [git](<https://devfeed.tech/tags/git.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [incident-management](<https://devfeed.tech/tags/incident-management.md>), [jenkins](<https://devfeed.tech/tags/jenkins.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [review](<https://devfeed.tech/tags/review.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Port's Integration Catalog describes more than 200 integrations that unify engineering-tool data in a queryable Context Lake. It covers Git, Kubernetes, CI/CD, incident management, APM, security scanning, service mesh, policy violations, deployments, build results, and code activity, with support for custom integrations through Ocean, connectors, APIs, events, and MCPs.

### Source excerpt

Explore Port's 200+ integrations across CI/CD, Kubernetes, incident management, security, and more, all feeding one Context Lake.

## Best GitLab Alternatives in 2026

DevFeed: [Best GitLab Alternatives in 2026](<https://devfeed.tech/articles/best-gitlab-alternatives-in-2026-20419.md>)

Original publisher: [Read original article](<https://semaphore.io/blog/best-gitlab-alternatives-in-2026>)

Author: Pete Miloravac

Published: 2026-07-30T12:04:04Z

Content type: comparison

Language: en

Sources: [Semaphore Engineering](<https://devfeed.tech/sources/semaphore-engineering.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [DevSecOps](<https://devfeed.tech/topics/devsecops.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [alternatives](<https://devfeed.tech/tags/alternatives.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [compare](<https://devfeed.tech/tags/compare.md>), [cost](<https://devfeed.tech/tags/cost.md>), [devsecops](<https://devfeed.tech/tags/devsecops.md>), [enterprise-deployment](<https://devfeed.tech/tags/enterprise-deployment.md>), [evaluation](<https://devfeed.tech/tags/evaluation.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [gitlab-ci](<https://devfeed.tech/tags/gitlab-ci.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>)

### AI overview

A comparison of Semaphore, GitHub Actions, CircleCI, and Buildkite as alternatives to GitLab for CI/CD-focused decisions. It examines execution, deployment, pricing, support, and operating models while explaining when retaining GitLab repositories may be more practical than replacing GitLab entirely.

### Source excerpt

GitLab is a capable, integrated DevSecOps platform--but it is not the only sensible way to run CI/CD. Teams comparing GitLab alternatives are often trying to improve pipeline execution, simplify operations, get clearer support and cost options, or adopt a CI/CD tool that fits their existing source-control strategy. That does not automatically mean moving repositories out [...] The post Best GitLab Alternatives in 2026 appeared first on Semaphore.

## How to Implement & Track DORA Metrics in Your Organization

DevFeed: [How to Implement & Track DORA Metrics in Your Organization](<https://devfeed.tech/articles/how-to-implement-track-dora-metrics-in-your-organization-12237.md>)

Original publisher: [Read original article](<https://www.port.io/blog/how-to-implement-and-track-dora-metrics-in-your-organization>)

Author: Matan Grady

Published: 2026-07-30T10:11:28Z

Content type: tutorial

Language: en

Sources: [Developer Experience & Platform Engineering Blog | Port](<https://devfeed.tech/sources/developer-experience-platform-engineering-blog-port.md>)

Topics: [dora metrics](<https://devfeed.tech/topics/dora-metrics.md>), [internal developer portal](<https://devfeed.tech/topics/internal-developer-portal.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Azure](<https://devfeed.tech/topics/azure.md>)

Tags: [azure](<https://devfeed.tech/tags/azure.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developer-portal](<https://devfeed.tech/tags/developer-portal.md>), [dora-metrics](<https://devfeed.tech/tags/dora-metrics.md>), [github](<https://devfeed.tech/tags/github.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [internal-developer-portal](<https://devfeed.tech/tags/internal-developer-portal.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [platform](<https://devfeed.tech/tags/platform.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

This guide explains how to implement and track DORA metrics in an internal developer portal. It covers integrating repository data, creating a deployment blueprint, modeling deployment data, and tracking deployments through pull request or merge request activity.

### Source excerpt

Using this guide, you can learn how to implement and track DORA metrics in your internal developer portal.

## Best Bitbucket Alternatives in 2026

DevFeed: [Best Bitbucket Alternatives in 2026](<https://devfeed.tech/articles/best-bitbucket-alternatives-in-2026-20415.md>)

Original publisher: [Read original article](<https://semaphore.io/blog/best-bitbucket-alternatives-in-2026>)

Author: Pete Miloravac

Published: 2026-07-29T11:54:28Z

Content type: comparison

Language: en

Sources: [Semaphore Engineering](<https://devfeed.tech/sources/semaphore-engineering.md>)

Topics: [bitbucket](<https://devfeed.tech/topics/bitbucket.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [DevSecOps](<https://devfeed.tech/topics/devsecops.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [alternatives](<https://devfeed.tech/tags/alternatives.md>), [bitbucket](<https://devfeed.tech/tags/bitbucket.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [compare](<https://devfeed.tech/tags/compare.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [gitlab-ci](<https://devfeed.tech/tags/gitlab-ci.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>)

### AI overview

This comparison guide examines Bitbucket Pipelines and four alternatives--Semaphore, GitHub Actions, GitLab CI/CD, and CircleCI--to help teams choose a CI/CD platform based on source-control ecosystem, visibility, deployment control, hosting model, and operational requirements.

### Source excerpt

Bitbucket Pipelines is a logical starting point for teams already using Bitbucket Cloud. It is built into the source-control experience, configured in a bitbucket-pipelines.yml file, and offers both Atlassian-hosted execution and self-hosted runners. But convenience at the repository level is not always the same thing as the best long-term CI/CD operating model. Teams evaluating Bitbucket [...] The post Best Bitbucket Alternatives in 2026 appeared first on Semaphore.

## Best Jenkins Alternatives in 2026

DevFeed: [Best Jenkins Alternatives in 2026](<https://devfeed.tech/articles/best-jenkins-alternatives-in-2026-20420.md>)

Original publisher: [Read original article](<https://semaphore.io/blog/best-jenkins-alternatives-in-2026>)

Author: Pete Miloravac

Published: 2026-07-24T09:56:00Z

Content type: article

Language: en

Sources: [Semaphore Engineering](<https://devfeed.tech/sources/semaphore-engineering.md>)

Topics: [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Jenkins](<https://devfeed.tech/topics/jenkins.md>), [Groovy](<https://devfeed.tech/topics/groovy.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [circleci](<https://devfeed.tech/tags/circleci.md>), [compare](<https://devfeed.tech/tags/compare.md>), [devsecops](<https://devfeed.tech/tags/devsecops.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [groovy](<https://devfeed.tech/tags/groovy.md>), [jenkins](<https://devfeed.tech/tags/jenkins.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [security](<https://devfeed.tech/tags/security.md>), [security-vulnerabilities](<https://devfeed.tech/tags/security-vulnerabilities.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>)

### AI overview

A 2026 guide compares Jenkins alternatives and explains why teams migrate away from Jenkins, citing maintenance overhead, plugin conflicts, Groovy pipeline complexity, and security-patch concerns. It highlights Semaphore, GitHub Actions, GitLab CI/CD, and CircleCI for different use cases.

### Source excerpt

Jenkins earned its place as the default CI server of the 2010s: it was free, endlessly extensible, and available before any serious managed CI/CD competitor existed. More than a decade later, that same flexibility has become the thing teams complain about most -- plugin sprawl, Groovy pipeline scripts nobody wants to maintain, and infrastructure that [...] The post Best Jenkins Alternatives in 2026 appeared first on Semaphore.

## Product release notes - June 2026

DevFeed: [Product release notes - June 2026](<https://devfeed.tech/articles/product-release-notes-june-2026-12294.md>)

Original publisher: [Read original article](<https://www.port.io/blog/product-release-notes-june-2026>)

Author: John Crowley

Published: 2026-07-22T11:36:33Z

Content type: release

Language: en

Sources: [Developer Experience & Platform Engineering Blog | Port](<https://devfeed.tech/sources/developer-experience-platform-engineering-blog-port.md>)

Topics: [Automation](<https://devfeed.tech/topics/automation.md>), [Model Context Protocol (MCP)](<https://devfeed.tech/topics/model-context-protocol-mcp.md>), [Microsoft Agent Framework](<https://devfeed.tech/topics/microsoft-agent-framework.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Forms](<https://devfeed.tech/topics/forms.md>), [Slack](<https://devfeed.tech/topics/slack.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [automation](<https://devfeed.tech/tags/automation.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [forms](<https://devfeed.tech/tags/forms.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [product-release](<https://devfeed.tech/tags/product-release.md>), [release](<https://devfeed.tech/tags/release.md>), [slack](<https://devfeed.tech/tags/slack.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

Port's June 2026 release introduces Workflows in Open Beta as a visual, node-based automation builder, private catalog pages and dashboards, external MCP server connections for AI agents, GitLab CI/CD pipeline triggers, and conversation memory with interactive forms for the Slack agent and AI Assistant.

### Source excerpt

June expands what teams can build on Port: Workflows opens in Open Beta as a visual, node-based builder, Private Pages let you build catalog views that stay private until you share them, and AI agents now connect to external MCP servers in chat and automations.

## Sign in to Pulumi Cloud with Passkeys

DevFeed: [Sign in to Pulumi Cloud with Passkeys](<https://devfeed.tech/articles/sign-in-to-pulumi-cloud-with-passkeys-19019.md>)

Original publisher: [Read original article](<https://www.pulumi.com/blog/passkey-support-in-pulumi-cloud/>)

Author: Devon Grove

Published: 2026-07-13T00:00:00Z

Content type: release

Language: en

Sources: [Pulumi](<https://devfeed.tech/sources/pulumi.md>)

Topics: [Passkeys](<https://devfeed.tech/topics/passkeys.md>), [WebAuthn](<https://devfeed.tech/topics/webauthn.md>), [Security](<https://devfeed.tech/topics/security.md>), [passwords](<https://devfeed.tech/topics/passwords.md>)

Tags: [bitbucket](<https://devfeed.tech/tags/bitbucket.md>), [features](<https://devfeed.tech/tags/features.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [google](<https://devfeed.tech/tags/google.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [passwords](<https://devfeed.tech/tags/passwords.md>), [product](<https://devfeed.tech/tags/product.md>), [product-launches](<https://devfeed.tech/tags/product-launches.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

Pulumi Cloud now supports passkeys for users who sign in with an email address and password. Passkeys use device-stored public-key credentials and WebAuthn, while identity-provider sign-in flows remain unchanged.

### Source excerpt

Pulumi Cloud now supports passkeys for users who sign in with email and password. Select a button, approve with Touch ID, Face ID, Windows Hello, or your hardware key, and you're signed in. A passkey is a public-key credential stored on your device: your phone, your laptop, a hardware key (YubiKey, Google Titan, etc.), or your password manager can all function as the authenticator. When you sign in, your device authenticates you locally and signs a challenge from Pulumi Cloud with the private key. The private key stays on your device -- Pulumi Cloud never sees or stores it. Passkeys are built on the WebAuthn standard, so they're already supported on every major browser and operating system. Who this is for This release applies to users who sign in to Pulumi Cloud with an email address and password. If you sign in through an identity provider (IdP), such as GitHub OAuth, GitLab, Bitbucket, Google, or your organization's SAML SSO, your existing flow is unchanged. Why passkeys Passwords have always been the weakest link in account security. Since they are shared secrets, they are vulnerable to phishing attacks, and every place you type one is a place that can be impersonated or a data store that can be leaked. Passkeys swap that out for a per-site key pair that lives on your device: Phishing-resistant by design. A passkey is bound to the exact origin it was registered for. A look-alike domain can't trigger your authenticator. Synced across your devices. Apple iCloud Keychain, Google Password Manager, 1Password, Dashlane, Bitwarden: most credential managers now sync passkeys end-to-end-encrypted to every device you've signed in on. Discoverable. Pulumi Cloud doesn't need to know which user you are before you authenticate. Just select "Sign in with a passkey" and your device offers the right credential. Nothing to remember. A passkey lives on your device. There's no string to memorize, and no sensitive credential stored by us. Setting up a passkey The next time you sign i

[Next page](<https://devfeed.tech/tags/gitlab.md?cursor=WyIyMDI2LTA3LTEzVDAwOjAwOjAwKzAwOjAwIiwgIjg2NjY5ZmY2LWExY2UtNDViMy04OGNhLTU5M2Q3NjNkNTI4YSJd>)