Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions team_ssh_keys.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/usr/bin/env bash
# This script will generate a temporary file with all the ssh keys of the
# approvers of a given team name in the OWNERS_ALIASES file of a given project.
# The script will return the path of the temporary file.
# The script will return 1 if the script fails to curl the OWNER_ALIASES file
# or if the yq command is not found.

set -Eeuo pipefail

GITHUB_PROJECT="${GITHUB_PROJECT:-openshift/installer}"
TEAM_NAME="${TEAM_NAME:-openstack-approvers}"

if ! command -v yq &> /dev/null; then
echo "yq could not be found"
echo "https://github.com/mikefarah/yq"
exit 1
fi

OWNER_ALIASES=$(curl -s "https://raw.githubusercontent.com/${GITHUB_PROJECT}/master/OWNERS_ALIASES")
if [ -z "$OWNER_ALIASES" ]; then
echo "Failed to curl the OWNER_ALIASES from ${GITHUB_PROJECT}"
exit 1
fi

# shellcheck disable=SC2016
MEMBERS=$(echo "$OWNER_ALIASES" | yq --arg team_name "$TEAM_NAME" -r '.aliases[$team_name] | join(" ")')

TMP_FILE=$(mktemp)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if you print to stdout, and you let the caller redirect where they like?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Proposed in #205

for member in $MEMBERS; do
curl -s "https://github.com/$member.keys" >> "$TMP_FILE"
done

echo "$TMP_FILE"