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 / migrate_from_azure_blob_to_s3.sh
Last active August 20, 2021 03:08
Co-pilot examples (only comments have been written by me)
# copy Azure bloc storage files to S3 buckets
#
# Usage:
# ./copy-azure-blob-storage-to-s3.sh <blob storage container> <s3 bucket>
#
# Example:
# ./copy-azure-blob-storage-to-s3.sh my-container s3://my-bucket
#
# Note:
# This script requires a working Azure CLI.
@jonico
jonico / sync-github-actions.sh
Created June 21, 2021 15:14
Use actions-sync to sync actions/ org and some custom actions
#!/usr/bin/bash
cd
mkdir -p /tmp/actions
git clone https://github.com/github/platform-samples.git
sdk install groovy
cd platform-samples/api/groovy/
groovy ListReposInOrg.groovy -t $GH_PUBLIC actions > ~/repo-list
cd
wget https://github.com/actions/actions-sync/releases/download/v202009231612/gh_202009231612_linux_amd64.tar.gz
@jonico
jonico / dind-github-actions-k8s-example.yaml
Last active April 29, 2021 15:45
Example of a GitHub Action runner pod managed by summerwind/actions-runner-controller that was successfully tested with container and services keywords in action workflow files
apiVersion: v1
items:
- apiVersion: v1
kind: Pod
metadata:
creationTimestamp: "2021-04-29T15:09:09Z"
labels:
pod-template-hash: 65f67dcb66
runner-deployment-name: actions-runner-deployment-epona
runner-template-hash: 6788f4694c
@jonico
jonico / search-for-pattern-in-all-repos.sh
Last active March 3, 2021 22:43
Search through all reachable commits in all branches and tags in all repos on GitHub Enterprise Server for a pattern (run it on a backup system)
# Replace the string "Hyrule" with your search pattern - only run on backup system - will take a LOOOONG time to run through
ghe-console -y <<'ENDSCRIPT'
Repository.find_each do |repository|
if repository.active && !repository.empty? then
host,path = GitHub::Routing.lookup_route(repository.nwo)
puts "Processing repo #{repository.nwo} ..."
refs=`git --git-dir=#{path} rev-list --branches --tags | sort | uniq`
refs.each_line do |ref|
if system("git --git-dir=#{path} grep 'Hyrule' #{ref}")
puts "Found pattern in ref #{ref} in repo #{repository.nwo}: "
@jonico
jonico / count-committers-on-ghes.sh
Last active April 16, 2024 19:20
Count all unique committers in the last 90 days on GitHub Enterprise Server
ghe-console -y <<'ENDSCRIPT'
ActiveRecord::Base.connected_to(role: :reading) do
puts "Version 0.2.0"
emails = Set.new
start_time = 90.days.ago.beginning_of_day
Repository.where(active: true).find_each do |repo|
Push
.where(repository: repo)
.where("created_at >= ?", start_time)
.find_each do |push|
@jonico
jonico / optional-job-based-on-presence-of-a-secret.yaml
Created June 29, 2020 17:05
GitHub Actions optional job based on the presence of a secret
name: Build and publish Docker image + Container Scanning
on: [push]
jobs:
build:
name: Build
runs-on: ubuntu-latest
outputs:
dockerimage: ${{ steps.dockerimage.outputs.dockerimage }}
enablecontainerscanning: ${{ steps.enablecontainerscanning.outputs.enablecontainerscanning }}
@jonico
jonico / dynamic-runner-selection.yaml
Last active November 2, 2023 04:33
Dynamic selection of GitHub Runners - as GitHub Action matrix builds currently do not allow dynamic values
name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
@jonico
jonico / deps-with-licenses.graphql
Last active October 2, 2020 21:07
Retrieve dependency graph including licenses
{
repository(owner: "rails", name: "rails") {
nameWithOwner
description
dependencyGraphManifests(withDependencies: true) {
nodes {
filename
dependenciesCount
exceedsMaxSize
parseable
@jonico
jonico / github-collaborators.sh
Last active April 24, 2023 19:33 — forked from muhammaddadu/github-add-colaborator
List, add and remove multiple collaborators from multiple repositories
#!/bin/bash
function help {
echo "Add collaborators to one or more repositories on github"
echo ""
echo "Syntax: $0 -u user [-l] [-D] -r repo1,repo2 <collaborator id>"
echo ""
echo " -u OAuth token to access github"
echo " -l list collaborators"
echo " -r repositories, list as owner/repo[,owner/repo,...]"
@jonico
jonico / delete-all-package-versions.sh
Last active May 5, 2021 00:26
Delete all package versions of a package of certain GitHub repository
#!/bin/bash
# Script that works to delete private packages stored on Github Packages
#
# Script is based on the work of Troy Fontaine (github.com/troyfontaine)
GITHUB_TOKEN=$GPR_PAT
REPO_OWNER=$1
REPO_NAME=$2
PACKAGE_NAME=$3