Skip to content

Instantly share code, notes, and snippets.

View jonico's full-sized avatar
🪐
@ home

Johannes Nicolai jonico

🪐
@ home
View GitHub Profile
@jonico
jonico / evaluate.groovy
Last active January 1, 2017 19:13
Evaluation script for InformatiCup2017 submissions
import java.io.File
categories = ["DEV", "HW", "OTHER", "EDU", "WEB", "DATA", "DOCS"] as Set
def readInDataSet (dataSetName, categoryToRepo, repositories) {
categories.each {
categoryToRepo[it]= [] as Set
}
count = 1;
@jonico
jonico / PrintRepoAccess.groovy
Created January 15, 2017 14:59
Who can access a given repo on a GitHub Enterprise instance?
#!/usr/bin/env groovy
/**
* groovy script to show all users that can access a given repository in a GitHub Enterprise instance
*
*
* Run 'groovy PrintRepoAccess.groovy' to see the list of command line options
*
* First run may take some time as required dependencies have to get downloaded, then it should be quite fast
*
@jonico
jonico / Jenkinsfile
Last active January 31, 2024 09:43
Example for a full blown Jenkins pipeline script with CodeQL analysis steps, multiple stages, Kubernetes templates, shared volumes, input steps, injected credentials, heroku deploy, sonarqube and artifactory integration, Docker containers, multiple Git commit statuses, PR merge vs branch build detection, REST API calls to GitHub deployment API, …
#!groovy
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
def label = "mypod-${UUID.randomUUID().toString()}"
podTemplate(label: label, yaml: """
spec:
containers:
- name: mvn
image: maven:3.3.9-jdk-8
@jonico
jonico / evaluierungsfragen.md
Last active December 6, 2019 08:51
Evaluierungsfragen/kriterien bei der Auswahl einer Versionskontrollverwaltungs- / Social Coding-Plattform

Business Coding Platform Evaluierungskriterien / Fragen

  • Wie lange dauert es, einen neuen Entwickler in die Plattform einzuarbeiten? Welcher Trainingsaufwand ist erforderlich, bis der erste Commit in Produktion gehen kann?

  • Wie unterstützt die gewählte Plattform das Aufbauen eines unternehmensweiten Entwickler-Profils, aus dem die Entwicklungsaktivität, Popularität, Programmiersprachen und Tätigkeitsschwerpunkt (welche Repositories) eines Entwicklers oder Entwicklerteams hervorgeht?

  • Wie können Entwickler und Designer schnell und unproblematisch Quellcode-Snippets, Design-Überlegungen, Interview-Fragen und andere Markdown-Dokumente miteinander teilen? Besteht die Möglichkeit, diese Dokumente zu durchsuchen, insofern sie nicht geheim angelegt worden?

  • Wie können Nicht-Entwickler (Ingenieure, Fachabteilung, Projektleiter, Marketing, Legal), Änderungen an Design-Dokumenten und Dokumentation ohne Kommandozeilenwissen oder Desktop-Applikationen vorschlagen? Erlaubt die Web-Oberfläche das Hinzufügen, Lö

@jonico
jonico / ggg-ideas-for-constellation.md
Created August 28, 2017 12:14
GGG Ideas for constellations Munich
  • feedback geo-mirroring & hot patching
  • GGG requirements letter
  • conan.io
@jonico
jonico / Jenkinsfile.groovy
Created February 19, 2018 16:37
Abbreviated Jenkinsfile to build on multiple archs (from conan.io project)
for (x in slaves) {
def slave = x
for (y in pyvers) {
def pyver = y
builders["${slave} - ${pyver}"] = {
node(slave) {
stage("${slave} - ${pyver}"){
step ([$class: 'WsCleanup'])
checkout scm
def bn = env.BUILD_NUMBER
@jonico
jonico / diff-branches-client.sh
Last active September 4, 2018 08:03
Example how to compute diffs of more than 300 files between branches/commits/tags server side using a pre-receive hook in GitHub Enterprise
#!/usr/bin/env bash
# Client side script to trigger pre-receive hook and scan its output
# usage: diff-branches-client.sh <repo URL> <compare branch> [base branch] [magic trigger branch]
# Examples:
# diff-branches.client.sh https://jonico@octodemo.com/jonico/large-branch-diff-with-prereceive-hook.git compare-branch feature-branch # diffs compare-branch with feature branch
# diff-branches.client.sh https://jonico@octodemo.com/jonico/large-branch-diff-with-prereceive-hook.git compare-branch # diffs compare-branch with master
# diff-branches.client.sh https://jonico@octodemo.com/jonico/large-branch-diff-with-prereceive-hook.git f75b18abbb06 f75b18abbb06^1 # diffs commit f75b18abbb06 with its parent
# diff-branches.client.sh https://jonico@octodemo.com/jonico/large-branch-diff-with-prereceive-hook.git master master~2 # diffs latest commit on master with its grandparent
@jonico
jonico / Jenkinsfile
Last active January 7, 2022 04:37
Jenkins in Kubernetes cluster
#!groovy
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
/*
Environment variables: These environment variables should be set in Jenkins in: `https://github-demo.ci.cloudbees.com/job/<org name>/configure`:
For deployment purposes:
- HEROKU_PREVIEW=<your heroku preview app>
- HEROKU_PREPRODUCTION=<your heroku pre-production app>
@jonico
jonico / github_basic_auth_retrieve_emails.go
Created January 5, 2019 00:17
Example of a basic GitHub OAuth app tha retrieves all emails (including private) of a GitHub user in Go
// Simple OAuth server retrieving the email adresses of a GitHub user
package main
import (
"context"
"encoding/json"
"github.com/google/go-github/github"
"golang.org/x/oauth2"
"log"
"net/http"
@jonico
jonico / github-saml-with-auth0.md
Created February 21, 2019 18:06
How to setup GitHub SAML authentication with Auth0

When setting up Auth0 as a SAML IdP for GitHub, you most likely created an Application in Auth0 representing GitHub and enabled the SAML WebApp addon, as explained here. In order to ensure that the proper SAML response is sent to GitHub, make sure to configure the audience value in the JSON settings for the SAML Web App addon, replacing "acme" with your org name in GitHub:

image