Skip to content

Commit 77876a2

Browse files
committed
First commit
0 parents  commit 77876a2

38 files changed

+5540
-0
lines changed

.github/codecov.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ignore:
2+
- main.go

.github/workflows/ci.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
test-and-lint:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- uses: actions/[email protected]
17+
18+
- uses: actions/[email protected]
19+
with:
20+
go-version: '1.24'
21+
22+
- uses: actions/[email protected]
23+
with:
24+
path: |
25+
~/.cache/go-build
26+
~/go/pkg/mod
27+
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
28+
restore-keys: |
29+
${{ runner.os }}-go-
30+
31+
- name: Download dependencies
32+
run: go mod download
33+
34+
- name: Run tests
35+
run: go test ./...
36+
37+
- name: Run linter
38+
uses: golangci/golangci-lint-action@v8
39+

.github/workflows/coverage.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Coverage
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
coverage:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/[email protected]
14+
15+
- uses: actions/[email protected]
16+
with:
17+
go-version: '1.24'
18+
19+
- uses: actions/[email protected]
20+
with:
21+
path: |
22+
~/.cache/go-build
23+
~/go/pkg/mod
24+
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
25+
restore-keys: |
26+
${{ runner.os }}-go-
27+
28+
- name: Download dependencies
29+
run: go mod download
30+
31+
- name: Run tests with coverage
32+
run: go test ./... -coverprofile=coverage.txt
33+
34+
- name: Upload results to Codecov
35+
uses: codecov/codecov-action@v5
36+
with:
37+
token: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/release.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Build and Publish Release Binaries
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
permissions:
8+
contents: write
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
strategy:
14+
matrix:
15+
goos: [linux, darwin, windows]
16+
goarch: [amd64, arm64]
17+
18+
steps:
19+
- uses: actions/[email protected]
20+
21+
- uses: actions/[email protected]
22+
with:
23+
go-version: '1.24'
24+
25+
- name: Build binary
26+
run: |
27+
mkdir -p dist
28+
output=remake_${{ matrix.goos }}_${{ matrix.goarch }}
29+
if [ "${{ matrix.goos }}" = "windows" ]; then output=$output.exe; fi
30+
GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} \
31+
go build -ldflags "-s -w" -o dist/$output .
32+
33+
- name: Publish to GitHub Release
34+
uses: softprops/action-gh-release@v2
35+
if: startsWith(github.event.release.tag_name, 'v')
36+
with:
37+
# Subir sólo el binario correspondiente a esta matriz
38+
files: dist/remake_${{ matrix.goos }}_${{ matrix.goarch }}${{ matrix.goos == 'windows' && '.exe' || '' }}
39+
env:
40+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# If you prefer the allow list template instead of the deny list, see community template:
2+
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
3+
#
4+
# Binaries for programs and plugins
5+
*.exe
6+
*.exe~
7+
*.dll
8+
*.so
9+
*.dylib
10+
bin/** */
11+
12+
# Test binary, built with `go test -c`
13+
*.test
14+
15+
# Output of the go coverage tool, specifically when used with LiteIDE
16+
*.out
17+
18+
# Dependency directories (remove the comment below to include it)
19+
# vendor/
20+
21+
# Go workspace file
22+
go.work
23+
go.work.sum
24+
25+
# env file
26+
.env
27+
28+
# VSCode
29+
.vscode/
30+
31+
# Makefiles
32+
*.mk

.vscode/launch.json

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
{
2+
"version": "0.2.0",
3+
"inputs": [
4+
{
5+
"id": "reference",
6+
"description": "Makefile reference, either local or remote OCI/HTTP(s).",
7+
"type": "promptString",
8+
},
9+
{
10+
"id": "target",
11+
"description": "Makefile target to run.",
12+
"type": "promptString",
13+
},
14+
{
15+
"id": "file",
16+
"description": "Local makefile to push.",
17+
"type": "promptString",
18+
},
19+
{
20+
"id": "loginRegistry",
21+
"description": "OCI registry to login.",
22+
"type": "promptString",
23+
},
24+
{
25+
"id": "loginUsername",
26+
"description": "Username to login.",
27+
"type": "promptString",
28+
},
29+
{
30+
"id": "loginPassword",
31+
"description": "Password to login.",
32+
"type": "promptString",
33+
"password": true,
34+
},
35+
],
36+
"configurations": [
37+
{
38+
"name": "Remake Login",
39+
"type": "go",
40+
"request": "launch",
41+
"mode": "debug",
42+
"program": "${workspaceFolder}/main.go",
43+
"args": [
44+
"login",
45+
"${input:loginRegistry}",
46+
"--user",
47+
"${input:loginUsername}",
48+
"--pass",
49+
"${input:loginPassword}",
50+
]
51+
},
52+
{
53+
"name": "Remake Run",
54+
"type": "go",
55+
"request": "launch",
56+
"mode": "debug",
57+
"program": "${workspaceFolder}/main.go",
58+
"args": [
59+
"run",
60+
"--file",
61+
"${input:reference}",
62+
"${input:target}",
63+
]
64+
},
65+
{
66+
"name": "Remake Pull",
67+
"type": "go",
68+
"request": "launch",
69+
"mode": "debug",
70+
"program": "${workspaceFolder}/main.go",
71+
"args": [
72+
"pull",
73+
"${input:reference}",
74+
]
75+
},
76+
{
77+
"name": "Remake Push",
78+
"type": "go",
79+
"request": "launch",
80+
"mode": "debug",
81+
"program": "${workspaceFolder}/main.go",
82+
"args": [
83+
"push",
84+
"${input:reference}",
85+
"--file",
86+
"${input:file}",
87+
]
88+
},
89+
{
90+
"name": "Remake Version",
91+
"type": "go",
92+
"request": "launch",
93+
"mode": "debug",
94+
"program": "${workspaceFolder}/main.go",
95+
"args": [
96+
"version"
97+
]
98+
},
99+
{
100+
"name": "Remake Config",
101+
"type": "go",
102+
"request": "launch",
103+
"mode": "debug",
104+
"program": "${workspaceFolder}/main.go",
105+
"args": [
106+
"config"
107+
]
108+
}
109+
]
110+
}

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright © 2025 TrianaLab - Eduardo Diaz <[email protected]>
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in
13+
all copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.

NOTICE.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
NOTICE
2+
3+
Remake – Third-Party Software Notices
4+
5+
This product bundles and distributes the following third-party components. Their licenses and copyright notices are shown below.
6+
7+
--------------------------------------------------------------------------------
8+
github.com/creack/pty v1.1.24
9+
License: MIT License
10+
URL: https://github.com/creack/pty/blob/v1.1.24/LICENSE
11+
© 2011 Keith Rarick
12+
:contentReference[oaicite:0]{index=0}
13+
14+
github.com/google/go-containerregistry v0.20.4
15+
License: Apache License, Version 2.0
16+
URL: https://github.com/google/go-containerregistry/blob/v0.20.4/LICENSE
17+
© Google LLC
18+
:contentReference[oaicite:1]{index=1}
19+
20+
github.com/opencontainers/image-spec v1.1.1
21+
License: Apache License, Version 2.0
22+
URL: https://github.com/opencontainers/image-spec/blob/v1.1.1/LICENSE
23+
© The Open Container Initiative Authors
24+
:contentReference[oaicite:2]{index=2}
25+
26+
github.com/spf13/cobra v1.9.1
27+
License: Apache License, Version 2.0
28+
URL: https://github.com/spf13/cobra/blob/v1.9.1/LICENSE.txt
29+
© The Cobra Authors
30+
:contentReference[oaicite:3]{index=3}
31+
32+
github.com/spf13/viper v1.20.1
33+
License: MIT License
34+
URL: https://github.com/spf13/viper/blob/v1.20.1/LICENSE
35+
© Steve Francia
36+
:contentReference[oaicite:4]{index=4}
37+
38+
github.com/stretchr/testify v1.10.0
39+
License: MIT License
40+
URL: https://github.com/stretchr/testify/blob/v1.10.0/LICENSE
41+
© Mat Ryer, Tyler Bunnell and contributors
42+
:contentReference[oaicite:5]{index=5}
43+
44+
golang.org/x/term v0.32.0
45+
License: BSD-3-Clause “New” or “Revised” License
46+
URL: https://pkg.go.dev/golang.org/x/term?tab=licenses
47+
© The Go Authors
48+
:contentReference[oaicite:6]{index=6}
49+
50+
oras.land/oras-go/v2 v2.6.0
51+
License: Apache License, Version 2.0
52+
URL: https://github.com/oras-project/oras-go/blob/v2.6.0/LICENSE
53+
© The ORAS Authors
54+
:contentReference[oaicite:7]{index=7}
55+
56+
--------------------------------------------------------------------------------

0 commit comments

Comments
 (0)