Skip to content

Instantly share code, notes, and snippets.

View daviddenton's full-sized avatar

David Denton daviddenton

View GitHub Profile
@daviddenton
daviddenton / ECR repo and app runner
Last active October 22, 2025 09:53
limit library resolution
from aws_cdk import (
aws_apprunner as apprunner,
aws_cloudfront as cloudfront,
aws_cloudfront_origins as origins,
aws_ecr as ecr,
aws_iam as iam,
aws_route53 as route53,
aws_route53_targets as targets,
aws_certificatemanager as acm,
core,
- name: Check all app builds
uses: actions/github-script@v6
with:
script: |
const apps = ['app1', 'app2', 'app3'];
const pr = context.payload.workflow_run.pull_requests[0];
// Get all check runs for this PR
const checks = await github.rest.checks.listForRef({
owner: context.repo.owner,
@daviddenton
daviddenton / maven
Last active June 12, 2025 16:13
download gradle dependencies
tasks.register<Copy>("downloadDependencies") {
from(configurations.runtimeClasspath)
into("local-repo/jars")
}
tasks.register("downloadDependenciesWithMetadata") {
doLast {
configurations.runtimeClasspath.get().resolvedConfiguration.resolvedArtifacts.forEach { artifact ->
val moduleVersion = artifact.moduleVersion.id
val group = moduleVersion.group.replace(".", "/")
rbenv is a Ruby version manager that allows you to install multiple versions of Ruby and switch between them. Follow the steps below to install Ruby using rbenv.
Install all required dependencies for the ruby-build plugin to download and compile Ruby.
console
Copy
$ sudo apt install autoconf patch build-essential rustc libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libgmp-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev libtool uuid-dev
Install the latest rbenv installation script.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@daviddenton
daviddenton / functionalMap.kt
Created May 17, 2024 08:48
Implement a map using only functions
// This is our map type
typealias FunctionalMap<K, V> = (K) -> V?
// An empty map never has the value
fun <K, V> emptyMap(): FunctionalMap<K, V> = { _ -> null }
// Match the key to the value or fallback
fun <K, V> FunctionalMap<K, V>.put(key: K, value: V): FunctionalMap<K, V> = { k ->
if (k == key) value else this(k)
}
@daviddenton
daviddenton / AdjustableTickingClock.kt
Created June 21, 2023 09:22
AdjustableTickingClock
class AdjustableTickingClock(
private val startTime: Instant = EPOCH,
private val tick: Duration = Duration.ofSeconds(5)
) : Clock() {
private var currentTime = startTime
override fun getZone() = ZoneId.of("UTC")
override fun withZone(zone: ZoneId?) = this
override fun instant() = currentTime.also { currentTime += tick }
@daviddenton
daviddenton / SQSToLambdaBridge.kt
Last active August 30, 2021 15:01
Bridging an SQS queue to an AWS Request SQS Event Lambda
package org.http4k.example
import com.amazonaws.services.lambda.runtime.Context
import com.amazonaws.services.lambda.runtime.events.SQSEvent
import org.http4k.aws.AwsSdkClient
import org.http4k.client.JavaHttpClient
import org.http4k.core.HttpHandler
import org.http4k.core.Uri
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider.create
@daviddenton
daviddenton / AzureSdkHttpClient.kt
Last active May 14, 2021 13:21
http4k AzureSdkHttpClient adapter
import com.azure.core.http.HttpClient
import com.azure.core.http.HttpHeader
import com.azure.core.http.HttpHeaders
import com.azure.core.http.HttpRequest
import com.azure.core.http.HttpResponse
import org.http4k.core.Body
import org.http4k.core.Body.Companion.EMPTY
import org.http4k.core.HttpHandler
import org.http4k.core.Method
import org.http4k.core.Request
import org.http4k.contract.PreFlightExtraction
import org.http4k.contract.contract
import org.http4k.contract.meta
import org.http4k.core.Body
import org.http4k.core.Filter
import org.http4k.core.Method.POST
import org.http4k.core.Request
import org.http4k.core.Response
import org.http4k.core.Status.Companion.BAD_REQUEST
import org.http4k.core.Status.Companion.OK