CLI that fetches assets for offline usage
# Fecth docker images
bring docker download alpine:3.14 redis:7.0.5 --to /tmp/dest.tar
CLI that fetches assets for offline usage
License: MIT License
Is your feature request related to a problem? Please describe.
It is impossible to know what version of bring
am I using
Describe the solution you'd like
I would like to run something like bring -v
, bring --version
or bring version
to know what version of bring I am using.
Describe alternatives you've considered
None.
Additional context
None.
Add makefile for developer convenience.
The makefile should support the following targets:
setup
- Setup everything necessary to start coding.build
- Build the bring
CLI binaryclean
- Remove any sort of temporary files and build assetstest
- Run all of the testsHere is an example from aquasecurity/trivy
Configure GitHub actions to perform:
golangci-lint
)Is your feature request related to a problem? Please describe.
The currunt README file is very sparse and not informative.
Describe the solution you'd like
Make the README a GREAT one by:
Describe alternatives you've considered
None.
Additional context
None.
Is your feature request related to a problem? Please describe.
Every command that bring
executes (e.g. docker pull
) may be verbose and print confusing text.
Describe the solution you'd like
It will be better to:
--verbose
global flag--quite
flagDescribe alternatives you've considered
One can run bring ... &> /dev/null
but it is not that comfortable.
Additional context
It may be a good opportunity to implement a logger for the mission.
Is your feature request related to a problem? Please describe.
If someone wants to run integration tests locally, he must either:
Describe the solution you'd like
It will be better to use something like testcontainers to setup an ephemeral docker registry locally.
Describe alternatives you've considered
None.
Additional context
There's a trivy implementation of such thing here.
Configure golangci-lint
for enforcing styling and assisting code quality.
Here is an example from aquasecurity/trivy.
Is your feature request related to a problem? Please describe.
When opening a PR, one should write its description from scratch.
Describe the solution you'd like
It would be nice to have a template to focus contributors on what should be written in PR descriptions.
Describe alternatives you've considered
None.
Additional context
None.
Add tests that will:
bring docker download
commandIs your feature request related to a problem? Please describe.
It is not easy to get onboarding to contribute this project.
There is no information about how development is done, with what tools, etc.
Describe the solution you'd like
Create a contribution guide (CONTRIBUTING.md
) explainging:
Describe alternatives you've considered
None.
Additional context
None.
Configure goreleaser
for automatic releasing of new versions of bring
CLI.
New build artifact should be available under every release on this GitHub project.
Here is an example goreleaser
configuration from aquasecurity/trivy.
Is your feature request related to a problem? Please describe.
It is not clear where this project is going to, what features are needed and how to best implement them.
Describe the solution you'd like
Create a nice roadmap document (maybe as wiki page) explaining milestones for this project.
Describe alternatives you've considered
It is also possible to just put it in a markdown file but it is probably a bad idea to mix this in the source code management.
Additional context
None.
Issue templates help standardizes the process of understanding the contributor/end-user situation and helps priorize work.
Add issue templates for bug reports and feature requests.
As appropriate for every opensource project, add an open source license.
MIT-2 will be fine.
Add a bring docker upload
command that will:
bring docker download
commandExample inputs and outputs:
# Download images locally
bring docker download redis:7.0.5 quay.io/argoproj/argocd:2.4.14 --to images.tar
# Load images and push custom registry
bring docker upload images.tar --to quay.io/myorg/public
# Images will be retagged and pushed as follows:
# redis:7.0.5 -> quay.io/myorg/public/redis:7.0.5
# quay.io/argoproj/argocd:2.4.14 -> quay.io/myorg/public/argoproj/argocd:2.4.14
Image operations such as pull, save, load and push can be made via Go implementations rather than exec'ing some docker commands.
The dependency of docker daemon existence is limiting and not unnecessary.
In the vision of bring, the CLI should be independent and standalone so it can be run everywhere.
We can, for example, use Google's go-containerregistry library.
Is your feature request related to a problem? Please describe.
Current tests and subtest do not follow some consistent naming rules.
Describe the solution you'd like
It will be nice to have consistent naming convention across unit and integration tests.
Additionaly, it should be easy to name a new test.
Describe alternatives you've considered
None.
Additional context
None.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.