Skip to content

Instantly share code, notes, and snippets.

View gabrielfeo's full-sized avatar

Gabriel Féo gabrielfeo

View GitHub Profile
@gabrielfeo
gabrielfeo / CopyWithNotes.gs
Created August 18, 2025 19:23
Google Apps Script for copying content and note of multiple cells in Google Sheets. AI-generated.
/**
* @fileoverview A robust, self-contained Google Apps Script for copying
* the content and comments of multiple selected cells to the clipboard
* in a TSV (Tab-Separated Value) format. This version is built as an
* add-on and includes a custom HTML escape function for resilience.
*/
/**
* Creates a custom add-on menu in the spreadsheet UI when the sheet is opened.
* Using createAddonMenu() places the menu in the "Extensions > Add-ons" section,
@gabrielfeo
gabrielfeo / acc-duration-by-task-path.main.kts
Last active August 28, 2025 17:40
Get the accumulated duration of specific tasks from a Develocity Build Scan, using its REST API
#!/usr/bin/env kotlin
@file:DependsOn("com.gabrielfeo:develocity-api-kotlin:2024.3.0")
import com.gabrielfeo.develocity.api.*
import kotlinx.coroutines.runBlocking
val buildScanId = requireNotNull(args.getOrNull(0)) { "Expected arg 0: build scan ID" }
val taskPaths = System.`in`.bufferedReader().lineSequence()
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@gabrielfeo
gabrielfeo / .tag-ai-agent-gradle-builds.md
Last active January 31, 2026 00:22
tag-ai-agent-gradle-builds

The simplest way to distinguish AI agent builds is to simply ask. Observability and rich performance insights for both agent and human builds is possible with [Develocity][0] Build Scans®.

Why?

Tracking them is the first step to managing their impact on performance, cost, and quality. They still represent infrastructure usage and developer wait time. Read the whitepaper: [GenAI Won't Replace Your Continuous Delivery Pipeline — It Will Stress It][1].

How?

Ask agents via an instructions file to export or prefix their commands with a variable, then tag build scans accordingly. This approach works universally, even if some tools may offer other options (e.g. VS Code's [agent terminal profile settings][3]).

@gabrielfeo
gabrielfeo / .require-develocity-access-key.md
Last active January 26, 2026 19:44
A comprehensive example of how to require that developers provision a Develocity access key. Based on a snippet from @ribafish.

A comprehensive example of how to require that developers provision a Develocity access key. This sample throws a build failure if a usable key cannot be found and the current build is not to provision a key in the first place.

📖 Develocity Gradle plugin authentication docs

Firmly based on a snippet from @ribafish.