I hereby claim:
- I am SamLR on github.
- I am samlr (https://keybase.io/samlr) on keybase.
- I have a public key whose fingerprint is 749F 8D9C F5A3 B979 65F5 9456 E635 E203 95E7 9E5F
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
| Total Entries = 184 | |
| Errors = 20 | |
| Used Entries = 164 | |
| Min = 15 min | |
| Max = 180 min | |
| Average = 52 min | |
| ---------------------------------------- | |
| Duration (min) | Count | |
| 30 | 48 | |
| 60 | 38 |
| import boto3 | |
| from sys import argv | |
| def get_name(aws_obj): | |
| names = list(tag['Value'] for tag in aws_obj['Tags'] if tag['Key'] == 'Name') | |
| if len(names) != 1: | |
| # print('No name for object: {}'.format(aws_obj)) | |
| return '--unknown--' |
| # | |
| # Recommended use | |
| # python3 aws-action-test.py ec2:create-instance > arns.json | |
| # | |
| # This is pretty slow but I think it hits most main things in AWS | |
| # | |
| import boto3 | |
| from sys import argv |
| # | |
| # example usage | |
| # # Get the data: | |
| # $ python3 aws-iam-crawl.py > iam.json | |
| # | |
| # # Group summary | |
| # $ cat iam.json| jq '.groups | map({"members": (._users|length), "policies": ((._inline_policies|length) + (._attached_policies|length)), "inline_policies": (._inline_policies|length), "name": .GroupName}) | sort_by(.members)[] ' -c | |
| # | |
| # # User summary (basically the same) | |
| # $ cat iam.json| jq '.users | map({"groups": (._groups|length), "policies": ((._inline_policies|length) + (._attached_policies|length)), "inline_policies": (._inline_policies|length), "name": .UserName}) | sort_by(.groups)[] ' -c |
| # | |
| # Find all the security groups that use a particular CIDR_TO_FIND and update | |
| # them with a new ingress rule allowing access from CIDR on ports 0->65535 | |
| # | |
| # DESCRIPTION can also be set to describe the new rule. | |
| # | |
| # If DRY_RUN is set to true the security groups will be searched for but not | |
| # updated. | |
| # |
| # Step 1 | |
| curl -v https://api.github.com/orgs/alphagov/repos | |
| # Copy the 'rel="last"' value from this section | |
| # < Link: <https://api.github.com/organizations/596977/repos?page=2>; rel="next", <https://api.github.com/organizations/596977/repos?page=44>; rel="last" | |
| # i.e. '44' | |
| for i in {1..44}; do curl "https://api.github.com/organizations/596977/repos?page=$i" >> repos.json; done | |
| cat repos.json| jq '.[]|.html_url' -r | xargs -I REPO git clone REPO && sleep 1 |
| cat repos.json | \ | |
| jq '.[]|.full_name' | \ | |
| xargs -I REPO | |
| curl -X POST \ | |
| -H "Content-Type: application/json" \ | |
| -H "Authorization: token ${GITHUB_TOKEN}" \ | |
| -d '{"organization": "alphagov-mirror"}' \ | |
| https://api.github.com/repos/REPO/forks |
| from github import Github, GithubException | |
| import json | |
| from datetime import datetime | |
| import os | |
| def main(token): | |
| g = Github(token) | |
| alphagov = g.get_organization('alphagov') |
| import os | |
| import json | |
| import time | |
| from datetime import datetime | |
| from github import ( | |
| Github, UnknownObjectException, GithubException, RateLimitExceededException | |
| ) | |
| RATE_LIMIT_COUNT = 0 |