https://github.com/mdevilliers/org-scrounger
https://github.com/mdevilliers/org-scrounger
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/mdevilliers/org-scrounger
- Owner: mdevilliers
- License: mit
- Created: 2022-03-09T13:41:38.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-09-09T01:36:30.000Z (almost 2 years ago)
- Last Synced: 2024-09-09T02:47:35.576Z (almost 2 years ago)
- Language: Go
- Size: 347 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
### org-scrounger
A highly opinionated CLI to aid me in my day-to-day tasks engineer managing a large github, k8s estate.
[](https://github.com/mdevilliers/org-scrounger/actions/workflows/ci.yaml)
[](https://goreportcard.com/report/github.com/mdevilliers/org-scrounger)
## Examples
### Run reports outputting either to JSON or format using a template file.
```
export GITHUB_TOKEN=xxxxxxxxxxx
./scrng report --topic foo --owner some-owner # outputs json
./scrng report --output template --topic foo --owner some-owner > team-foo.html # outputs html for all repos with tag
./scrng report --output template --repo some-repo --owner some-owner # outputs html for one repo
```
### List all of the docker images used in a kustomize configuration.
```
export GITHUB_TOKEN=xxxxxxxxxxx
./scrng images kustomize --root {some-path} --root {some-other-path } # list all images
```
### List all services in a Jaegar trace
```
./scrng images jaegar --trace-id=231d6db2c8be1d28a7c86d67716cf39e
```
### List all of the docker images used in a kustomize configuration and map to repositories
```
export GITHUB_TOKEN=xxxxxxxxxxx
./scrng images kustomize --root {some-path} --root {some-other-path } --mapping {some-file-path}
```
An example mapping file
```
# this is a comment
# default github owner
owner = "org-1"
# know container repositories
container_repositories = [
"foo-container-repo",
"bar-container-repo"
]
# a container that doesn't map to a repo
_ > "please/ignore"
# static is a repo we can't discover from the image name
static > _
# the image 'bar' maps to repo 'foo' at the owner above
foo > "bar"
# you can namespace the image using the prefix "image:"
# the image 'bar2' maps to repo 'foo2' at the owner above
foo2 > "image:bar2"
# the image 'other-org' maps to another to github repo org-2/foo
org-2/foo > "other-org"
# the image 'no', 'yes' and 'maybe' maps to repo 'needle' at the owner above
needle > ["no", "yes", "maybe"]
```
Example output
```
[
{
"name": "bar",
"docker_container_repository" : "foo-container-repo",
"version": "0.3.2",
"count": 1,
"repo": {
"name": "foo",
"url": "https://github.com/org-1/foo",
"is_archived": false,
"topics": [
"one",
"two"
],
"languages": {
"Dockerfile": 1572,
"Go": 92022,
"Makefile": 1609,
"Shell": 1332
}
}
}
]
```
### List all of the services touched by a Jaegar trace configuration and map to repositories
```
export GITHUB_TOKEN=xxxxxxxxxxx
./scrng images jaegar --trace-id=231d6db2c8be1d28a7c86d67716cf39e --mapping mappings.conf
```
### List all of the repos with some basic information for a team.
```
export GITHUB_TOKEN=xxxxxxxxxxx
./scrng list --topic foo --owner some-owner | jq
```
### List all repos without specific topics (in the example one, two or three)
```
export GITHUB_TOKEN=xxxxxxxxxxx
./scrng list -owner some-owner --omit-archived | jq -c '.[] |. as $parent | select(.repo.topics) | .repo.topics | select( all( test("one|two|three") == false )) | $parent' | jq -r '.repo.name' | sort | uniq
```
### List all non-archived repos
```
export GITHUB_TOKEN=xxxxxxxxxxx
./scrng list -owner some-owner --omit-archived
```