Skip to content

Instantly share code, notes, and snippets.

View devilelephant's full-sized avatar

George Coller devilelephant

  • Minneapolis, MN
View GitHub Profile
@devilelephant
devilelephant / README.md
Last active July 5, 2023 20:33
Protect Branches With GH

Script Branch Protection for Github

Display current protection rules for "main"

gh api repos/:owner/:repo/branches/main/protection

Add branch protection

@devilelephant
devilelephant / README.md
Created June 19, 2023 15:06
Create self-signed StirShaken Certificates for unit testing
@devilelephant
devilelephant / Dockerfile
Last active August 26, 2022 21:54
Multipart Dockerfile to download Open Policy Agent into an AWS Lambda
# Pull latest static opa executable image
FROM openpolicyagent/opa:latest-static AS opa-stage
# Start lambda image
FROM public.ecr.aws/lambda/java:11
ARG OPA_INSTALL_PATH=${LAMBDA_TASK_ROOT}/opa
ARG OPA_EXECUTABLE_PATH=${OPA_INSTALL_PATH}/opa
COPY --from=opa-stage /opa ${OPA_INSTALL_PATH}/
@devilelephant
devilelephant / google-cloud-env-creds.js
Created March 20, 2019 21:59
Google Cloud Environment Credentials
// Configure Google Cloud library with JSON credentials in an environment variable
const
os = require('os'),
fs = require('fs')
;
exports.configureGoogleCloud = function (isWarnOnly) {
// if standard GOOGLE_APPLICATION_CREDENTIALS is set then use that
if (!process.env['GOOGLE_APPLICATION_CREDENTIALS']) {
@devilelephant
devilelephant / README.md
Last active April 17, 2018 19:24
Json Tranform Lambda

JsonTransform

Transform Json Input

function input

Use a Pass type Step Function to merge a script under the field name "transformScript into the input JSON.

"Inject Update Status and Updated": {
 "Type": "Pass",
@devilelephant
devilelephant / BeatBuddyWorldPercussionMidiChart.tsv
Created February 17, 2018 23:58
Beat Buddy World Percussion Midi Chart
Midi Note Note Name
85 C#5 Bongo Low - palm
84 C5 Bongo Low - closed slap
82 A#4 Shaker
75 D#4 Clave
59 B2 Splash2
57 A2 Hand Crash 2
56 G#2 Cowbell
55 G2 Splash 1
54 F#2 Tambourine
@devilelephant
devilelephant / AWS4Signer.groovy
Last active October 21, 2019 08:24
Java/Groovy example of using Amazon AWS AWS4Signer class to sign requests (in our case elasticsearch calls)
package com.clario.aws
import com.amazonaws.DefaultRequest
import com.amazonaws.SignableRequest
import com.amazonaws.auth.AWS4Signer
import com.amazonaws.auth.AWSCredentialsProvider
import com.amazonaws.http.HttpMethodName
import groovy.util.logging.Slf4j
import org.apache.http.client.utils.URLEncodedUtils
import org.springframework.http.HttpHeaders
@devilelephant
devilelephant / gist:0bcd66cde78e82282e62
Created July 8, 2014 21:14
Spring Boot Fix @RequestMapping error on paths with dots or file extensions
// I made one of my @Configuration classes extend org.springframework.beans.factory.config.BeanPostProcessor
// There probably is a better way to intecept the ContentNegotiationManager when it is being updated but I couldn't figure out how
// This solved the problems I had better than using the {id:.+} regular expression in path variables idea I've seen on other fixes.
@Override
Object postProcessBeforeInitialization(Object bean, String name) throws BeansException {
if (bean instanceof RequestMappingHandlerMapping) {
// handle when dots in url path
@devilelephant
devilelephant / gist:92a90d31e92219feaba4
Created July 3, 2014 20:21
Format log output that is compatible with Intellij Idea <Click to see difference> diff viewer
// The example is in Groovy but this probably works for any kind of logging for an app/test running in IDEA
// The important part is the template: "ComparisonFailure\nexpected:<{?}> but was:<{?}>"
// This works for multi-line values for each '?', which is why being able to use in-ide diff is so nice
def expected = ...
def actual = ...
// do your custom comparison, then if fails throw:
String msg = "ComparisonFailure\nexpected:<{${expected}}> but was:<{${actual}}>"
@devilelephant
devilelephant / gist:6554811
Created September 13, 2013 19:12
An easy way to do Unix piping when executing Unix commands from Java or Groovy In unix you can issue a command like: sh -c 'ls -l | sort" which is calling the 'sh' shell with a command and returning the result. I wrote the example in groovy but the trick works with Runtime.exec(String[] cmd) as well.
def cmd = ['sh', '-c', 'ls -l | sort']
def p = cmd.execute()
println p.text
// Java would be something like
// String[] cmd = { "sh", "-c", "ls -l | sort" };
// Process p = Runtime.getRuntime().exec(cmd);
// ...