From d91cc6963e026dfb29231d3815f9f0aed7515f4a Mon Sep 17 00:00:00 2001
From: Eike Haller <58111764+eksrha@users.noreply.github.com>
Date: Mon, 11 May 2026 21:35:47 +0200
Subject: [PATCH 1/2] feat!: rebrand awesome-ci to relctl
BREAKING CHANGES:
- Binary renamed from `awesome-ci` to `relctl`
- Module path changed to `github.com/layer87-labs/relctl`
- All `ACI_` env var prefixes renamed to `RELCTL_`
- PR comment syntax: `aci_patch_level:` -> `relctl_patch_level:`,
`aci_version_override:` -> `relctl_version_override:`
- `RELCTL_SILENT` replaces `ACI_SILENT`
CI/CD workflows:
- Replace Release.yaml + branchPR.yaml + codeql-analysis.yml with
ci.yaml + release.yaml + stale.yaml
- Tag pattern changed from `v*.*.*` to `[0-9]*.[0-9]*.[0-9]*` (v-less)
- ci.yaml: `generate-infos` first job runs `awesome-ci pr info`,
all other jobs depend on it
- release.yaml: `create-release` first job runs `awesome-ci release create`,
downstream jobs consume `version` + `release-id` outputs
- Go build commands moved to Makefile targets (`ci/build`, `build/single`)
- `CGO_ENABLED=0` moved from workflow env to Makefile targets
- All GitHub Actions updated to latest versions (checkout@v6, setup-go@v6,
upload-artifact@v7, download-artifact@v8, golangci-lint@v9, codeql@v3,
trivy@v0, cosign-installer@v4, dependency-review@v5, stale@v10)
Makefile:
- Add `ci/build` target (compile check, output to /dev/null)
- Add `build/single` target (release build with LDFLAGS + versioning)
Docs:
- Update all CLI reference pages to reflect new binary name and env vars
- Update examples to use RELCTL_ variables
---
.chglog/config.yml | 2 +-
.github/ISSUE_TEMPLATE/bug_report.md | 43 ----
.github/ISSUE_TEMPLATE/custom.md | 10 -
.github/ISSUE_TEMPLATE/feature_request.md | 20 --
.github/PULL_REQUEST_TEMPLATE.md | 22 --
.github/workflows/Release.yaml | 138 ------------
.github/workflows/branchPR.yaml | 75 -------
.github/workflows/ci.yaml | 206 +++++++++++++++++
.github/workflows/codeql-analysis.yml | 71 ------
.github/workflows/gh-pages-deploy.yaml | 53 -----
.github/workflows/release.yaml | 212 ++++++++++++++++++
.github/workflows/stale.yaml | 48 ++++
LICENSE | 2 +-
Makefile | 35 ++-
README.md | 42 ++--
cmd/awesome-ci/main.go | 9 -
cmd/relctl/main.go | 7 +
docs/docs/01-overview.md | 16 +-
docs/docs/02-CLI/connect/check/index.md | 6 +-
docs/docs/02-CLI/connect/github/index.md | 6 +-
docs/docs/02-CLI/connect/index.md | 12 +-
docs/docs/02-CLI/connect/remove/index.md | 6 +-
docs/docs/02-CLI/index.md | 22 +-
docs/docs/02-CLI/parse/index.md | 12 +-
docs/docs/02-CLI/parse/json/index.md | 6 +-
docs/docs/02-CLI/parse/version/index.md | 6 +-
docs/docs/02-CLI/parse/yaml/index.md | 6 +-
docs/docs/02-CLI/pr/index.md | 8 +-
docs/docs/02-CLI/pr/info/index.md | 6 +-
docs/docs/02-CLI/release/create/index.md | 6 +-
docs/docs/02-CLI/release/index.md | 10 +-
docs/docs/02-CLI/release/publish/index.md | 32 +--
docs/docs/02-CLI/transform/group-by/index.md | 8 +-
docs/docs/02-CLI/transform/index.md | 8 +-
docs/docs/03-examples/github-actions.md | 30 +--
docs/docusaurus.config.ts | 18 +-
.../src/components/HomepageFeatures/index.tsx | 2 +-
docs/static/img/release-process.drawio.svg | 4 +-
go.mod | 54 ++---
go.sum | 117 +++++-----
.../app/{awesome-ci => relctl}/ces/detect.go | 12 +-
.../app/{awesome-ci => relctl}/ces/envs.go | 2 +-
.../ces/github_runner/runner.go | 2 +-
.../ces/gitlab_runner/runner.go | 2 +-
.../ces/jenkins_pipeline/pipeline.go | 2 +-
.../app/{awesome-ci => relctl}/ces/models.go | 2 +-
.../cmd/connect/connect.go | 4 +-
.../{awesome-ci => relctl}/cmd/parse/parse.go | 4 +-
.../cmd/pullrequest/pullrequest.go | 2 +-
.../cmd/release/release.go | 32 +--
.../app/{awesome-ci => relctl}/cmd/root.go | 20 +-
.../{awesome-ci => relctl}/cmd/root_test.go | 4 +-
.../cmd/transform/transform.go | 4 +-
.../{awesome-ci => relctl}/connect/connect.go | 4 +-
.../{awesome-ci => relctl}/connect/github.go | 4 +-
.../{awesome-ci => relctl}/connect/models.go | 0
.../app/{awesome-ci => relctl}/parse/parse.go | 0
.../awesome-ci.go => relctl/relctl.go} | 6 +-
.../scm-portal/comment.go | 4 +-
.../scm-portal/github/issues.go | 20 +-
.../scm-portal/github/models.go | 2 +-
.../scm-portal/github/pullrequest.go | 2 +-
.../scm-portal/github/release.go | 6 +-
.../scm-portal/github/root.go | 4 +-
.../scm-portal/issues.go | 4 +-
.../scm-portal/layer.go | 6 +-
.../scm-portal/models.go | 4 +-
.../scm-portal/prmr_request.go | 4 +-
.../scm-portal/release.go | 4 +-
.../service/pullrequest.go | 26 +--
.../{awesome-ci => relctl}/service/release.go | 14 +-
internal/pkg/parsejy/parse_test.go | 2 +-
internal/pkg/rcpersist/rc_file.go | 2 +-
internal/pkg/rcpersist/util.go | 2 +-
internal/pkg/semver/semver_test.go | 2 +-
internal/pkg/uploadasset/asset.go | 4 +-
scripts/release-template.md | 4 +-
tests/testdata/release.md | 4 +-
78 files changed, 838 insertions(+), 784 deletions(-)
delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
delete mode 100644 .github/ISSUE_TEMPLATE/custom.md
delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md
delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md
delete mode 100644 .github/workflows/Release.yaml
delete mode 100644 .github/workflows/branchPR.yaml
create mode 100644 .github/workflows/ci.yaml
delete mode 100644 .github/workflows/codeql-analysis.yml
delete mode 100644 .github/workflows/gh-pages-deploy.yaml
create mode 100644 .github/workflows/release.yaml
create mode 100644 .github/workflows/stale.yaml
delete mode 100644 cmd/awesome-ci/main.go
create mode 100644 cmd/relctl/main.go
rename internal/app/{awesome-ci => relctl}/ces/detect.go (76%)
rename internal/app/{awesome-ci => relctl}/ces/envs.go (93%)
rename internal/app/{awesome-ci => relctl}/ces/github_runner/runner.go (91%)
rename internal/app/{awesome-ci => relctl}/ces/gitlab_runner/runner.go (90%)
rename internal/app/{awesome-ci => relctl}/ces/jenkins_pipeline/pipeline.go (91%)
rename internal/app/{awesome-ci => relctl}/ces/models.go (72%)
rename internal/app/{awesome-ci => relctl}/cmd/connect/connect.go (92%)
rename internal/app/{awesome-ci => relctl}/cmd/parse/parse.go (93%)
rename internal/app/{awesome-ci => relctl}/cmd/pullrequest/pullrequest.go (93%)
rename internal/app/{awesome-ci => relctl}/cmd/release/release.go (79%)
rename internal/app/{awesome-ci => relctl}/cmd/root.go (57%)
rename internal/app/{awesome-ci => relctl}/cmd/root_test.go (80%)
rename internal/app/{awesome-ci => relctl}/cmd/transform/transform.go (79%)
rename internal/app/{awesome-ci => relctl}/connect/connect.go (84%)
rename internal/app/{awesome-ci => relctl}/connect/github.go (80%)
rename internal/app/{awesome-ci => relctl}/connect/models.go (100%)
rename internal/app/{awesome-ci => relctl}/parse/parse.go (100%)
rename internal/app/{awesome-ci/awesome-ci.go => relctl/relctl.go} (76%)
rename internal/app/{awesome-ci => relctl}/scm-portal/comment.go (77%)
rename internal/app/{awesome-ci => relctl}/scm-portal/github/issues.go (85%)
rename internal/app/{awesome-ci => relctl}/scm-portal/github/models.go (70%)
rename internal/app/{awesome-ci => relctl}/scm-portal/github/pullrequest.go (97%)
rename internal/app/{awesome-ci => relctl}/scm-portal/github/release.go (97%)
rename internal/app/{awesome-ci => relctl}/scm-portal/github/root.go (93%)
rename internal/app/{awesome-ci => relctl}/scm-portal/issues.go (68%)
rename internal/app/{awesome-ci => relctl}/scm-portal/layer.go (68%)
rename internal/app/{awesome-ci => relctl}/scm-portal/models.go (86%)
rename internal/app/{awesome-ci => relctl}/scm-portal/prmr_request.go (95%)
rename internal/app/{awesome-ci => relctl}/scm-portal/release.go (90%)
rename internal/app/{awesome-ci => relctl}/service/pullrequest.go (60%)
rename internal/app/{awesome-ci => relctl}/service/release.go (90%)
diff --git a/.chglog/config.yml b/.chglog/config.yml
index e0e334a..e1c3d4b 100755
--- a/.chglog/config.yml
+++ b/.chglog/config.yml
@@ -2,7 +2,7 @@ style: github
template: CHANGELOG.tpl.md
info:
title: CHANGELOG
- repository_url: https://github.com/fullstack-devops/awesome-ci
+ repository_url: https://github.com/layer87-labs/relctl
options:
sort: "semver"
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 0d5deed..0000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-title: "Bug: "
-labels: "bug"
-assignees: ""
----
-
-**Describe the bug**
-A clear and concise description of what the bug is.
-
-**Your environment/setup**
-In what tool is your pipeline running?
-
-- [ ] GitHub Actions
-- [ ] GitLab CI
-- [ ] Jenkins Pipeline
-
-How is this tool installed
-
-- [ ] Container
-- [ ] Bare Metal
-- [ ] Virtual machine
-
-Are all environment variables set? See README.md
-
-- [ ] yes
-- [ ] no
-
-**To Reproduce**
-Paste your executed command here:
-
-Paste your Pipeline log (this is optional, make shure no secrets are visable):
-
-```shell
-# pipeline log
-```
-
-**Expected behavior**
-A clear and concise description of what you expected to happen.
-
-**Additional context**
-Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md
deleted file mode 100644
index 48d5f81..0000000
--- a/.github/ISSUE_TEMPLATE/custom.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-name: Custom issue template
-about: Describe this issue template's purpose here.
-title: ''
-labels: ''
-assignees: ''
-
----
-
-
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 30ea4ed..0000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-title: 'Feature: '
-labels: 'enhancement'
-assignees: ''
-
----
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
-
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index b9a1049..0000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,22 +0,0 @@
-## Additions
-
--
-
-## Removals
-
--
-
-## Changes
-
--
-
-## Checklist
-
-- [ ] PR has an informative and human-readable title
-- [ ] Placeholder code is flagged / future todos are captured in comments
-- [ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
-- [ ] Reviewers requested with the [Reviewers tool](https://help.github.com/articles/requesting-a-pull-request-review/) :arrow_right:
-
-### Other
-
-- [ ] No linting errors or warnings
diff --git a/.github/workflows/Release.yaml b/.github/workflows/Release.yaml
deleted file mode 100644
index 6f1f77c..0000000
--- a/.github/workflows/Release.yaml
+++ /dev/null
@@ -1,138 +0,0 @@
-name: Publish Release
-
-concurrency:
- group: ci-${{ github.repository }}-release
- cancel-in-progress: false
-
-on:
- push:
- branches:
- - "main"
- paths-ignore:
- - "docs/**"
- - "CHANGELOG.md"
-
-jobs:
- create-release:
- uses: fullstack-devops/git-workflows/.github/workflows/create-release.yml@main
- secrets:
- token: ${{ secrets.GITHUB_TOKEN }}
-
- quality-gate:
- runs-on: ubuntu-latest
- needs: [create-release]
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Set up Go
- uses: actions/setup-go@v5
- with:
- go-version-file: go.mod
- cache: true
-
- - name: Test
- run: make test/cover
- - name: Audit
- run: make audit
-
- - name: debugging git
- run: |
- echo "git name-rev HEAD: $(git name-rev HEAD)"
- echo "git log -1 --pretty=format:"%s": $(git log -1 --pretty=format:"%s")"
- echo "git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@': $(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')"
-
- build:
- runs-on: ubuntu-latest
- needs: [create-release, quality-gate]
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: Set up Go
- uses: actions/setup-go@v5
- with:
- go-version-file: go.mod
- cache: true
-
- - name: Build
- run: make
- env:
- VERSION: "${{ needs.create-release.outputs.version }}"
-
- - name: Setup UPX
- uses: crazy-max/ghaction-upx@v3
- with:
- install-only: true
- - name: Compress binaries with upx
- run: make upx
- env:
- VERSION: "${{ needs.create-release.outputs.version }}"
-
- - name: Cache build outputs
- uses: actions/cache@v4
- env:
- cache-name: cache-outputs-modules
- with:
- path: build/package/
- key: awesome-ci-${{ github.sha }}-${{ hashFiles('build/package/awesome-ci*') }}
- restore-keys: |
- awesome-ci-${{ github.sha }}
-
- publish-release:
- environment: production
- runs-on: ubuntu-latest
- needs: [create-release, build]
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Setup awesome-ci
- uses: fullstack-devops/awesome-ci-action@main
-
- - name: get cached build outputs
- uses: actions/cache@v4
- env:
- cache-name: cache-outputs-modules
- with:
- path: build/package/
- key: awesome-ci-${{ github.sha }}
-
- - name: list generated artifacts
- working-directory: build/package
- run: ls -la
-
- - name: Publish Release
- run: >-
- awesome-ci release publish --release-id ${{ needs.create-release.outputs.releaseid }}
- -a "file=build/package/awesome-ci_${{ needs.create-release.outputs.version }}_linux-amd64"
- -a "file=build/package/awesome-ci_${{ needs.create-release.outputs.version }}_linux-arm64"
- -a "file=build/package/awesome-ci_${{ needs.create-release.outputs.version }}_windows-amd64.exe"
- -a "file=build/package/awesome-ci_${{ needs.create-release.outputs.version }}_windows-arm64.exe"
- --body "build/package/release-template.md"
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- update_action:
- runs-on: ubuntu-latest
- needs: [create-release, publish-release]
- steps:
- - name: Check out awesome-ci-action
- uses: actions/checkout@v4
- with:
- repository: fullstack-devops/awesome-ci-action
- token: ${{ secrets.ACI_REPO_TOKEN }}
- persist-credentials: true
-
- - name: Update version and push
- run: |
- git config user.name "$GITHUB_ACTOR"
- git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
-
- sed -i "s/\([0-9]\+\.[0-9]\+\.[0-9]\+\)/$NEW_VERSION/g" action.yml README.md
-
- git status
- git commit -a -m "update to version v$NEW_VERSION"
- git tag v$NEW_VERSION -m "update to version v$NEW_VERSION"
- git push --follow-tags
- env:
- NEW_VERSION: ${{ needs.create-release.outputs.version }}
diff --git a/.github/workflows/branchPR.yaml b/.github/workflows/branchPR.yaml
deleted file mode 100644
index fde55da..0000000
--- a/.github/workflows/branchPR.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-name: Build PR
-
-on:
- pull_request:
-
-jobs:
- generate-infos:
- uses: fullstack-devops/git-workflows/.github/workflows/generate-build-infos.yml@main
- secrets:
- token: ${{ secrets.GITHUB_TOKEN }}
-
- quality-gate:
- runs-on: ubuntu-latest
- needs: [generate-infos]
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Set up Go
- uses: actions/setup-go@v5
- with:
- go-version-file: go.mod
- cache: true
-
- - name: Test
- run: make test/cover
- - name: Audit
- run: make audit
-
- - name: debugging git
- run: |
- echo "git name-rev HEAD: $(git name-rev HEAD)"
- echo "git log -1 --pretty=format:"%s": $(git log -1 --pretty=format:"%s")"
- echo "git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@': $(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')"
-
- build:
- runs-on: ubuntu-latest
- needs: [generate-infos, quality-gate]
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: Set up Go
- uses: actions/setup-go@v5
- with:
- go-version-file: go.mod
- cache: true
-
- - name: Build
- run: make
- env:
- VERSION: "${{ needs.generate-infos.outputs.version }}"
-
- - name: Setup UPX
- uses: crazy-max/ghaction-upx@v3
- with:
- install-only: true
- - name: Compress binaries with upx
- run: make upx
- env:
- VERSION: "${{ needs.generate-infos.outputs.version }}"
-
- - name: upload artifacts
- uses: actions/upload-artifact@v4
- with:
- name: awesome-ci-binaries
- path: |
- build/package/awesome-ci_*
-
- - name: (integration testing) test build Infos
- run: build/package/awesome-ci_${{ needs.generate-infos.outputs.version }}_linux-amd64 pr info -n ${{ github.event.pull_request.number }} -v > $GITHUB_STEP_SUMMARY
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: (integration testing) test env file
- run: export | grep ACI_
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000..97ed116
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,206 @@
+name: CI
+
+on:
+ push:
+ branches: ["main"]
+ paths-ignore:
+ - "docs/**"
+ - "*.md"
+ pull_request:
+ branches: ["main"]
+
+permissions:
+ contents: read
+ security-events: write
+ pull-requests: read
+
+jobs:
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Build – multi-arch compile check
+ # ──────────────────────────────────────────────────────────────────────────────
+ build:
+ name: Build (${{ matrix.goos }}/${{ matrix.goarch }})
+ runs-on: ubuntu-latest
+ needs: [generate-infos]
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - goos: linux
+ goarch: amd64
+ - goos: linux
+ goarch: arm64
+ - goos: darwin
+ goarch: amd64
+ - goos: darwin
+ goarch: arm64
+ - goos: windows
+ goarch: amd64
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: actions/setup-go@v6
+ with:
+ go-version-file: go.mod
+ cache: true
+
+ - name: Build
+ env:
+ GOOS: ${{ matrix.goos }}
+ GOARCH: ${{ matrix.goarch }}
+ run: make ci/build
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Unit tests + coverage
+ # ──────────────────────────────────────────────────────────────────────────────
+ test:
+ name: Tests
+ runs-on: ubuntu-latest
+ needs: [generate-infos]
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: actions/setup-go@v6
+ with:
+ go-version-file: go.mod
+ cache: true
+
+ - name: Run tests with coverage
+ run: make test/cover
+
+ - name: Upload coverage report
+ uses: actions/upload-artifact@v7
+ with:
+ name: coverage-report
+ path: build/coverage/coverage.html
+ retention-days: 7
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Generate Build Infos – runs first, all other jobs depend on this
+ # TODO: switch to layer87-labs/relctl-action + relctl once stable
+ # ──────────────────────────────────────────────────────────────────────────────
+ generate-infos:
+ name: Generate Build Infos
+ runs-on: ubuntu-latest
+ outputs:
+ pr: ${{ steps.tag.outputs.ACI_PR }}
+ sha: ${{ steps.tag.outputs.ACI_PR_SHA }}
+ sha-short: ${{ steps.tag.outputs.ACI_PR_SHA_SHORT }}
+ owner: ${{ steps.tag.outputs.ACI_OWNER }}
+ repo: ${{ steps.tag.outputs.ACI_REPO }}
+ version: ${{ steps.tag.outputs.ACI_LATEST_VERSION }}-pr-${{ steps.tag.outputs.ACI_PR }}
+ latest-version: ${{ steps.tag.outputs.ACI_LATEST_VERSION }}
+ next-version: ${{ steps.tag.outputs.ACI_NEXT_VERSION }}
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+
+ - name: Setup awesome-ci
+ if: github.event_name == 'pull_request'
+ uses: fullstack-devops/awesome-ci-action@main
+
+ - name: Collect PR infos
+ id: tag
+ if: github.event_name == 'pull_request'
+ run: awesome-ci pr info -n ${{ github.event.pull_request.number }} > "$GITHUB_STEP_SUMMARY"
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Lint
+ # ──────────────────────────────────────────────────────────────────────────────
+ lint:
+ name: golangci-lint
+ runs-on: ubuntu-latest
+ needs: [generate-infos]
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: actions/setup-go@v6
+ with:
+ go-version-file: go.mod
+ cache: false
+
+ - uses: golangci/golangci-lint-action@v9
+ with:
+ version: latest
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # CodeQL – static security analysis
+ # ──────────────────────────────────────────────────────────────────────────────
+ codeql:
+ name: CodeQL Analysis
+ runs-on: ubuntu-latest
+ needs: [generate-infos]
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+ steps:
+ - uses: actions/checkout@v6
+
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v3
+ with:
+ languages: go
+
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@v3
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v3
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Gitleaks – secret scanning
+ # ──────────────────────────────────────────────────────────────────────────────
+ gitleaks:
+ name: Gitleaks Secret Scan
+ runs-on: ubuntu-latest
+ needs: [generate-infos]
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+
+ - uses: gitleaks/gitleaks-action@v2
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Trivy – filesystem vulnerability scan
+ # ──────────────────────────────────────────────────────────────────────────────
+ trivy:
+ name: Trivy Vulnerability Scan
+ runs-on: ubuntu-latest
+ needs: [generate-infos]
+ steps:
+ - uses: actions/checkout@v6
+
+ - name: Run Trivy filesystem scan
+ uses: aquasecurity/trivy-action@v0
+ with:
+ scan-type: fs
+ scan-ref: .
+ format: sarif
+ output: trivy-results.sarif
+
+ - name: Upload Trivy SARIF results
+ uses: github/codeql-action/upload-sarif@v3
+ if: always()
+ with:
+ sarif_file: trivy-results.sarif
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Dependency Review – only on PRs
+ # ──────────────────────────────────────────────────────────────────────────────
+ dependency-review:
+ name: Dependency Review
+ runs-on: ubuntu-latest
+ needs: [generate-infos]
+ if: github.event_name == 'pull_request'
+ steps:
+ - uses: actions/checkout@v6
+
+ - name: Dependency Review
+ uses: actions/dependency-review-action@v5
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index 1b630e0..0000000
--- a/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-# For most projects, this workflow file will not need changing; you simply need
-# to commit it to your repository.
-#
-# You may wish to alter this file to override the set of languages analyzed,
-# or to provide custom queries or build logic.
-#
-# ******** NOTE ********
-# We have attempted to detect the languages in your repository. Please check
-# the `language` matrix defined below to confirm you have the correct set of
-# supported CodeQL languages.
-#
-name: "CodeQL"
-
-on:
- push:
- branches: [main]
- pull_request:
- # The branches below must be a subset of the branches above
- branches: [main]
- schedule:
- - cron: "21 13 * * 5"
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
- permissions:
- actions: read
- contents: read
- security-events: write
-
- strategy:
- fail-fast: false
- matrix:
- language: ["go"]
- # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
- # Learn more:
- # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v2
- with:
- languages: ${{ matrix.language }}
- # If you wish to specify custom queries, you can do so here or in a config file.
- # By default, queries listed here will override any specified in a config file.
- # Prefix the list here with "+" to use these queries and those in the config file.
- # queries: ./path/to/local/query, your-org/your-repo/queries@main
-
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
- # If this step fails, then you should remove it and run the build manually (see below)
- - name: Autobuild
- uses: github/codeql-action/autobuild@v2
-
- # ℹ️ Command-line programs to run using the OS shell.
- # 📚 https://git.io/JvXDl
-
- # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
- # and modify them (or add more) to build your code if your project
- # uses a compiled language
-
- #- run: |
- # make bootstrap
- # make release
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
diff --git a/.github/workflows/gh-pages-deploy.yaml b/.github/workflows/gh-pages-deploy.yaml
deleted file mode 100644
index dca5b21..0000000
--- a/.github/workflows/gh-pages-deploy.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: Deploy to GitHub Pages
-
-on:
- push:
- branches:
- - main
- pull_request:
- branches:
- - main
-
-jobs:
- build:
- name: Build Docusaurus
- runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: docs
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - uses: actions/setup-node@v4
- with:
- node-version-file: docs/.nvmrc
- cache: yarn
- cache-dependency-path: docs/yarn.lock
-
- - name: Install dependencies
- run: yarn install --frozen-lockfile
- - name: Build website
- run: yarn build
-
- - name: Upload Build Artifact
- if: github.ref == 'refs/heads/main'
- uses: actions/upload-pages-artifact@v3
- with:
- path: docs/build
-
- deploy:
- name: Deploy to GitHub Pages
- if: github.ref == 'refs/heads/main'
- needs: build
- permissions:
- pages: write
- id-token: write
- environment:
- name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
- runs-on: ubuntu-latest
- steps:
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v4
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
new file mode 100644
index 0000000..1aa58e0
--- /dev/null
+++ b/.github/workflows/release.yaml
@@ -0,0 +1,212 @@
+name: Release
+
+on:
+ push:
+ tags:
+ - "[0-9]*.[0-9]*.[0-9]*"
+
+permissions:
+ contents: write # create GitHub releases & upload assets
+ id-token: write # cosign keyless OIDC signing
+ packages: write # future: container registry (placeholder)
+
+jobs:
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Create Release – runs first, all other jobs depend on this
+ # TODO: switch to layer87-labs/relctl-action + relctl once stable
+ # ──────────────────────────────────────────────────────────────────────────────
+ create-release:
+ name: Create Release
+ runs-on: ubuntu-latest
+ outputs:
+ version: ${{ steps.tag.outputs.ACI_NEXT_VERSION }}
+ release-id: ${{ steps.tag.outputs.ACI_RELEASE_ID }}
+ sha: ${{ steps.tag.outputs.ACI_PR_SHA }}
+ sha-short: ${{ steps.tag.outputs.ACI_PR_SHA_SHORT }}
+ owner: ${{ steps.tag.outputs.ACI_OWNER }}
+ repo: ${{ steps.tag.outputs.ACI_REPO }}
+ latest-version: ${{ steps.tag.outputs.ACI_LATEST_VERSION }}
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+
+ - name: Setup awesome-ci
+ uses: fullstack-devops/awesome-ci-action@main
+
+ - name: Create Release
+ id: tag
+ run: |
+ awesome-ci release create \
+ --version "${GITHUB_REF_NAME}" \
+ --body "scripts/release-template.md" \
+ > "$GITHUB_STEP_SUMMARY"
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Phase A – Build, sign, SBOM
+ # ──────────────────────────────────────────────────────────────────────────────
+ build:
+ name: Build & Sign (${{ matrix.goos }}/${{ matrix.goarch }})
+ runs-on: ubuntu-latest
+ needs: [create-release]
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - goos: linux
+ goarch: amd64
+ suffix: linux-amd64
+ - goos: linux
+ goarch: arm64
+ suffix: linux-arm64
+ - goos: darwin
+ goarch: amd64
+ suffix: darwin-amd64
+ - goos: darwin
+ goarch: arm64
+ suffix: darwin-arm64
+ - goos: windows
+ goarch: amd64
+ suffix: windows-amd64
+ ext: .exe
+
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+
+ - uses: actions/setup-go@v6
+ with:
+ go-version-file: go.mod
+ cache: true
+
+ - name: Build binary
+ env:
+ GOOS: ${{ matrix.goos }}
+ GOARCH: ${{ matrix.goarch }}
+ VERSION: ${{ needs.create-release.outputs.version }}
+ COMMIT_HASH: ${{ github.sha }}
+ BUILD_DATE: ${{ github.event.head_commit.timestamp }}
+ run: make build/single SUFFIX=${{ matrix.suffix }} EXT=${{ matrix.ext }}
+
+ - name: Install cosign
+ uses: sigstore/cosign-installer@v4
+
+ - name: Sign binary (keyless via OIDC)
+ run: |
+ VERSION=${{ needs.create-release.outputs.version }}
+ BINARY="build/package/relctl_${VERSION}_${{ matrix.suffix }}${{ matrix.ext }}"
+ cosign sign-blob \
+ --yes \
+ --output-signature "${BINARY}.sig" \
+ --output-certificate "${BINARY}.pem" \
+ "${BINARY}"
+
+ - name: Install syft (SBOM generator)
+ uses: anchore/sbom-action/download-syft@v0
+
+ - name: Generate SBOM (SPDX)
+ run: |
+ VERSION=${{ needs.create-release.outputs.version }}
+ BINARY="build/package/relctl_${VERSION}_${{ matrix.suffix }}${{ matrix.ext }}"
+ syft "${BINARY}" \
+ -o spdx-json \
+ --file "build/package/relctl_${VERSION}_${{ matrix.suffix }}.sbom.spdx.json"
+
+ - name: Upload build artifacts
+ uses: actions/upload-artifact@v7
+ with:
+ name: relctl-${{ matrix.suffix }}
+ path: build/package/
+ retention-days: 1
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Phase A (continued) – Checksums
+ # ──────────────────────────────────────────────────────────────────────────────
+ checksums:
+ name: Generate Checksums
+ runs-on: ubuntu-latest
+ needs: [create-release, build]
+ steps:
+ - name: Download all artifacts
+ uses: actions/download-artifact@v8
+ with:
+ pattern: relctl-*
+ path: dist/
+ merge-multiple: true
+
+ - name: Generate SHA256 checksums
+ run: |
+ cd dist
+ sha256sum relctl_* > sha256sum.txt
+ cat sha256sum.txt
+
+ - name: Upload checksum artifact
+ uses: actions/upload-artifact@v7
+ with:
+ name: relctl-checksums
+ path: dist/sha256sum.txt
+ retention-days: 1
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Phase B – Publish Release
+ # ──────────────────────────────────────────────────────────────────────────────
+ publish-release:
+ name: Publish GitHub Release
+ runs-on: ubuntu-latest
+ needs: [create-release, build, checksums]
+ environment: production
+ steps:
+ - uses: actions/checkout@v6
+
+ - name: Download all artifacts
+ uses: actions/download-artifact@v8
+ with:
+ pattern: relctl-*
+ path: dist/
+ merge-multiple: true
+
+ - name: List artifacts
+ run: ls -lh dist/
+
+ # TODO: switch to layer87-labs/relctl-action + relctl once stable
+ - name: Setup awesome-ci
+ uses: fullstack-devops/awesome-ci-action@main
+
+ - name: Publish Release assets
+ run: |
+ ASSETS=()
+ while IFS= read -r f; do
+ ASSETS+=("--asset" "file=${f}")
+ done < <(find dist/ -type f | sort)
+ awesome-ci release publish \
+ --release-id "${{ needs.create-release.outputs.release-id }}" \
+ "${ASSETS[@]}"
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ # ──────────────────────────────────────────────────────────────────────────────
+ # Phase C – Post-Release (placeholders, not yet active)
+ # ──────────────────────────────────────────────────────────────────────────────
+
+ # TODO: Homebrew Formula Update
+ # homebrew-update:
+ # name: Update Homebrew Formula
+ # runs-on: ubuntu-latest
+ # needs: release
+ # steps:
+ # - name: Bump formula
+ # # TODO: use peter-evans/create-pull-request or a tap-bump action
+ # run: echo "Homebrew formula update not yet implemented"
+
+ # TODO: Docker Hub Push
+ # docker-publish:
+ # name: Push Docker Image
+ # runs-on: ubuntu-latest
+ # needs: release
+ # steps:
+ # - name: Build and push
+ # # TODO: use docker/build-push-action
+ # run: echo "Docker image push not yet implemented"
diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml
new file mode 100644
index 0000000..1da915f
--- /dev/null
+++ b/.github/workflows/stale.yaml
@@ -0,0 +1,48 @@
+name: Stale Issues and PRs
+
+on:
+ schedule:
+ - cron: "0 6 * * *" # daily at 06:00 UTC
+ workflow_dispatch:
+
+permissions:
+ issues: write
+ pull-requests: write
+
+jobs:
+ stale:
+ name: Mark and close stale issues/PRs
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/stale@v10
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+
+ # Issues
+ days-before-issue-stale: 60
+ days-before-issue-close: 7
+ stale-issue-label: "stale"
+ stale-issue-message: >
+ This issue has been automatically marked as stale because it has not had
+ any activity in the last 60 days. It will be closed in 7 days if no
+ further activity occurs. Thank you for your contributions!
+ close-issue-message: >
+ This issue has been automatically closed because it has been stale for
+ 7 days with no activity. Feel free to reopen it if it is still relevant.
+
+ # Pull Requests
+ days-before-pr-stale: 60
+ days-before-pr-close: 7
+ stale-pr-label: "stale"
+ stale-pr-message: >
+ This pull request has been automatically marked as stale because it has
+ not had any activity in the last 60 days. It will be closed in 7 days
+ if no further activity occurs. Thank you for your contributions!
+ close-pr-message: >
+ This pull request has been automatically closed because it has been
+ stale for 7 days with no activity. Feel free to reopen it if you want
+ to continue working on this change.
+
+ # Never stale these
+ exempt-issue-labels: "pinned,security,bug"
+ exempt-pr-labels: "pinned,security"
diff --git a/LICENSE b/LICENSE
index 450f93d..6d1b520 100644
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@ APPENDIX: How to apply the Apache License to your work.
same "printed page" as the copyright notice for easier
identification within third-party archives.
-Copyright [2025] [Eike Haller]
+Copyright [2026] [layer87-labs contributors]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/Makefile b/Makefile
index c737151..0f8d1b8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
-PROJECT_PKG = github.com/fullstack-devops/awesome-ci
-PKG_LIST = "github.com/fullstack-devops/awesome-ci/cmd/awesome-ci"
+PROJECT_PKG = github.com/layer87-labs/relctl
+PKG_LIST = "github.com/layer87-labs/relctl/cmd/relctl"
BUILD_DIR = ./build
LATEST_VERSION ?= "1.0.0"
@@ -55,21 +55,36 @@ test/cover:
go test -v -race -buildvcs -coverprofile=${BUILD_DIR}/coverage/coverage.out ./...
go tool cover -html=${BUILD_DIR}/coverage/coverage.out -o ${BUILD_DIR}/coverage/coverage.html
+## ci/build: cross-compile check for CI matrix (reads GOOS, GOARCH from env)
+.PHONY: ci/build
+ci/build:
+ CGO_ENABLED=0 go build -ldflags "-s -w" -o /dev/null ./cmd/relctl
+
+## build/single: build a single release binary (reads GOOS, GOARCH, VERSION, COMMIT_HASH, BUILD_DATE from env; pass SUFFIX and EXT as args)
+SUFFIX ?=
+EXT ?=
+.PHONY: build/single
+build/single:
+ mkdir -p $(BUILD_DIR)/package
+ CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" \
+ -o "$(BUILD_DIR)/package/relctl_$(VERSION)_$(SUFFIX)$(EXT)" \
+ ./cmd/relctl
+
## build: build the application
.PHONY: build
build:
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/awesome-ci_${VERSION}_linux-amd64 ./cmd/awesome-ci
- CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/awesome-ci_${VERSION}_linux-arm64 ./cmd/awesome-ci
- CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/awesome-ci_${VERSION}_windows-amd64.exe ./cmd/awesome-ci
- CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/awesome-ci_${VERSION}_windows-arm64.exe ./cmd/awesome-ci
+ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/relctl_${VERSION}_linux-amd64 ./cmd/relctl
+ CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/relctl_${VERSION}_linux-arm64 ./cmd/relctl
+ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/relctl_${VERSION}_windows-amd64.exe ./cmd/relctl
+ CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build ${GOARGS} -tags "${GOTAGS}" -ldflags "${LDFLAGS}" -o ${BUILD_DIR}/package/relctl_${VERSION}_windows-arm64.exe ./cmd/relctl
## upx: compress binaries
.PHONY: upx
upx:
- upx -5 ./build/package/awesome-ci_${VERSION}_linux-amd64
- upx -5 ./build/package/awesome-ci_${VERSION}_linux-arm64
- upx -5 ./build/package/awesome-ci_${VERSION}_windows-amd64.exe
-# upx --best ./build/package/awesome-ci_${VERSION}_windows-arm64.exe
+ upx -5 ./build/package/relctl_${VERSION}_linux-amd64
+ upx -5 ./build/package/relctl_${VERSION}_linux-arm64
+ upx -5 ./build/package/relctl_${VERSION}_windows-amd64.exe
+# upx --best ./build/package/relctl_${VERSION}_windows-arm64.exe
chglog:
go install github.com/git-chglog/git-chglog/cmd/git-chglog@latest
diff --git a/README.md b/README.md
index babef22..9fb1bbe 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,14 @@
-[](https://goreportcard.com/report/github.com/fullstack-devops/awesome-ci)
-[](https://github.com/fullstack-devops/awesome-ci/releases/latest)
-[](https://github.com/fullstack-devops/awesome-ci)
-[](https://github.com/fullstack-devops/awesome-ci/blob/main/LICENSE)
+[](https://goreportcard.com/report/github.com/layer87-labs/relctl)
+[](https://github.com/layer87-labs/relctl/releases/latest)
+[](https://github.com/layer87-labs/relctl)
+[](https://github.com/layer87-labs/relctl/blob/main/LICENSE)
-[](https://github.com/fullstack-devops/awesome-ci/actions/workflows/Release.yaml)
-[](https://github.com/fullstack-devops/awesome-ci/actions/workflows/pages/pages-build-deployment)
+[](https://github.com/layer87-labs/relctl/actions/workflows/Release.yaml)
+[](https://github.com/layer87-labs/relctl/actions/workflows/pages/pages-build-deployment)
-# Awesome CI
+# relctl
-**Description**: Awesome CI is the smart connection between your pipeline for continuous integration and GitHub. The focus is on the release process, followed by the version management of [SemVer](https://semver.org/). The required version number is created with the correct naming of the branch prefix.
+**Description**: relctl is the smart connection between your pipeline for continuous integration and GitHub. The focus is on the release process, followed by the version management of [SemVer](https://semver.org/). The required version number is created with the correct naming of the branch prefix.
- **Technology stack**: This tool is written in golang
- **Status**: Stable.
@@ -17,41 +17,43 @@
- GitHub & GitHub Enterprise
- GitHub actions
- Jenkins Pipelines
-- **Sweet Spot**: If you use GitHub or GitHub Enterprise and GitHub Actions, you can use awesome-ci to its full potential!
+- **Sweet Spot**: If you use GitHub or GitHub Enterprise and GitHub Actions, you can use relctl to its full potential!
## Getting Started
-You can use this tool in your CI pipeline or locally on your command line. Just [download](https://github.com/fullstack-devops/awesome-ci/releases/latest/download/awesome-ci) the most recently released version and get started.
+You can use this tool in your CI pipeline or locally on your command line. Just [download](https://github.com/layer87-labs/relctl/releases/latest/download/relctl) the most recently released version and get started.
## Usage
-To integrate Awesome CI into your pipeline, follow these steps:
+To integrate relctl into your pipeline, follow these steps:
-1. Utilize the github action [fullstack-devops/awesome-ci-action](https://github.com/fullstack-devops/awesome-ci-action) to install Awesome CI.
-2. Configure your pipeline to use Awesome CI.
-3. Use the any command to interact with Awesome CI.
+1. Utilize the github action [layer87-labs/relctl-action](https://github.com/layer87-labs/relctl-action) to install relctl.
+2. Configure your pipeline to use relctl.
+3. Use the any command to interact with relctl.
-You can find more information on how to integrate Awesome CI into your pipeline in the [manual](https://fullstack-devops.github.io/awesome-ci/).
+You can find more information on how to integrate relctl into your pipeline in the [manual](https://layer87-labs.github.io/relctl/).
## Examples
-You can find several examples of how to use Awesome CI in the [examples section](https://fullstack-devops.github.io/awesome-ci/docs/examples) of the documentation.
+You can find several examples of how to use relctl in the [examples section](https://layer87-labs.github.io/relctl/docs/examples) of the documentation.
## Frequently Asked Questions
-You can find frequently asked questions in the [Questions and Answers](https://fullstack-devops.github.io/awesome-ci/docs/questions_and_answers) section of the documentation.
+You can find frequently asked questions in the [Questions and Answers](https://layer87-labs.github.io/relctl/docs/questions_and_answers) section of the documentation.
## Getting Help
If you have questions, concerns, or bug reports, please file an issue in this repository's Issue Tracker.
-## Contributing
+## Community
-If you want to contribute to Awesome CI, please read the [CONTRIBUTING](docs/CONTRIBUTING.md) guide.
+- [Contributing](https://github.com/layer87-labs/.github/blob/main/CONTRIBUTING.md)
+- [Code of Conduct](https://github.com/layer87-labs/.github/blob/main/CODE_OF_CONDUCT.md)
+- [Security Policy](https://github.com/layer87-labs/.github/blob/main/SECURITY.md)
## License
-Awesome CI is licensed under the Apache License, Version 2.0. You can find the license file [here](LICENSE).
+relctl is licensed under the Apache License, Version 2.0. You can find the license file [here](LICENSE).
## Credits
diff --git a/cmd/awesome-ci/main.go b/cmd/awesome-ci/main.go
deleted file mode 100644
index 8c81029..0000000
--- a/cmd/awesome-ci/main.go
+++ /dev/null
@@ -1,9 +0,0 @@
-package main
-
-import (
- awesomeci "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci"
-)
-
-func main() {
- awesomeci.AwesomeCI()
-}
diff --git a/cmd/relctl/main.go b/cmd/relctl/main.go
new file mode 100644
index 0000000..f18d55b
--- /dev/null
+++ b/cmd/relctl/main.go
@@ -0,0 +1,7 @@
+package main
+
+import "github.com/layer87-labs/relctl/internal/app/relctl"
+
+func main() {
+ relctl.Execute()
+}
diff --git a/docs/docs/01-overview.md b/docs/docs/01-overview.md
index 16176d9..967ecca 100644
--- a/docs/docs/01-overview.md
+++ b/docs/docs/01-overview.md
@@ -2,7 +2,7 @@
title: Overview
---
-# Welcome to the Awesome CI!
+# Welcome to the relctl!
This project is the smart connection between your pipeline for continuous integration and your version management like GitHub. The focus is on the release process, followed by the version management of SemVer. The required version number is created with the correct naming of the branch prefix.
@@ -14,7 +14,7 @@ If you have any questions, you can find a form on the issue board. First, make s
:::info
-Every command that you can use is in the sidebar at cli. All options are listed there or use the `awesome-ci help` command.
+Every command that you can use is in the sidebar at cli. All options are listed there or use the `relctl help` command.
:::
:::tip
@@ -41,8 +41,8 @@ The tailing `/` behind the alias is **always** requiered!
see also [override specialties](#override-specialties)
:::
-
-
+
+
:::tip
Awesoce CI automatically detects your environment. Supported are **Jenkins Pipelines** and **GitHub Actions**
@@ -52,10 +52,10 @@ Awesoce CI automatically detects your environment. Supported are **Jenkins Pipel
To set some attributes during developement you can comment a pullrequest.
-| command | description |
-| ----------------------------- | ------------------------------------------------------------- |
-| `aci_patch_level: major` | create a major version bump |
-| `aci_version_override: 2.1.0` | set the version to 2.1.0 using only semver compatible syntax! |
+| command | description |
+| -------------------------------- | ------------------------------------------------------------- |
+| `relctl_patch_level: major` | create a major version bump |
+| `relctl_version_override: 2.1.0` | set the version to 2.1.0 using only semver compatible syntax! |
## Requiered and optional environment variables
diff --git a/docs/docs/02-CLI/connect/check/index.md b/docs/docs/02-CLI/connect/check/index.md
index 99b00e0..b415392 100755
--- a/docs/docs/02-CLI/connect/check/index.md
+++ b/docs/docs/02-CLI/connect/check/index.md
@@ -3,7 +3,7 @@
verify current connection is working
```
-awesome-ci connect check [flags]
+relctl connect check [flags]
```
## Options
@@ -20,6 +20,6 @@ awesome-ci connect check [flags]
## SEE ALSO
-* **awesome-ci connect** - Create an encrypted .rc file to persistently connect to GitHub or GitHub Enterprise
+* **relctl connect** - Create an encrypted .rc file to persistently connect to GitHub or GitHub Enterprise
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/connect/github/index.md b/docs/docs/02-CLI/connect/github/index.md
index 49322f4..066bb72 100755
--- a/docs/docs/02-CLI/connect/github/index.md
+++ b/docs/docs/02-CLI/connect/github/index.md
@@ -3,7 +3,7 @@
connect initial to a GitHub or GitHub Enterprise
```
-awesome-ci connect github [flags]
+relctl connect github [flags]
```
## Options
@@ -23,6 +23,6 @@ awesome-ci connect github [flags]
## SEE ALSO
-* **awesome-ci connect** - Create an encrypted .rc file to persistently connect to GitHub or GitHub Enterprise
+* **relctl connect** - Create an encrypted .rc file to persistently connect to GitHub or GitHub Enterprise
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/connect/index.md b/docs/docs/02-CLI/connect/index.md
index d0ff2e5..c5576f8 100755
--- a/docs/docs/02-CLI/connect/index.md
+++ b/docs/docs/02-CLI/connect/index.md
@@ -10,7 +10,7 @@ soon you can also connect to GitLab (not yet implemented)
useful without a runner or in an jenkins pipeline
```
-awesome-ci connect [flags]
+relctl connect [flags]
```
## Options
@@ -27,9 +27,9 @@ awesome-ci connect [flags]
## SEE ALSO
-* **awesome-ci** - Awesome CI make your release tagging easy
-* **awesome-ci connect check** - verify current connection is working
-* **awesome-ci connect github** - connect initial to a GitHub or GitHub Enterprise
-* **awesome-ci connect remove** - remove all persisted connection files and secrets
+* **relctl** - relctl make your release tagging easy
+* **relctl connect check** - verify current connection is working
+* **relctl connect github** - connect initial to a GitHub or GitHub Enterprise
+* **relctl connect remove** - remove all persisted connection files and secrets
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/connect/remove/index.md b/docs/docs/02-CLI/connect/remove/index.md
index 47c3965..0a0db1f 100755
--- a/docs/docs/02-CLI/connect/remove/index.md
+++ b/docs/docs/02-CLI/connect/remove/index.md
@@ -3,7 +3,7 @@
remove all persisted connection files and secrets
```
-awesome-ci connect remove [flags]
+relctl connect remove [flags]
```
## Options
@@ -20,6 +20,6 @@ awesome-ci connect remove [flags]
## SEE ALSO
-* **awesome-ci connect** - Create an encrypted .rc file to persistently connect to GitHub or GitHub Enterprise
+* **relctl connect** - Create an encrypted .rc file to persistently connect to GitHub or GitHub Enterprise
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/index.md b/docs/docs/02-CLI/index.md
index 271bc20..637191d 100755
--- a/docs/docs/02-CLI/index.md
+++ b/docs/docs/02-CLI/index.md
@@ -1,30 +1,30 @@
# CLI
-Awesome CI make your release tagging easy
+relctl make your release tagging easy
## Synopsis
-Awesome CI make your release tagging easy
+relctl make your release tagging easy
Comatible with CI pipelines like Jenkins and GitHub
-Find more information and examples at: https://github.com/fullstack-devops/awesome-ci
+Find more information and examples at: https://github.com/layer87-labs/relctl
```
-awesome-ci [flags]
+relctl [flags]
```
## Options
```
- -h, --help help for awesome-ci
+ -h, --help help for relctl
-v, --verbose verbose output
```
## SEE ALSO
-* **awesome-ci connect** - Create an encrypted .rc file to persistently connect to GitHub or GitHub Enterprise
-* **awesome-ci parse** - inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features
-* **awesome-ci pr** - Manage GitHub pull requests
-* **awesome-ci release** - Manage GitHub releases with ease
-* **awesome-ci transform** - transform given input to json
+* **relctl connect** - Create an encrypted .rc file to persistently connect to GitHub or GitHub Enterprise
+* **relctl parse** - inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features
+* **relctl pr** - Manage GitHub pull requests
+* **relctl release** - Manage GitHub releases with ease
+* **relctl transform** - transform given input to json
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/parse/index.md b/docs/docs/02-CLI/parse/index.md
index 42eecc2..95856e9 100755
--- a/docs/docs/02-CLI/parse/index.md
+++ b/docs/docs/02-CLI/parse/index.md
@@ -3,7 +3,7 @@
inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features
```
-awesome-ci parse [flags]
+relctl parse [flags]
```
## Options
@@ -20,9 +20,9 @@ awesome-ci parse [flags]
## SEE ALSO
-* **awesome-ci** - Awesome CI make your release tagging easy
-* **awesome-ci parse json** - parse a json string or file
-* **awesome-ci parse version** - Validate the given version string against semver syntax
-* **awesome-ci parse yaml** - parse a yaml string or file
+* **relctl** - relctl make your release tagging easy
+* **relctl parse json** - parse a json string or file
+* **relctl parse version** - Validate the given version string against semver syntax
+* **relctl parse yaml** - parse a yaml string or file
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/parse/json/index.md b/docs/docs/02-CLI/parse/json/index.md
index c2f58c2..1054ac1 100755
--- a/docs/docs/02-CLI/parse/json/index.md
+++ b/docs/docs/02-CLI/parse/json/index.md
@@ -3,7 +3,7 @@
parse a json string or file
```
-awesome-ci parse json [flags]
+relctl parse json [flags]
```
## Options
@@ -23,6 +23,6 @@ awesome-ci parse json [flags]
## SEE ALSO
-* **awesome-ci parse** - inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features
+* **relctl parse** - inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/parse/version/index.md b/docs/docs/02-CLI/parse/version/index.md
index fe00f5b..58a72dd 100755
--- a/docs/docs/02-CLI/parse/version/index.md
+++ b/docs/docs/02-CLI/parse/version/index.md
@@ -3,7 +3,7 @@
Validate the given version string against semver syntax
```
-awesome-ci parse version [flags]
+relctl parse version [flags]
```
## Options
@@ -20,6 +20,6 @@ awesome-ci parse version [flags]
## SEE ALSO
-* **awesome-ci parse** - inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features
+* **relctl parse** - inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/parse/yaml/index.md b/docs/docs/02-CLI/parse/yaml/index.md
index 657d324..87f2f74 100755
--- a/docs/docs/02-CLI/parse/yaml/index.md
+++ b/docs/docs/02-CLI/parse/yaml/index.md
@@ -3,7 +3,7 @@
parse a yaml string or file
```
-awesome-ci parse yaml [flags]
+relctl parse yaml [flags]
```
## Options
@@ -23,6 +23,6 @@ awesome-ci parse yaml [flags]
## SEE ALSO
-* **awesome-ci parse** - inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features
+* **relctl parse** - inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/pr/index.md b/docs/docs/02-CLI/pr/index.md
index 11fd6ba..45fd700 100755
--- a/docs/docs/02-CLI/pr/index.md
+++ b/docs/docs/02-CLI/pr/index.md
@@ -7,7 +7,7 @@ Manage GitHub pull requests
The pull request command is used to manage GitHub pull requests. It provides subcommands to get pull request info, allowing you to get all infos about a pull request in GitHub.
```
-awesome-ci pr [flags]
+relctl pr [flags]
```
## Options
@@ -24,7 +24,7 @@ awesome-ci pr [flags]
## SEE ALSO
-* **awesome-ci** - Awesome CI make your release tagging easy
-* **awesome-ci pr info** - Get pull request info
+* **relctl** - relctl make your release tagging easy
+* **relctl pr info** - Get pull request info
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/pr/info/index.md b/docs/docs/02-CLI/pr/info/index.md
index 03c414d..e866fa6 100755
--- a/docs/docs/02-CLI/pr/info/index.md
+++ b/docs/docs/02-CLI/pr/info/index.md
@@ -3,7 +3,7 @@
Get pull request info
```
-awesome-ci pr info [flags]
+relctl pr info [flags]
```
## Options
@@ -22,6 +22,6 @@ awesome-ci pr info [flags]
## SEE ALSO
-* **awesome-ci pr** - Manage GitHub pull requests
+* **relctl pr** - Manage GitHub pull requests
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/release/create/index.md b/docs/docs/02-CLI/release/create/index.md
index 1ff34c9..b624e33 100755
--- a/docs/docs/02-CLI/release/create/index.md
+++ b/docs/docs/02-CLI/release/create/index.md
@@ -3,7 +3,7 @@
Create a new GitHub release
```
-awesome-ci release create [flags]
+relctl release create [flags]
```
## Options
@@ -29,6 +29,6 @@ awesome-ci release create [flags]
## SEE ALSO
-* **awesome-ci release** - Manage GitHub releases with ease
+* **relctl release** - Manage GitHub releases with ease
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/release/index.md b/docs/docs/02-CLI/release/index.md
index 7f455a5..6724843 100755
--- a/docs/docs/02-CLI/release/index.md
+++ b/docs/docs/02-CLI/release/index.md
@@ -7,7 +7,7 @@ Manage GitHub releases with ease
The release command is used to manage GitHub releases. It provides subcommands to create and publish releases, allowing you to automate the release process and integrate it into CI/CD workflows. Use this command to streamline the release tagging and deployment of your software projects.
```
-awesome-ci release [flags]
+relctl release [flags]
```
## Options
@@ -33,8 +33,8 @@ awesome-ci release [flags]
## SEE ALSO
-* **awesome-ci** - Awesome CI make your release tagging easy
-* **awesome-ci release create** - Create a new GitHub release
-* **awesome-ci release publish** - Publish a recently created GitHub release
+* **relctl** - relctl make your release tagging easy
+* **relctl release create** - Create a new GitHub release
+* **relctl release publish** - Publish a recently created GitHub release
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/release/publish/index.md b/docs/docs/02-CLI/release/publish/index.md
index 8906514..a2d84f0 100755
--- a/docs/docs/02-CLI/release/publish/index.md
+++ b/docs/docs/02-CLI/release/publish/index.md
@@ -23,29 +23,29 @@ Example of using the release publish command
To publish a release with a specific release ID and assets, use the following command:
- awesome-ci release publish --release-id 12345 \
- --asset "file=out/awesome-ci_v1.0.0_amd64" \
- --asset "file=out/awesome-ci_v1.0.0_arm64"
- awesome-ci release publish --release-id 12345 --asset "file=out/awesome-ci_v1.0.0_amd64" --asset "file=out/awesome-ci_v1.0.0_arm64"
+ relctl release publish --release-id 12345 \
+ --asset "file=out/relctl_v1.0.0_amd64" \
+ --asset "file=out/relctl_v1.0.0_arm64"
+ relctl release publish --release-id 12345 --asset "file=out/relctl_v1.0.0_amd64" --asset "file=out/relctl_v1.0.0_arm64"
-If the release ID is not provided, the command will look for the 'ACI_RELEASE_ID' environment variable:
+If the release ID is not provided, the command will look for the 'RELCTL_RELEASE_ID' environment variable:
- export ACI_RELEASE_ID=12345
- awesome-ci release publish \
- --asset "file=out/awesome-ci_v1.0.0_amd64" \
- --asset "file=out/awesome-ci_v1.0.0_arm64"
- export ACI_RELEASE_ID=12345
- awesome-ci release publish --asset "file=out/awesome-ci_v1.0.0_amd64" --asset "file=out/awesome-ci_v1.0.0_arm64"
+ export RELCTL_RELEASE_ID=12345
+ relctl release publish \
+ --asset "file=out/relctl_v1.0.0_amd64" \
+ --asset "file=out/relctl_v1.0.0_arm64"
+ export RELCTL_RELEASE_ID=12345
+ relctl release publish --asset "file=out/relctl_v1.0.0_amd64" --asset "file=out/relctl_v1.0.0_arm64"
You can also publish a release with a directory as a zip asset:
- awesome-ci release publish --release-id 12345 \
+ relctl release publish --release-id 12345 \
--asset "zip=out/myfiles"
The assets should be specified as local file paths to be uploaded to the GitHub release.
```
-awesome-ci release publish [flags]
+relctl release publish [flags]
```
## Options
@@ -53,7 +53,7 @@ awesome-ci release publish [flags]
```
-a, --asset stringArray add an asset to the release, can be specified multiple times.
-h, --help help for publish
- --release-id int publish an early defined release (also looking for env ACI_RELEASE_ID)
+ --release-id int publish an early defined release (also looking for env RELCTL_RELEASE_ID)
```
## Options inherited from parent commands
@@ -73,6 +73,6 @@ awesome-ci release publish [flags]
## SEE ALSO
-* **awesome-ci release** - Manage GitHub releases with ease
+* **relctl release** - Manage GitHub releases with ease
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/transform/group-by/index.md b/docs/docs/02-CLI/transform/group-by/index.md
index 5267e3f..2ab6c9a 100755
--- a/docs/docs/02-CLI/transform/group-by/index.md
+++ b/docs/docs/02-CLI/transform/group-by/index.md
@@ -3,13 +3,13 @@
group string array by prefix to json
```
-awesome-ci transform group-by [flags]
+relctl transform group-by [flags]
```
## Examples
```
-awesome-ci tf group-by -p 3 --sub-prefix 4 st1_infrastructure-base st2_ubi9-openjdk-11 st2_ubi9-openjdk-17
+relctl tf group-by -p 3 --sub-prefix 4 st1_infrastructure-base st2_ubi9-openjdk-11 st2_ubi9-openjdk-17
produces: {"st1":["infrastructure-base"],"st2":["ubi9-openjdk-11","ubi9-openjdk-17"]}
```
@@ -29,6 +29,6 @@ awesome-ci tf group-by -p 3 --sub-prefix 4 st1_infrastructure-base st2_ubi9-ope
## SEE ALSO
-* **awesome-ci transform** - transform given input to json
+* **relctl transform** - transform given input to json
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/02-CLI/transform/index.md b/docs/docs/02-CLI/transform/index.md
index abae032..57f1d67 100755
--- a/docs/docs/02-CLI/transform/index.md
+++ b/docs/docs/02-CLI/transform/index.md
@@ -3,7 +3,7 @@
transform given input to json
```
-awesome-ci transform [flags]
+relctl transform [flags]
```
## Options
@@ -20,7 +20,7 @@ awesome-ci transform [flags]
## SEE ALSO
-* **awesome-ci** - Awesome CI make your release tagging easy
-* **awesome-ci transform group-by** - group string array by prefix to json
+* **relctl** - relctl make your release tagging easy
+* **relctl transform group-by** - group string array by prefix to json
-##### Auto generated on 18-Mar-2025
+##### Auto generated on 11-May-2026
diff --git a/docs/docs/03-examples/github-actions.md b/docs/docs/03-examples/github-actions.md
index 7909d41..ed37240 100644
--- a/docs/docs/03-examples/github-actions.md
+++ b/docs/docs/03-examples/github-actions.md
@@ -6,7 +6,7 @@ title: GitHub Actions
### Build a Release
-This is an example from th awesome-ci project you can find the original workflow [here](https://github.com/fullstack-devops/awesome-ci/blob/main/.github/workflows/Release.yaml).
+This is an example from th relctl project you can find the original workflow [here](https://github.com/layer87-labs/relctl/blob/main/.github/workflows/Release.yaml).
```yaml title="release.yaml"
name: Publish Release
@@ -20,17 +20,17 @@ jobs:
create_release:
runs-on: ubuntu-latest
outputs:
- release-id: ${{ steps.tag.outputs.ACI_RELEASE_ID }}
- version: ${{ steps.tag.outputs.ACI_NEXT_VERSION }}
+ release-id: ${{ steps.tag.outputs.RELCTL_RELEASE_ID }}
+ version: ${{ steps.tag.outputs.RELCTL_NEXT_VERSION }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- - name: Setup awesome-ci
- uses: fullstack-devops/awesome-ci-action@main
+ - name: Setup relctl
+ uses: layer87-labs/relctl-action@main
- name: create release
id: tag
- run: awesome-ci release create --merge-sha ${{ github.sha }}
+ run: relctl release create --merge-sha ${{ github.sha }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -60,9 +60,9 @@ jobs:
cache-name: cache-outputs-modules
with:
path: out/
- key: awesome-ci-${{ github.sha }}-${{ hashFiles('out/awesome-ci*') }}
+ key: relctl-${{ github.sha }}-${{ hashFiles('out/relctl*') }}
restore-keys: |
- awesome-ci-${{ github.sha }}
+ relctl-${{ github.sha }}
publish_release:
runs-on: ubuntu-latest
@@ -70,8 +70,8 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4
- - name: Setup awesome-ci
- uses: fullstack-devops/awesome-ci-action@main
+ - name: Setup relctl
+ uses: layer87-labs/relctl-action@main
- name: get cached build outputs
uses: actions/cache@v3
@@ -79,15 +79,15 @@ jobs:
cache-name: cache-outputs-modules
with:
path: out/
- key: awesome-ci-${{ github.sha }}
+ key: relctl-${{ github.sha }}
- name: Publish Release
- run: awesome-ci release publish --release-id "$ACI_RELEASE_ID" --asset "file=out/$ARTIFACT1" --asset "file=out/$ARTIFACT2"
+ run: relctl release publish --release-id "$RELCTL_RELEASE_ID" --asset "file=out/$ARTIFACT1" --asset "file=out/$ARTIFACT2"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- ACI_RELEASE_ID: ${{ needs.create_release.outputs.release-id }}
- ARTIFACT1: awesome-ci_${{ needs.create_release.outputs.version }}_amd64
- ARTIFACT2: awesome-ci_${{ needs.create_release.outputs.version }}_arm64
+ RELCTL_RELEASE_ID: ${{ needs.create_release.outputs.release-id }}
+ ARTIFACT1: relctl_${{ needs.create_release.outputs.version }}_amd64
+ ARTIFACT2: relctl_${{ needs.create_release.outputs.version }}_arm64
```
You need more examples? Please open an issue!
diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts
index 49f155e..a8b266c 100644
--- a/docs/docusaurus.config.ts
+++ b/docs/docusaurus.config.ts
@@ -9,10 +9,10 @@ const config: Config = {
},
tagline: "Fullstack applications and DevOps solutions",
favicon: "https://avatars.githubusercontent.com/u/97617148?s=200&v=4",
- url: "https://fullstack-devops.github.io",
- baseUrl: "/awesome-ci",
- organizationName: "fullstack-devops",
- projectName: "awesome-ci",
+ url: "https://layer87-labs.github.io",
+ baseUrl: "/relctl",
+ organizationName: "layer87-labs",
+ projectName: "relctl",
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
i18n: {
@@ -26,7 +26,7 @@ const config: Config = {
{
docs: {
sidebarPath: require.resolve("./sidebars.js"),
- editUrl: "https://github.com/fullstack-devops/awesome-ci/tree/main/",
+ editUrl: "https://github.com/layer87-labs/relctl/tree/main/",
},
theme: {
customCss: require.resolve("./src/css/custom.css"),
@@ -38,12 +38,12 @@ const config: Config = {
plugins: [require.resolve("docusaurus-lunr-search")],
themeConfig: {
- image: "https://fullstack-devops.github.io/img/full-logo.png",
+ image: "https://layer87-labs.github.io/img/full-logo.png",
navbar: {
title: "Awesome CI",
logo: {
alt: "Awesome CI Logo",
- src: "https://fullstack-devops.github.io/img/logo.png",
+ src: "https://layer87-labs.github.io/img/logo.png",
},
items: [
{
@@ -57,7 +57,7 @@ const config: Config = {
position: "right",
},
{
- href: "https://github.com/fullstack-devops/awesome-ci",
+ href: "https://github.com/layer87-labs/relctl",
label: "GitHub",
position: "right",
},
@@ -89,7 +89,7 @@ const config: Config = {
items: [
{
label: "GitHub",
- href: "https://github.com/fullstack-devops/awesome-ci",
+ href: "https://github.com/layer87-labs/relctl",
},
],
},
diff --git a/docs/src/components/HomepageFeatures/index.tsx b/docs/src/components/HomepageFeatures/index.tsx
index fea8b22..6d49c8d 100644
--- a/docs/src/components/HomepageFeatures/index.tsx
+++ b/docs/src/components/HomepageFeatures/index.tsx
@@ -14,7 +14,7 @@ const FeatureList: FeatureItem[] = [
Svg: require('@site/static/img/pablo-arroyo-_SEbdtH4ZLM-unsplash.svg').default,
description: (
<>
- Awesome-CI was designed from the ground up to be easily installed and
+ relctl was designed from the ground up to be easily installed and
used to get your versioning up and running quickly.
>
),
diff --git a/docs/static/img/release-process.drawio.svg b/docs/static/img/release-process.drawio.svg
index 55a1546..af58907 100644
--- a/docs/static/img/release-process.drawio.svg
+++ b/docs/static/img/release-process.drawio.svg
@@ -321,13 +321,13 @@
*
- continuous integration which is extended by the tool awesome-ci
+ continuous integration which is extended by the tool relctl
- *continuous integration which is extended by the tool awesome-ci
+ *continuous integration which is extended by the tool relctl
diff --git a/go.mod b/go.mod
index e5355a0..e579d4d 100644
--- a/go.mod
+++ b/go.mod
@@ -1,51 +1,53 @@
-module github.com/fullstack-devops/awesome-ci
+module github.com/layer87-labs/relctl
-go 1.24.1
+go 1.26.3
require (
github.com/coreos/go-semver v0.3.1
github.com/ghodss/yaml v1.0.0
- github.com/go-git/go-git/v5 v5.14.0
- github.com/google/go-github/v70 v70.0.0
- github.com/itchyny/gojq v0.12.17
- github.com/spf13/cobra v1.9.1
- github.com/stretchr/testify v1.10.0
- golang.org/x/oauth2 v0.28.0
+ github.com/go-git/go-git/v5 v5.19.0
+ github.com/google/go-github/v86 v86.0.0
+ github.com/itchyny/gojq v0.12.19
+ github.com/spf13/cobra v1.10.2
+ github.com/stretchr/testify v1.11.1
+ golang.org/x/oauth2 v0.36.0
gopkg.in/yaml.v2 v2.4.0
)
require (
- dario.cat/mergo v1.0.1 // indirect
- github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect
- github.com/cyphar/filepath-securejoin v0.4.1 // indirect
+ dario.cat/mergo v1.0.2 // indirect
+ github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
+ github.com/cyphar/filepath-securejoin v0.6.1 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
- github.com/itchyny/timefmt-go v0.1.6 // indirect
+ github.com/itchyny/timefmt-go v0.1.8 // indirect
+ github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
- github.com/spf13/pflag v1.0.6 // indirect
+ github.com/spf13/pflag v1.0.10 // indirect
+ go.yaml.in/yaml/v3 v3.0.4 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
require (
- github.com/Masterminds/semver/v3 v3.3.1
+ github.com/Masterminds/semver/v3 v3.5.0
github.com/Microsoft/go-winio v0.6.2 // indirect
- github.com/ProtonMail/go-crypto v1.1.6 // indirect
- github.com/cloudflare/circl v1.6.0 // indirect
+ github.com/ProtonMail/go-crypto v1.4.1 // indirect
+ github.com/cloudflare/circl v1.6.3 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
- github.com/go-git/go-billy/v5 v5.6.2 // indirect
- github.com/google/go-querystring v1.1.0 // indirect
+ github.com/go-git/go-billy/v5 v5.9.0 // indirect
+ github.com/google/go-querystring v1.2.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
- github.com/kevinburke/ssh_config v1.2.0 // indirect
- github.com/pjbgf/sha1cd v0.3.2 // indirect
- github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
- github.com/sirupsen/logrus v1.9.3
- github.com/skeema/knownhosts v1.3.1 // indirect
+ github.com/kevinburke/ssh_config v1.6.0 // indirect
+ github.com/pjbgf/sha1cd v0.6.0 // indirect
+ github.com/sergi/go-diff v1.4.0 // indirect
+ github.com/sirupsen/logrus v1.9.4
+ github.com/skeema/knownhosts v1.3.2 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
- golang.org/x/crypto v0.36.0 // indirect
- golang.org/x/net v0.37.0 // indirect
- golang.org/x/sys v0.31.0 // indirect
+ golang.org/x/crypto v0.51.0 // indirect
+ golang.org/x/net v0.54.0 // indirect
+ golang.org/x/sys v0.44.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
)
diff --git a/go.sum b/go.sum
index d1dbe87..cea7be3 100644
--- a/go.sum
+++ b/go.sum
@@ -1,24 +1,25 @@
-dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
-dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
-github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4=
-github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
+dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
+dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
+github.com/Masterminds/semver/v3 v3.5.0 h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAwZ/2OOE=
+github.com/Masterminds/semver/v3 v3.5.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
-github.com/ProtonMail/go-crypto v1.1.6 h1:ZcV+Ropw6Qn0AX9brlQLAUXfqLBc7Bl+f/DmNxpLfdw=
-github.com/ProtonMail/go-crypto v1.1.6/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
+github.com/ProtonMail/go-crypto v1.4.1 h1:9RfcZHqEQUvP8RzecWEUafnZVtEvrBVL9BiF67IQOfM=
+github.com/ProtonMail/go-crypto v1.4.1/go.mod h1:e1OaTyu5SYVrO9gKOEhTc+5UcXtTUa+P3uLudwcgPqo=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
-github.com/cloudflare/circl v1.6.0 h1:cr5JKic4HI+LkINy2lg3W2jF8sHCVTBncJr5gIIq7qk=
-github.com/cloudflare/circl v1.6.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
+github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8=
+github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4=
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
-github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
-github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
-github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
+github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=
+github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
+github.com/cyphar/filepath-securejoin v0.6.1 h1:5CeZ1jPXEiYt3+Z6zqprSAgSWiggmpVyciv8syjIpVE=
+github.com/cyphar/filepath-securejoin v0.6.1/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -32,31 +33,33 @@ github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
-github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM=
-github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU=
+github.com/go-git/go-billy/v5 v5.9.0 h1:jItGXszUDRtR/AlferWPTMN4j38BQ88XnXKbilmmBPA=
+github.com/go-git/go-billy/v5 v5.9.0/go.mod h1:jCnQMLj9eUgGU7+ludSTYoZL/GGmii14RxKFj7ROgHw=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
-github.com/go-git/go-git/v5 v5.14.0 h1:/MD3lCrGjCen5WfEAzKg00MJJffKhC8gzS80ycmCi60=
-github.com/go-git/go-git/v5 v5.14.0/go.mod h1:Z5Xhoia5PcWA3NF8vRLURn9E5FRhSl7dGj9ItW3Wk5k=
+github.com/go-git/go-git/v5 v5.19.0 h1:+WkVUQZSy/F1Gb13udrMKjIM2PrzsNfDKFSfo5tkMtc=
+github.com/go-git/go-git/v5 v5.19.0/go.mod h1:Pb1v0c7/g8aGQJwx9Us09W85yGoyvSwuhEGMH7zjDKQ=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
-github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
-github.com/google/go-github/v70 v70.0.0 h1:/tqCp5KPrcvqCc7vIvYyFYTiCGrYvaWoYMGHSQbo55o=
-github.com/google/go-github/v70 v70.0.0/go.mod h1:xBUZgo8MI3lUL/hwxl3hlceJW1U8MVnXP3zUyI+rhQY=
-github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
-github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
+github.com/google/go-github/v86 v86.0.0 h1:S/6aANJhwRm8EQmGKVML3j41yq0h2BsTP8FnDkO7kcA=
+github.com/google/go-github/v86 v86.0.0/go.mod h1:zKv1l4SwDXNFMGByi2FWkq71KwSXqj/eQRZuqtmcot8=
+github.com/google/go-querystring v1.2.0 h1:yhqkPbu2/OH+V9BfpCVPZkNmUXhb2gBxJArfhIxNtP0=
+github.com/google/go-querystring v1.2.0/go.mod h1:8IFJqpSRITyJ8QhQ13bmbeMBDfmeEJZD5A0egEOmkqU=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
-github.com/itchyny/gojq v0.12.17 h1:8av8eGduDb5+rvEdaOO+zQUjA04MS0m3Ps8HiD+fceg=
-github.com/itchyny/gojq v0.12.17/go.mod h1:WBrEMkgAfAGO1LUcGOckBl5O726KPp+OlkKug0I/FEY=
-github.com/itchyny/timefmt-go v0.1.6 h1:ia3s54iciXDdzWzwaVKXZPbiXzxxnv1SPGFfM/myJ5Q=
-github.com/itchyny/timefmt-go v0.1.6/go.mod h1:RRDZYC5s9ErkjQvTvvU7keJjxUYzIISJGxm9/mAERQg=
+github.com/itchyny/gojq v0.12.19 h1:ttXA0XCLEMoaLOz5lSeFOZ6u6Q3QxmG46vfgI4O0DEs=
+github.com/itchyny/gojq v0.12.19/go.mod h1:5galtVPDywX8SPSOrqjGxkBeDhSxEW1gSxoy7tn1iZY=
+github.com/itchyny/timefmt-go v0.1.8 h1:1YEo1JvfXeAHKdjelbYr/uCuhkybaHCeTkH8Bo791OI=
+github.com/itchyny/timefmt-go v0.1.8/go.mod h1:5E46Q+zj7vbTgWY8o5YkMeYb4I6GeWLFnetPy5oBrAI=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
-github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
-github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
+github.com/kevinburke/ssh_config v1.6.0 h1:J1FBfmuVosPHf5GRdltRLhPJtJpTlMdKTBjRgTaQBFY=
+github.com/kevinburke/ssh_config v1.6.0/go.mod h1:q2RIzfka+BXARoNexmF9gkxEX7DmvbW9P4hIVx2Kg4M=
+github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
+github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -66,8 +69,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
-github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
-github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
+github.com/pjbgf/sha1cd v0.6.0 h1:3WJ8Wz8gvDz29quX1OcEmkAlUg9diU4GxJHqs0/XiwU=
+github.com/pjbgf/sha1cd v0.6.0/go.mod h1:lhpGlyHLpQZoxMv8HcgXvZEhcGs0PG/vsZnEJ7H0iCM=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -76,51 +79,52 @@ github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0t
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
-github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
+github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
+github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
-github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
-github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
-github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8=
-github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY=
-github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
-github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
-github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
-github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w=
+github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g=
+github.com/skeema/knownhosts v1.3.2 h1:EDL9mgf4NzwMXCTfaxSD/o/a5fxDw/xL9nkU28JjdBg=
+github.com/skeema/knownhosts v1.3.2/go.mod h1:bEg3iQAuw+jyiw+484wwFJoKSLwcfd7fqRy+N0QTiow=
+github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
+github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
+github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
+github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
-github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
+go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
+go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
-golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
-golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
-golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
+golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI=
+golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8=
+golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM=
+golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
-golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
-golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc=
-golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
+golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w=
+golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ=
+golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs=
+golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
-golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ=
+golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
-golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
+golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
+golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
-golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
+golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
+golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
@@ -130,6 +134,5 @@ gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRN
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/internal/app/awesome-ci/ces/detect.go b/internal/app/relctl/ces/detect.go
similarity index 76%
rename from internal/app/awesome-ci/ces/detect.go
rename to internal/app/relctl/ces/detect.go
index 94ef026..d7aae17 100644
--- a/internal/app/awesome-ci/ces/detect.go
+++ b/internal/app/relctl/ces/detect.go
@@ -3,11 +3,11 @@ package ces
import (
"os"
- githubrunner "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/ces/github_runner"
- gitlabrunner "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/ces/gitlab_runner"
- jenkinspipeline "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/ces/jenkins_pipeline"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/models"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/rcpersist"
+ githubrunner "github.com/layer87-labs/relctl/internal/app/relctl/ces/github_runner"
+ gitlabrunner "github.com/layer87-labs/relctl/internal/app/relctl/ces/gitlab_runner"
+ jenkinspipeline "github.com/layer87-labs/relctl/internal/app/relctl/ces/jenkins_pipeline"
+ "github.com/layer87-labs/relctl/internal/pkg/models"
+ "github.com/layer87-labs/relctl/internal/pkg/rcpersist"
log "github.com/sirupsen/logrus"
)
@@ -76,7 +76,7 @@ func DetectCes() (cesType CES,
Type: rcpersist.CESTypeLoMa,
EnvFile: envFile,
}
- log.Warnln(`no CI detected please use "awesome-ci connect [scm-portal]" to connect!`)
+ log.Warnln(`no CI detected please use "relctl connect [scm-portal]" to connect!`)
return
}
diff --git a/internal/app/awesome-ci/ces/envs.go b/internal/app/relctl/ces/envs.go
similarity index 93%
rename from internal/app/awesome-ci/ces/envs.go
rename to internal/app/relctl/ces/envs.go
index a9a2ca4..6c0174e 100644
--- a/internal/app/awesome-ci/ces/envs.go
+++ b/internal/app/relctl/ces/envs.go
@@ -1,7 +1,7 @@
package ces
import (
- "github.com/fullstack-devops/awesome-ci/internal/pkg/envvars"
+ "github.com/layer87-labs/relctl/internal/pkg/envvars"
log "github.com/sirupsen/logrus"
)
diff --git a/internal/app/awesome-ci/ces/github_runner/runner.go b/internal/app/relctl/ces/github_runner/runner.go
similarity index 91%
rename from internal/app/awesome-ci/ces/github_runner/runner.go
rename to internal/app/relctl/ces/github_runner/runner.go
index 54a3e97..7ff9ce7 100644
--- a/internal/app/awesome-ci/ces/github_runner/runner.go
+++ b/internal/app/relctl/ces/github_runner/runner.go
@@ -4,7 +4,7 @@ import (
"fmt"
"os"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/models"
+ "github.com/layer87-labs/relctl/internal/pkg/models"
)
func DetectGitHubActionsRunner() (connects *models.ConnectCredentials, err error) {
diff --git a/internal/app/awesome-ci/ces/gitlab_runner/runner.go b/internal/app/relctl/ces/gitlab_runner/runner.go
similarity index 90%
rename from internal/app/awesome-ci/ces/gitlab_runner/runner.go
rename to internal/app/relctl/ces/gitlab_runner/runner.go
index d19ad25..a194cd3 100644
--- a/internal/app/awesome-ci/ces/gitlab_runner/runner.go
+++ b/internal/app/relctl/ces/gitlab_runner/runner.go
@@ -4,7 +4,7 @@ import (
"fmt"
"os"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/models"
+ "github.com/layer87-labs/relctl/internal/pkg/models"
)
func DetectGitLabActionsRunner() (connects *models.ConnectCredentials, err error) {
diff --git a/internal/app/awesome-ci/ces/jenkins_pipeline/pipeline.go b/internal/app/relctl/ces/jenkins_pipeline/pipeline.go
similarity index 91%
rename from internal/app/awesome-ci/ces/jenkins_pipeline/pipeline.go
rename to internal/app/relctl/ces/jenkins_pipeline/pipeline.go
index 1e6390a..4a18a98 100644
--- a/internal/app/awesome-ci/ces/jenkins_pipeline/pipeline.go
+++ b/internal/app/relctl/ces/jenkins_pipeline/pipeline.go
@@ -4,7 +4,7 @@ import (
"fmt"
"os"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/models"
+ "github.com/layer87-labs/relctl/internal/pkg/models"
)
func DetectJenkinsPipeline() (connects *models.ConnectCredentials, err error) {
diff --git a/internal/app/awesome-ci/ces/models.go b/internal/app/relctl/ces/models.go
similarity index 72%
rename from internal/app/awesome-ci/ces/models.go
rename to internal/app/relctl/ces/models.go
index a19a78f..bab643a 100644
--- a/internal/app/awesome-ci/ces/models.go
+++ b/internal/app/relctl/ces/models.go
@@ -1,6 +1,6 @@
package ces
-import "github.com/fullstack-devops/awesome-ci/internal/pkg/rcpersist"
+import "github.com/layer87-labs/relctl/internal/pkg/rcpersist"
type CES struct {
Type rcpersist.CESType // required
diff --git a/internal/app/awesome-ci/cmd/connect/connect.go b/internal/app/relctl/cmd/connect/connect.go
similarity index 92%
rename from internal/app/awesome-ci/cmd/connect/connect.go
rename to internal/app/relctl/cmd/connect/connect.go
index f49ea7b..e3e066b 100644
--- a/internal/app/awesome-ci/cmd/connect/connect.go
+++ b/internal/app/relctl/cmd/connect/connect.go
@@ -1,8 +1,8 @@
package connect
import (
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/connect"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/rcpersist"
+ "github.com/layer87-labs/relctl/internal/app/relctl/connect"
+ "github.com/layer87-labs/relctl/internal/pkg/rcpersist"
"github.com/spf13/cobra"
)
diff --git a/internal/app/awesome-ci/cmd/parse/parse.go b/internal/app/relctl/cmd/parse/parse.go
similarity index 93%
rename from internal/app/awesome-ci/cmd/parse/parse.go
rename to internal/app/relctl/cmd/parse/parse.go
index 19978cf..2b95e9f 100644
--- a/internal/app/awesome-ci/cmd/parse/parse.go
+++ b/internal/app/relctl/cmd/parse/parse.go
@@ -1,8 +1,8 @@
package parse
import (
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/parse"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/parsejy"
+ "github.com/layer87-labs/relctl/internal/app/relctl/parse"
+ "github.com/layer87-labs/relctl/internal/pkg/parsejy"
"github.com/spf13/cobra"
)
diff --git a/internal/app/awesome-ci/cmd/pullrequest/pullrequest.go b/internal/app/relctl/cmd/pullrequest/pullrequest.go
similarity index 93%
rename from internal/app/awesome-ci/cmd/pullrequest/pullrequest.go
rename to internal/app/relctl/cmd/pullrequest/pullrequest.go
index e9d08e6..fef24e4 100644
--- a/internal/app/awesome-ci/cmd/pullrequest/pullrequest.go
+++ b/internal/app/relctl/cmd/pullrequest/pullrequest.go
@@ -1,7 +1,7 @@
package pullrequest
import (
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/service"
+ "github.com/layer87-labs/relctl/internal/app/relctl/service"
"github.com/spf13/cobra"
)
diff --git a/internal/app/awesome-ci/cmd/release/release.go b/internal/app/relctl/cmd/release/release.go
similarity index 79%
rename from internal/app/awesome-ci/cmd/release/release.go
rename to internal/app/relctl/cmd/release/release.go
index ab01361..c639033 100644
--- a/internal/app/awesome-ci/cmd/release/release.go
+++ b/internal/app/relctl/cmd/release/release.go
@@ -4,7 +4,7 @@ import (
"os"
"strconv"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/service"
+ "github.com/layer87-labs/relctl/internal/app/relctl/service"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
@@ -55,31 +55,31 @@ Example of using the release publish command
To publish a release with a specific release ID and assets, use the following command:
- awesome-ci release publish --release-id 12345 \
- --asset "file=out/awesome-ci_v1.0.0_amd64" \
- --asset "file=out/awesome-ci_v1.0.0_arm64"
- awesome-ci release publish --release-id 12345 --asset "file=out/awesome-ci_v1.0.0_amd64" --asset "file=out/awesome-ci_v1.0.0_arm64"
+ relctl release publish --release-id 12345 \
+ --asset "file=out/relctl_v1.0.0_amd64" \
+ --asset "file=out/relctl_v1.0.0_arm64"
+ relctl release publish --release-id 12345 --asset "file=out/relctl_v1.0.0_amd64" --asset "file=out/relctl_v1.0.0_arm64"
-If the release ID is not provided, the command will look for the 'ACI_RELEASE_ID' environment variable:
+If the release ID is not provided, the command will look for the 'RELCTL_RELEASE_ID' environment variable:
- export ACI_RELEASE_ID=12345
- awesome-ci release publish \
- --asset "file=out/awesome-ci_v1.0.0_amd64" \
- --asset "file=out/awesome-ci_v1.0.0_arm64"
- export ACI_RELEASE_ID=12345
- awesome-ci release publish --asset "file=out/awesome-ci_v1.0.0_amd64" --asset "file=out/awesome-ci_v1.0.0_arm64"
+ export RELCTL_RELEASE_ID=12345
+ relctl release publish \
+ --asset "file=out/relctl_v1.0.0_amd64" \
+ --asset "file=out/relctl_v1.0.0_arm64"
+ export RELCTL_RELEASE_ID=12345
+ relctl release publish --asset "file=out/relctl_v1.0.0_amd64" --asset "file=out/relctl_v1.0.0_arm64"
You can also publish a release with a directory as a zip asset:
- awesome-ci release publish --release-id 12345 \
+ relctl release publish --release-id 12345 \
--asset "zip=out/myfiles"
The assets should be specified as local file paths to be uploaded to the GitHub release.`,
Run: func(cmd *cobra.Command, args []string) {
if releaseID == 0 {
- log.Traceln("looking of env variable 'ACI_RELEASE_ID' since flag is not set")
- releaseIDStr, releaseIDBool := os.LookupEnv("ACI_RELEASE_ID")
+ log.Traceln("looking of env variable 'RELCTL_RELEASE_ID' since flag is not set")
+ releaseIDStr, releaseIDBool := os.LookupEnv("RELCTL_RELEASE_ID")
if releaseIDBool {
releaseIDTmp, err := strconv.ParseInt(releaseIDStr, 10, 64)
if err != nil {
@@ -113,6 +113,6 @@ func init() {
Cmd.PersistentFlags().StringVarP(&releaseArgs.PatchLevel, "patch-level", "l", "", "predefine patch level of version to Update")
// exclusive Flags
- publishCmd.Flags().Int64VarP(&releaseID, "release-id", "", 0, "publish an early defined release (also looking for env ACI_RELEASE_ID)")
+ publishCmd.Flags().Int64VarP(&releaseID, "release-id", "", 0, "publish an early defined release (also looking for env RELCTL_RELEASE_ID)")
publishCmd.Flags().StringArrayVarP(&assets, "asset", "a", []string{}, "add an asset to the release, can be specified multiple times.")
}
diff --git a/internal/app/awesome-ci/cmd/root.go b/internal/app/relctl/cmd/root.go
similarity index 57%
rename from internal/app/awesome-ci/cmd/root.go
rename to internal/app/relctl/cmd/root.go
index f70869f..87e32d7 100644
--- a/internal/app/awesome-ci/cmd/root.go
+++ b/internal/app/relctl/cmd/root.go
@@ -4,12 +4,12 @@ import (
"fmt"
"os"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/cmd/connect"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/cmd/parse"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/cmd/pullrequest"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/cmd/release"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/cmd/transform"
- "github.com/fullstack-devops/awesome-ci/internal/app/build"
+ "github.com/layer87-labs/relctl/internal/app/relctl/cmd/connect"
+ "github.com/layer87-labs/relctl/internal/app/relctl/cmd/parse"
+ "github.com/layer87-labs/relctl/internal/app/relctl/cmd/pullrequest"
+ "github.com/layer87-labs/relctl/internal/app/relctl/cmd/release"
+ "github.com/layer87-labs/relctl/internal/app/relctl/cmd/transform"
+ "github.com/layer87-labs/relctl/internal/app/build"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
@@ -18,12 +18,12 @@ import (
var Verbose bool
var RootCmd = &cobra.Command{
- Use: "awesome-ci",
+ Use: "relctl",
Version: fmt.Sprintf("%s (%s)-(%s)", build.Version, build.CommitHash, build.BuildDate),
- Short: "Awesome CI make your release tagging easy",
- Long: `Awesome CI make your release tagging easy
+ Short: "relctl make your release tagging easy",
+ Long: `relctl make your release tagging easy
Comatible with CI pipelines like Jenkins and GitHub
-Find more information and examples at: https://github.com/fullstack-devops/awesome-ci`,
+Find more information and examples at: https://github.com/layer87-labs/relctl`,
Run: func(cmd *cobra.Command, args []string) {
cmd.Help()
},
diff --git a/internal/app/awesome-ci/cmd/root_test.go b/internal/app/relctl/cmd/root_test.go
similarity index 80%
rename from internal/app/awesome-ci/cmd/root_test.go
rename to internal/app/relctl/cmd/root_test.go
index a9130c1..3101639 100644
--- a/internal/app/awesome-ci/cmd/root_test.go
+++ b/internal/app/relctl/cmd/root_test.go
@@ -6,8 +6,8 @@ import (
"path/filepath"
"testing"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/cmd"
- cobradocs "github.com/fullstack-devops/awesome-ci/internal/pkg/cobra-docs"
+ "github.com/layer87-labs/relctl/internal/app/relctl/cmd"
+ cobradocs "github.com/layer87-labs/relctl/internal/pkg/cobra-docs"
)
var docsPath = filepath.Join("docs", "docs", "02-CLI")
diff --git a/internal/app/awesome-ci/cmd/transform/transform.go b/internal/app/relctl/cmd/transform/transform.go
similarity index 79%
rename from internal/app/awesome-ci/cmd/transform/transform.go
rename to internal/app/relctl/cmd/transform/transform.go
index 88e46b4..c1d5c3b 100644
--- a/internal/app/awesome-ci/cmd/transform/transform.go
+++ b/internal/app/relctl/cmd/transform/transform.go
@@ -3,7 +3,7 @@ package transform
import (
"fmt"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/parsejy"
+ "github.com/layer87-labs/relctl/internal/pkg/parsejy"
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
@@ -26,7 +26,7 @@ var Cmd = &cobra.Command{
var groupByCmd = &cobra.Command{
Use: "group-by",
Short: "group string array by prefix to json",
- Example: "awesome-ci tf group-by -p 3 --sub-prefix 4 st1_infrastructure-base st2_ubi9-openjdk-11 st2_ubi9-openjdk-17 \n produces: {\"st1\":[\"infrastructure-base\"],\"st2\":[\"ubi9-openjdk-11\",\"ubi9-openjdk-17\"]}",
+ Example: "relctl tf group-by -p 3 --sub-prefix 4 st1_infrastructure-base st2_ubi9-openjdk-11 st2_ubi9-openjdk-17 \n produces: {\"st1\":[\"infrastructure-base\"],\"st2\":[\"ubi9-openjdk-11\",\"ubi9-openjdk-17\"]}",
Run: func(cmd *cobra.Command, args []string) {
if res, err := parsejy.GroupByPrefix(args, GroupPrefixInt, SubstractString); err != nil {
logrus.Fatalln(err)
diff --git a/internal/app/awesome-ci/connect/connect.go b/internal/app/relctl/connect/connect.go
similarity index 84%
rename from internal/app/awesome-ci/connect/connect.go
rename to internal/app/relctl/connect/connect.go
index 8761e63..cbfc44f 100644
--- a/internal/app/awesome-ci/connect/connect.go
+++ b/internal/app/relctl/connect/connect.go
@@ -1,8 +1,8 @@
package connect
import (
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/scm-portal/github"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/rcpersist"
+ "github.com/layer87-labs/relctl/internal/app/relctl/scm-portal/github"
+ "github.com/layer87-labs/relctl/internal/pkg/rcpersist"
log "github.com/sirupsen/logrus"
)
diff --git a/internal/app/awesome-ci/connect/github.go b/internal/app/relctl/connect/github.go
similarity index 80%
rename from internal/app/awesome-ci/connect/github.go
rename to internal/app/relctl/connect/github.go
index 07e97d5..cbd2fa2 100644
--- a/internal/app/awesome-ci/connect/github.go
+++ b/internal/app/relctl/connect/github.go
@@ -1,8 +1,8 @@
package connect
import (
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/scm-portal/github"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/rcpersist"
+ "github.com/layer87-labs/relctl/internal/app/relctl/scm-portal/github"
+ "github.com/layer87-labs/relctl/internal/pkg/rcpersist"
log "github.com/sirupsen/logrus"
)
diff --git a/internal/app/awesome-ci/connect/models.go b/internal/app/relctl/connect/models.go
similarity index 100%
rename from internal/app/awesome-ci/connect/models.go
rename to internal/app/relctl/connect/models.go
diff --git a/internal/app/awesome-ci/parse/parse.go b/internal/app/relctl/parse/parse.go
similarity index 100%
rename from internal/app/awesome-ci/parse/parse.go
rename to internal/app/relctl/parse/parse.go
diff --git a/internal/app/awesome-ci/awesome-ci.go b/internal/app/relctl/relctl.go
similarity index 76%
rename from internal/app/awesome-ci/awesome-ci.go
rename to internal/app/relctl/relctl.go
index 0ebdbe9..96f01ee 100644
--- a/internal/app/awesome-ci/awesome-ci.go
+++ b/internal/app/relctl/relctl.go
@@ -1,9 +1,9 @@
-package awesomeci
+package relctl
import (
"os"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/cmd"
+ "github.com/layer87-labs/relctl/internal/app/relctl/cmd"
log "github.com/sirupsen/logrus"
)
@@ -18,6 +18,6 @@ func init() {
log.SetLevel(log.InfoLevel)
}
-func AwesomeCI() {
+func Execute() {
cmd.Execute()
}
diff --git a/internal/app/awesome-ci/scm-portal/comment.go b/internal/app/relctl/scm-portal/comment.go
similarity index 77%
rename from internal/app/awesome-ci/scm-portal/comment.go
rename to internal/app/relctl/scm-portal/comment.go
index 599decf..f1cb54a 100644
--- a/internal/app/awesome-ci/scm-portal/comment.go
+++ b/internal/app/relctl/scm-portal/comment.go
@@ -3,7 +3,7 @@ package scmportal
import (
"os"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/scm-portal/github"
+ "github.com/layer87-labs/relctl/internal/app/relctl/scm-portal/github"
)
// CommentHelpToPullRequest comments to a pull or merge request if awesome ci is running in CI mode
@@ -11,7 +11,7 @@ func (lay SCMLayer) CommentHelpToPullRequest(number int) (err error) {
ci, ciPresent := os.LookupEnv("CI")
isCI := ci == "true" && ciPresent
- _, isSilentBool := os.LookupEnv("ACI_SILENT")
+ _, isSilentBool := os.LookupEnv("RELCTL_SILENT")
if isCI && !isSilentBool {
grc := lay.Grc.(*github.GitHubRichClient)
err := grc.CommentHelpToPullRequest(number)
diff --git a/internal/app/awesome-ci/scm-portal/github/issues.go b/internal/app/relctl/scm-portal/github/issues.go
similarity index 85%
rename from internal/app/awesome-ci/scm-portal/github/issues.go
rename to internal/app/relctl/scm-portal/github/issues.go
index 98955cb..deecc66 100644
--- a/internal/app/awesome-ci/scm-portal/github/issues.go
+++ b/internal/app/relctl/scm-portal/github/issues.go
@@ -5,15 +5,15 @@ import (
"regexp"
"strings"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/semver"
+ "github.com/layer87-labs/relctl/internal/pkg/semver"
"github.com/sirupsen/logrus"
- "github.com/google/go-github/v70/github"
+ "github.com/google/go-github/v86/github"
)
var (
direction, sort = "asc", "created"
- detailsOpening = `Possible awesome-ci commands for this Pull Request
`
+ detailsOpening = `Possible relctl commands for this Pull Request
`
// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
semVerRegex = `(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)\.(?P0|[1-9]\d*)(?:-(?P(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$`
@@ -67,14 +67,14 @@ func (ghrc *GitHubRichClient) CommentHelpToPullRequest(number int) (err error) {
| command | description |
| --- | --- |
-| aci_patch_level: major | create a major version bump |
-| aci_version_override: 2.1.0 | set the version to 2.1.0 using only semver compatible syntax! |
+| relctl_patch_level: major | create a major version bump |
+| relctl_version_override: 2.1.0 | set the version to 2.1.0 using only semver compatible syntax! |
Need more help?
-Have a look at [my repo](https://github.com/fullstack-devops/awesome-ci)
+Have a look at [my repo](https://github.com/layer87-labs/relctl)
-This message was created by awesome-ci and can be disabled by the env variable ACI_SILENT=true
+This message was created by relctl and can be disabled by the env variable RELCTL_SILENT=true
`
var prComment *github.IssueComment
@@ -105,7 +105,7 @@ This message was created by awesome-ci and can be disabled by the env variable <
func (ghrc *GitHubRichClient) SearchIssuesForOverrides(prNumber int) (nextVersion *string, patchLevel *semver.PatchLevel, err error) {
var pLevel semver.PatchLevel
- // if an comment exists with aci_patch_level=major, make a major version!
+ // if an comment exists with relctl_patch_level=major, make a major version!
issueComments, err := ghrc.GetIssueComments(prNumber)
if err != nil {
return
@@ -125,8 +125,8 @@ func (ghrc *GitHubRichClient) SearchIssuesForOverrides(prNumber int) (nextVersio
// if isCollaborator {
if true {
- aciVersionOverride := regexp.MustCompile(`^aci_version_override: (` + semVerRegex + `)`)
- aciPatchLevel := regexp.MustCompile(`^aci_patch_level: ([a-zA-Z]+)`)
+ aciVersionOverride := regexp.MustCompile(`^relctl_version_override: (` + semVerRegex + `)`)
+ aciPatchLevel := regexp.MustCompile(`^relctl_patch_level: ([a-zA-Z]+)`)
if aciVersionOverride.MatchString(*comment.Body) {
nextVersion = &aciVersionOverride.FindStringSubmatch(*comment.Body)[1]
diff --git a/internal/app/awesome-ci/scm-portal/github/models.go b/internal/app/relctl/scm-portal/github/models.go
similarity index 70%
rename from internal/app/awesome-ci/scm-portal/github/models.go
rename to internal/app/relctl/scm-portal/github/models.go
index 8745746..ad769a7 100644
--- a/internal/app/awesome-ci/scm-portal/github/models.go
+++ b/internal/app/relctl/scm-portal/github/models.go
@@ -1,6 +1,6 @@
package github
-import "github.com/google/go-github/v70/github"
+import "github.com/google/go-github/v86/github"
type GitHubRichClient struct {
Client *github.Client
diff --git a/internal/app/awesome-ci/scm-portal/github/pullrequest.go b/internal/app/relctl/scm-portal/github/pullrequest.go
similarity index 97%
rename from internal/app/awesome-ci/scm-portal/github/pullrequest.go
rename to internal/app/relctl/scm-portal/github/pullrequest.go
index 045cefe..3ea5089 100644
--- a/internal/app/awesome-ci/scm-portal/github/pullrequest.go
+++ b/internal/app/relctl/scm-portal/github/pullrequest.go
@@ -3,7 +3,7 @@ package github
import (
"fmt"
- "github.com/google/go-github/v70/github"
+ "github.com/google/go-github/v86/github"
"github.com/sirupsen/logrus"
)
diff --git a/internal/app/awesome-ci/scm-portal/github/release.go b/internal/app/relctl/scm-portal/github/release.go
similarity index 97%
rename from internal/app/awesome-ci/scm-portal/github/release.go
rename to internal/app/relctl/scm-portal/github/release.go
index 37f860a..91d689e 100644
--- a/internal/app/awesome-ci/scm-portal/github/release.go
+++ b/internal/app/relctl/scm-portal/github/release.go
@@ -6,11 +6,11 @@ import (
"os"
"time"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/tools"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/uploadasset"
+ "github.com/layer87-labs/relctl/internal/pkg/tools"
+ "github.com/layer87-labs/relctl/internal/pkg/uploadasset"
"github.com/go-git/go-git/v5"
- "github.com/google/go-github/v70/github"
+ "github.com/google/go-github/v86/github"
"github.com/sirupsen/logrus"
)
diff --git a/internal/app/awesome-ci/scm-portal/github/root.go b/internal/app/relctl/scm-portal/github/root.go
similarity index 93%
rename from internal/app/awesome-ci/scm-portal/github/root.go
rename to internal/app/relctl/scm-portal/github/root.go
index 53e8174..1108878 100644
--- a/internal/app/awesome-ci/scm-portal/github/root.go
+++ b/internal/app/relctl/scm-portal/github/root.go
@@ -5,9 +5,9 @@ import (
"fmt"
"strings"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/tools"
+ "github.com/layer87-labs/relctl/internal/pkg/tools"
- "github.com/google/go-github/v70/github"
+ "github.com/google/go-github/v86/github"
"github.com/sirupsen/logrus"
"golang.org/x/oauth2"
)
diff --git a/internal/app/awesome-ci/scm-portal/issues.go b/internal/app/relctl/scm-portal/issues.go
similarity index 68%
rename from internal/app/awesome-ci/scm-portal/issues.go
rename to internal/app/relctl/scm-portal/issues.go
index c9fd3ac..82a36b1 100644
--- a/internal/app/awesome-ci/scm-portal/issues.go
+++ b/internal/app/relctl/scm-portal/issues.go
@@ -1,8 +1,8 @@
package scmportal
import (
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/scm-portal/github"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/semver"
+ "github.com/layer87-labs/relctl/internal/app/relctl/scm-portal/github"
+ "github.com/layer87-labs/relctl/internal/pkg/semver"
)
func (lay SCMLayer) SearchIssuesForOverrides(number int) (nextVersion *string, patchLevel *semver.PatchLevel, err error) {
diff --git a/internal/app/awesome-ci/scm-portal/layer.go b/internal/app/relctl/scm-portal/layer.go
similarity index 68%
rename from internal/app/awesome-ci/scm-portal/layer.go
rename to internal/app/relctl/scm-portal/layer.go
index a43ae0a..95282c8 100644
--- a/internal/app/awesome-ci/scm-portal/layer.go
+++ b/internal/app/relctl/scm-portal/layer.go
@@ -1,9 +1,9 @@
package scmportal
import (
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/ces"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/scm-portal/github"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/rcpersist"
+ "github.com/layer87-labs/relctl/internal/app/relctl/ces"
+ "github.com/layer87-labs/relctl/internal/app/relctl/scm-portal/github"
+ "github.com/layer87-labs/relctl/internal/pkg/rcpersist"
)
func LoadSCMPortalLayer() (scmLayer *SCMLayer, err error) {
diff --git a/internal/app/awesome-ci/scm-portal/models.go b/internal/app/relctl/scm-portal/models.go
similarity index 86%
rename from internal/app/awesome-ci/scm-portal/models.go
rename to internal/app/relctl/scm-portal/models.go
index 75840c5..6c6af6b 100644
--- a/internal/app/awesome-ci/scm-portal/models.go
+++ b/internal/app/relctl/scm-portal/models.go
@@ -3,8 +3,8 @@ package scmportal
import (
"time"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/ces"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/semver"
+ "github.com/layer87-labs/relctl/internal/app/relctl/ces"
+ "github.com/layer87-labs/relctl/internal/pkg/semver"
)
type SCMLayer struct {
diff --git a/internal/app/awesome-ci/scm-portal/prmr_request.go b/internal/app/relctl/scm-portal/prmr_request.go
similarity index 95%
rename from internal/app/awesome-ci/scm-portal/prmr_request.go
rename to internal/app/relctl/scm-portal/prmr_request.go
index e3e596d..c1b620e 100644
--- a/internal/app/awesome-ci/scm-portal/prmr_request.go
+++ b/internal/app/relctl/scm-portal/prmr_request.go
@@ -1,8 +1,8 @@
package scmportal
import (
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/scm-portal/github"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/semver"
+ "github.com/layer87-labs/relctl/internal/app/relctl/scm-portal/github"
+ "github.com/layer87-labs/relctl/internal/pkg/semver"
log "github.com/sirupsen/logrus"
)
diff --git a/internal/app/awesome-ci/scm-portal/release.go b/internal/app/relctl/scm-portal/release.go
similarity index 90%
rename from internal/app/awesome-ci/scm-portal/release.go
rename to internal/app/relctl/scm-portal/release.go
index ab50e66..352dc5b 100644
--- a/internal/app/awesome-ci/scm-portal/release.go
+++ b/internal/app/relctl/scm-portal/release.go
@@ -1,8 +1,8 @@
package scmportal
import (
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/scm-portal/github"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/uploadasset"
+ "github.com/layer87-labs/relctl/internal/app/relctl/scm-portal/github"
+ "github.com/layer87-labs/relctl/internal/pkg/uploadasset"
)
func (lay SCMLayer) GetLatestReleaseVersion() (release *Release, err error) {
diff --git a/internal/app/awesome-ci/service/pullrequest.go b/internal/app/relctl/service/pullrequest.go
similarity index 60%
rename from internal/app/awesome-ci/service/pullrequest.go
rename to internal/app/relctl/service/pullrequest.go
index 5104d75..e02bf1f 100644
--- a/internal/app/awesome-ci/service/pullrequest.go
+++ b/internal/app/relctl/service/pullrequest.go
@@ -4,8 +4,8 @@ import (
"fmt"
"strconv"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/ces"
- scmportal "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/scm-portal"
+ "github.com/layer87-labs/relctl/internal/app/relctl/ces"
+ scmportal "github.com/layer87-labs/relctl/internal/app/relctl/scm-portal"
log "github.com/sirupsen/logrus"
)
@@ -43,17 +43,17 @@ func PrintPRInfos(number int, mergeCommitSha string, formatOut string) {
func prInfosToEnv(scmLayer *scmportal.SCMLayer, prInfos *scmportal.PrMrRequestInfos) error {
var envVars = []ces.KeyValue{
- {Name: "ACI_PR", Value: strconv.Itoa(prInfos.Number)},
- {Name: "ACI_PR_SHA", Value: prInfos.Sha},
- {Name: "ACI_PR_SHA_SHORT", Value: prInfos.ShaShort},
- {Name: "ACI_PR_BRANCH", Value: prInfos.BranchName},
- {Name: "ACI_MERGE_COMMIT_SHA", Value: prInfos.MergeCommitSha},
- {Name: "ACI_OWNER", Value: prInfos.Owner},
- {Name: "ACI_REPO", Value: prInfos.Repo},
- {Name: "ACI_PATCH_LEVEL", Value: string(prInfos.PatchLevel)},
- {Name: "ACI_VERSION", Value: prInfos.NextVersion},
- {Name: "ACI_NEXT_VERSION", Value: prInfos.NextVersion},
- {Name: "ACI_LATEST_VERSION", Value: prInfos.LatestVersion},
+ {Name: "RELCTL_PR", Value: strconv.Itoa(prInfos.Number)},
+ {Name: "RELCTL_PR_SHA", Value: prInfos.Sha},
+ {Name: "RELCTL_PR_SHA_SHORT", Value: prInfos.ShaShort},
+ {Name: "RELCTL_PR_BRANCH", Value: prInfos.BranchName},
+ {Name: "RELCTL_MERGE_COMMIT_SHA", Value: prInfos.MergeCommitSha},
+ {Name: "RELCTL_OWNER", Value: prInfos.Owner},
+ {Name: "RELCTL_REPO", Value: prInfos.Repo},
+ {Name: "RELCTL_PATCH_LEVEL", Value: string(prInfos.PatchLevel)},
+ {Name: "RELCTL_VERSION", Value: prInfos.NextVersion},
+ {Name: "RELCTL_NEXT_VERSION", Value: prInfos.NextVersion},
+ {Name: "RELCTL_LATEST_VERSION", Value: prInfos.LatestVersion},
}
if err := scmLayer.CES.ExportAsEnv(envVars); err != nil {
diff --git a/internal/app/awesome-ci/service/release.go b/internal/app/relctl/service/release.go
similarity index 90%
rename from internal/app/awesome-ci/service/release.go
rename to internal/app/relctl/service/release.go
index 2370fd0..8661d96 100644
--- a/internal/app/awesome-ci/service/release.go
+++ b/internal/app/relctl/service/release.go
@@ -6,11 +6,11 @@ import (
"regexp"
"strconv"
- "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/ces"
- scmportal "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/scm-portal"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/semver"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/tools"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/uploadasset"
+ "github.com/layer87-labs/relctl/internal/app/relctl/ces"
+ scmportal "github.com/layer87-labs/relctl/internal/app/relctl/scm-portal"
+ "github.com/layer87-labs/relctl/internal/pkg/semver"
+ "github.com/layer87-labs/relctl/internal/pkg/tools"
+ "github.com/layer87-labs/relctl/internal/pkg/uploadasset"
log "github.com/sirupsen/logrus"
)
@@ -56,7 +56,7 @@ func ReleaseCreate(args *ReleaseArgs) {
fmt.Printf("Create release successful. ID: %d", createdRelease.ID)
var envVars = []ces.KeyValue{
- {Name: "ACI_RELEASE_ID", Value: fmt.Sprintf("%d", createdRelease.ID)},
+ {Name: "RELCTL_RELEASE_ID", Value: fmt.Sprintf("%d", createdRelease.ID)},
}
if err := scmLayer.CES.ExportAsEnv(envVars); err != nil {
@@ -109,7 +109,7 @@ func ReleasePublish(args *ReleaseArgs, releaseID int64, assetsStr []string) {
/* var envVars []ces.KeyValue
for i, ra := range relAssets {
// export Download URL to env. See: #53
- envVars = append(envVars, ces.KeyValue{Name: fmt.Sprintf("ACI_ARTIFACT_%d_URL", i+1), Value: *ra.BrowserDownloadURL})
+ envVars = append(envVars, ces.KeyValue{Name: fmt.Sprintf("RELCTL_ARTIFACT_%d_URL", i+1), Value: *ra.BrowserDownloadURL})
}
if len(envVars) > 0 {
diff --git a/internal/pkg/parsejy/parse_test.go b/internal/pkg/parsejy/parse_test.go
index 3c2f0b5..b53ee25 100644
--- a/internal/pkg/parsejy/parse_test.go
+++ b/internal/pkg/parsejy/parse_test.go
@@ -4,7 +4,7 @@ import (
"bytes"
"testing"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/parsejy"
+ "github.com/layer87-labs/relctl/internal/pkg/parsejy"
)
func TestParse(t *testing.T) {
diff --git a/internal/pkg/rcpersist/rc_file.go b/internal/pkg/rcpersist/rc_file.go
index 7afc4b4..b18f3ad 100644
--- a/internal/pkg/rcpersist/rc_file.go
+++ b/internal/pkg/rcpersist/rc_file.go
@@ -4,7 +4,7 @@ import (
"fmt"
"os"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/tools"
+ "github.com/layer87-labs/relctl/internal/pkg/tools"
log "github.com/sirupsen/logrus"
"gopkg.in/yaml.v2"
diff --git a/internal/pkg/rcpersist/util.go b/internal/pkg/rcpersist/util.go
index 8a3bf19..5ebdd51 100644
--- a/internal/pkg/rcpersist/util.go
+++ b/internal/pkg/rcpersist/util.go
@@ -4,7 +4,7 @@ import (
"bufio"
"os"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/tools"
+ "github.com/layer87-labs/relctl/internal/pkg/tools"
)
func checkGitIgnore() (err error) {
diff --git a/internal/pkg/semver/semver_test.go b/internal/pkg/semver/semver_test.go
index 683e97f..9bc2e7b 100644
--- a/internal/pkg/semver/semver_test.go
+++ b/internal/pkg/semver/semver_test.go
@@ -3,7 +3,7 @@ package semver_test
import (
"testing"
- "github.com/fullstack-devops/awesome-ci/internal/pkg/semver"
+ "github.com/layer87-labs/relctl/internal/pkg/semver"
"github.com/stretchr/testify/require"
)
diff --git a/internal/pkg/uploadasset/asset.go b/internal/pkg/uploadasset/asset.go
index 3fa575c..6818788 100644
--- a/internal/pkg/uploadasset/asset.go
+++ b/internal/pkg/uploadasset/asset.go
@@ -57,7 +57,7 @@ func GetAsset(assetLocation string) (asset UploadAsset, err error) {
}
func createZipFile(name string) (asset UploadAsset, err error) {
- tmpFile, err := os.CreateTemp("awesome-ci", "upload-asset-*")
+ tmpFile, err := os.CreateTemp("relctl", "upload-asset-*")
if err != nil {
return UploadAsset{}, err
}
@@ -102,7 +102,7 @@ func createZipFile(name string) (asset UploadAsset, err error) {
}
func createTgzFile(name string) (asset UploadAsset, err error) {
- tmpFile, err := os.CreateTemp("awesome-ci", "upload-asset-*")
+ tmpFile, err := os.CreateTemp("relctl", "upload-asset-*")
if err != nil {
return UploadAsset{}, err
}
diff --git a/scripts/release-template.md b/scripts/release-template.md
index bea74c5..82bd899 100644
--- a/scripts/release-template.md
+++ b/scripts/release-template.md
@@ -1,5 +1,5 @@
-## Awesome-CI
+## relctl
This project is still in the **beta** phase.
-But don't be shy and use this tool in advance. If you find bugs or have improvements, please feel free to open an [issue](https://github.com/fullstack-devops/awesome-ci/issues/new/choose) :rocket:
+But don't be shy and use this tool in advance. If you find bugs or have improvements, please feel free to open an [issue](https://github.com/layer87-labs/relctl/issues/new/choose) :rocket:
diff --git a/tests/testdata/release.md b/tests/testdata/release.md
index 91e5f20..1c96a02 100644
--- a/tests/testdata/release.md
+++ b/tests/testdata/release.md
@@ -1,5 +1,5 @@
-## Awesome-CI
+## relctl
This is a great readme to appear as the body of the release.
-The great thing about it is that the asset section is self-generated by awesome-ci. However, only if an asset is also uploaded :rocket:
\ No newline at end of file
+The great thing about it is that the asset section is self-generated by relctl. However, only if an asset is also uploaded :rocket:
\ No newline at end of file
From 50ed6d36df97a6356460d6eab2cadc5f55eadba7 Mon Sep 17 00:00:00 2001
From: Eike Haller <58111764+eksrha@users.noreply.github.com>
Date: Mon, 11 May 2026 21:49:01 +0200
Subject: [PATCH 2/2] fix: resolve CI failures and consolidate audit
- fix errcheck: handle return values of cmd.Help(), MarkFlagRequired(), MarkFlagFilename(), CloseEnvFile(), ParseFile(), Parse(), ForEach(), os.Truncate(), UpdateCreds()
- fix ineffassign: remove dead assignments in IncreaseVersion(), ParsePatchLevelFormBranch(), envvars.Set()
- fix trivy-action: use @v0.36.0 (v0 floating tag does not exist)
- remove gitleaks job: requires paid org license
- consolidate lint+test into single audit job using make audit
- add golangci-lint to make audit target
---
.github/workflows/ci.yaml | 47 +++----------------
Makefile | 1 +
internal/app/relctl/ces/envs.go | 5 +-
internal/app/relctl/cmd/connect/connect.go | 6 +--
internal/app/relctl/cmd/parse/parse.go | 18 +++----
.../app/relctl/cmd/pullrequest/pullrequest.go | 2 +-
internal/app/relctl/cmd/release/release.go | 2 +-
internal/app/relctl/cmd/root.go | 4 +-
.../app/relctl/cmd/transform/transform.go | 4 +-
internal/app/relctl/connect/github.go | 4 +-
internal/pkg/envvars/handler.go | 8 +---
internal/pkg/rcpersist/rc_file.go | 2 +-
internal/pkg/semver/semver.go | 4 --
internal/pkg/tools/tools.go | 4 +-
14 files changed, 37 insertions(+), 74 deletions(-)
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 97ed116..09749f8 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -51,10 +51,10 @@ jobs:
run: make ci/build
# ──────────────────────────────────────────────────────────────────────────────
- # Unit tests + coverage
+ # Audit (vet, staticcheck, govulncheck, lint, tests)
# ──────────────────────────────────────────────────────────────────────────────
- test:
- name: Tests
+ audit:
+ name: Audit
runs-on: ubuntu-latest
needs: [generate-infos]
steps:
@@ -65,8 +65,8 @@ jobs:
go-version-file: go.mod
cache: true
- - name: Run tests with coverage
- run: make test/cover
+ - name: Run audit
+ run: make audit
- name: Upload coverage report
uses: actions/upload-artifact@v7
@@ -107,25 +107,6 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # ──────────────────────────────────────────────────────────────────────────────
- # Lint
- # ──────────────────────────────────────────────────────────────────────────────
- lint:
- name: golangci-lint
- runs-on: ubuntu-latest
- needs: [generate-infos]
- steps:
- - uses: actions/checkout@v6
-
- - uses: actions/setup-go@v6
- with:
- go-version-file: go.mod
- cache: false
-
- - uses: golangci/golangci-lint-action@v9
- with:
- version: latest
-
# ──────────────────────────────────────────────────────────────────────────────
# CodeQL – static security analysis
# ──────────────────────────────────────────────────────────────────────────────
@@ -151,22 +132,6 @@ jobs:
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
- # ──────────────────────────────────────────────────────────────────────────────
- # Gitleaks – secret scanning
- # ──────────────────────────────────────────────────────────────────────────────
- gitleaks:
- name: Gitleaks Secret Scan
- runs-on: ubuntu-latest
- needs: [generate-infos]
- steps:
- - uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - uses: gitleaks/gitleaks-action@v2
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
# ──────────────────────────────────────────────────────────────────────────────
# Trivy – filesystem vulnerability scan
# ──────────────────────────────────────────────────────────────────────────────
@@ -178,7 +143,7 @@ jobs:
- uses: actions/checkout@v6
- name: Run Trivy filesystem scan
- uses: aquasecurity/trivy-action@v0
+ uses: aquasecurity/trivy-action@v0.36.0
with:
scan-type: fs
scan-ref: .
diff --git a/Makefile b/Makefile
index 0f8d1b8..059343b 100644
--- a/Makefile
+++ b/Makefile
@@ -33,6 +33,7 @@ audit:
go vet ./...
go run honnef.co/go/tools/cmd/staticcheck@latest -checks=all,-ST1000,-U1000 ./...
go run golang.org/x/vuln/cmd/govulncheck@latest ./...
+ go run github.com/golangci/golangci-lint/cmd/golangci-lint@latest run ./...
go test -race -buildvcs -vet=off ./...
# ==================================================================================== #
diff --git a/internal/app/relctl/ces/envs.go b/internal/app/relctl/ces/envs.go
index 6c0174e..c189163 100644
--- a/internal/app/relctl/ces/envs.go
+++ b/internal/app/relctl/ces/envs.go
@@ -39,7 +39,10 @@ func (ces CES) ExportAsEnv(envVars []KeyValue) (err error) {
for _, ev := range envVars {
envFile.Set(ev.Name, ev.Value)
}
- envFile.CloseEnvFile(ces.EnvFile)
+ if err := envFile.CloseEnvFile(ces.EnvFile); err != nil {
+ log.Warnln(err)
+ return err
+ }
}
return
diff --git a/internal/app/relctl/cmd/connect/connect.go b/internal/app/relctl/cmd/connect/connect.go
index e3e066b..c6e4dcb 100644
--- a/internal/app/relctl/cmd/connect/connect.go
+++ b/internal/app/relctl/cmd/connect/connect.go
@@ -21,7 +21,7 @@ creates an encrypted .rc file to persistently connect to GitHub
soon you can also connect to GitLab (not yet implemented)
useful without a runner or in an jenkins pipeline`,
Run: func(cmd *cobra.Command, args []string) {
- cmd.Help()
+ _ = cmd.Help()
},
}
@@ -60,8 +60,8 @@ func init() {
githubCmd.Flags().StringVarP(&Repository, "repository", "r", "", "(required) repo eg.: octo-org/octo-repo")
githubCmd.Flags().StringVarP(&Token, "token", "t", "", "(required) plain token eg.: ghp_*****")
- githubCmd.MarkFlagRequired("repository")
- githubCmd.MarkFlagRequired("token")
+ _ = githubCmd.MarkFlagRequired("repository")
+ _ = githubCmd.MarkFlagRequired("token")
// exclusive Flags
}
diff --git a/internal/app/relctl/cmd/parse/parse.go b/internal/app/relctl/cmd/parse/parse.go
index 2b95e9f..658ac3e 100644
--- a/internal/app/relctl/cmd/parse/parse.go
+++ b/internal/app/relctl/cmd/parse/parse.go
@@ -17,7 +17,7 @@ var Cmd = &cobra.Command{
Use: "parse",
Short: "inspect and parse JSON and YAML files to retrieve values, similar to jq with additional features",
Run: func(cmd *cobra.Command, args []string) {
- cmd.Help()
+ _ = cmd.Help()
},
}
@@ -26,9 +26,9 @@ var jsonCmd = &cobra.Command{
Short: "parse a json string or file",
Run: func(cmd *cobra.Command, args []string) {
if File != "" {
- parsejy.ParseFile(Query, File, parsejy.JSONSyntax)
+ _ = parsejy.ParseFile(Query, File, parsejy.JSONSyntax)
} else {
- parsejy.Parse(Query, []byte(String), parsejy.JSONSyntax)
+ _ = parsejy.Parse(Query, []byte(String), parsejy.JSONSyntax)
}
},
}
@@ -38,9 +38,9 @@ var yamlCmd = &cobra.Command{
Short: "parse a yaml string or file",
Run: func(cmd *cobra.Command, args []string) {
if File != "" {
- parsejy.ParseFile(Query, File, parsejy.YamlSyntax)
+ _ = parsejy.ParseFile(Query, File, parsejy.YamlSyntax)
} else {
- parsejy.Parse(Query, []byte(String), parsejy.YamlSyntax)
+ _ = parsejy.Parse(Query, []byte(String), parsejy.YamlSyntax)
}
},
}
@@ -70,12 +70,12 @@ func init() {
yamlCmd.Flags().StringVarP(&Query, "query", "q", "", "(required) query for output")
yamlCmd.Flags().StringVarP(&String, "string", "s", "", "query for output")
- jsonCmd.MarkFlagRequired("query")
+ _ = jsonCmd.MarkFlagRequired("query")
jsonCmd.MarkFlagsMutuallyExclusive("file", "string")
- jsonCmd.MarkFlagFilename("file")
+ _ = jsonCmd.MarkFlagFilename("file")
- yamlCmd.MarkFlagRequired("query")
+ _ = yamlCmd.MarkFlagRequired("query")
yamlCmd.MarkFlagsMutuallyExclusive("file", "string")
- yamlCmd.MarkFlagFilename("file")
+ _ = yamlCmd.MarkFlagFilename("file")
// exclusive Flags
}
diff --git a/internal/app/relctl/cmd/pullrequest/pullrequest.go b/internal/app/relctl/cmd/pullrequest/pullrequest.go
index fef24e4..be3c032 100644
--- a/internal/app/relctl/cmd/pullrequest/pullrequest.go
+++ b/internal/app/relctl/cmd/pullrequest/pullrequest.go
@@ -17,7 +17,7 @@ var Cmd = &cobra.Command{
Short: "Manage GitHub pull requests",
Long: `The pull request command is used to manage GitHub pull requests. It provides subcommands to get pull request info, allowing you to get all infos about a pull request in GitHub.`,
Run: func(cmd *cobra.Command, args []string) {
- cmd.Help()
+ _ = cmd.Help()
},
}
diff --git a/internal/app/relctl/cmd/release/release.go b/internal/app/relctl/cmd/release/release.go
index c639033..7da2e4f 100644
--- a/internal/app/relctl/cmd/release/release.go
+++ b/internal/app/relctl/cmd/release/release.go
@@ -21,7 +21,7 @@ var Cmd = &cobra.Command{
Short: "Manage GitHub releases with ease",
Long: `The release command is used to manage GitHub releases. It provides subcommands to create and publish releases, allowing you to automate the release process and integrate it into CI/CD workflows. Use this command to streamline the release tagging and deployment of your software projects.`,
Run: func(cmd *cobra.Command, args []string) {
- cmd.Help()
+ _ = cmd.Help()
},
}
diff --git a/internal/app/relctl/cmd/root.go b/internal/app/relctl/cmd/root.go
index 87e32d7..2f8f788 100644
--- a/internal/app/relctl/cmd/root.go
+++ b/internal/app/relctl/cmd/root.go
@@ -4,12 +4,12 @@ import (
"fmt"
"os"
+ "github.com/layer87-labs/relctl/internal/app/build"
"github.com/layer87-labs/relctl/internal/app/relctl/cmd/connect"
"github.com/layer87-labs/relctl/internal/app/relctl/cmd/parse"
"github.com/layer87-labs/relctl/internal/app/relctl/cmd/pullrequest"
"github.com/layer87-labs/relctl/internal/app/relctl/cmd/release"
"github.com/layer87-labs/relctl/internal/app/relctl/cmd/transform"
- "github.com/layer87-labs/relctl/internal/app/build"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
@@ -25,7 +25,7 @@ var RootCmd = &cobra.Command{
Comatible with CI pipelines like Jenkins and GitHub
Find more information and examples at: https://github.com/layer87-labs/relctl`,
Run: func(cmd *cobra.Command, args []string) {
- cmd.Help()
+ _ = cmd.Help()
},
}
diff --git a/internal/app/relctl/cmd/transform/transform.go b/internal/app/relctl/cmd/transform/transform.go
index c1d5c3b..1b3e866 100644
--- a/internal/app/relctl/cmd/transform/transform.go
+++ b/internal/app/relctl/cmd/transform/transform.go
@@ -19,7 +19,7 @@ var Cmd = &cobra.Command{
Aliases: []string{"tf"},
Short: "transform given input to json",
Run: func(cmd *cobra.Command, args []string) {
- cmd.Help()
+ _ = cmd.Help()
},
}
@@ -44,6 +44,6 @@ func init() {
groupByCmd.Flags().IntVarP(&GroupPrefixInt, "prefix", "p", 3, "group by prefix until index -- eg.: 'st1_base-image' and int 3, will be grouped by 'st1'")
groupByCmd.Flags().IntVarP(&SubstractString, "sub-prefix", "", 0, "remove prefix until index number -- eg.: 'st1_base-image' and 4 will be 'base-image'")
- groupByCmd.MarkFlagRequired("prefix")
+ _ = groupByCmd.MarkFlagRequired("prefix")
// exclusive Flags
}
diff --git a/internal/app/relctl/connect/github.go b/internal/app/relctl/connect/github.go
index cbd2fa2..93e0756 100644
--- a/internal/app/relctl/connect/github.go
+++ b/internal/app/relctl/connect/github.go
@@ -16,7 +16,9 @@ func UpdateRcFileForGitHub(server string, repo string, token string) {
}
rcFile.UpdateSCMPortalType(rcpersist.SCMPortalTypeGitHub)
- rcFile.UpdateCreds(server, repo, token)
+ if err := rcFile.UpdateCreds(server, repo, token); err != nil {
+ log.Fatalln(err)
+ }
if err := rcFile.Save(); err != nil {
log.Fatalln(err)
diff --git a/internal/pkg/envvars/handler.go b/internal/pkg/envvars/handler.go
index 4ae4b5b..da03ba5 100644
--- a/internal/pkg/envvars/handler.go
+++ b/internal/pkg/envvars/handler.go
@@ -36,7 +36,7 @@ func (envVars *EnvVariables) CloseEnvFile(file string) (err error) {
defer envFile.Close()
- envFile.Truncate(0)
+ _ = envFile.Truncate(0)
wirteEnvs := ""
for _, env := range envVars.Envs {
wirteEnvs = wirteEnvs + fmt.Sprintf("%s\n", env.ToString())
@@ -50,17 +50,13 @@ func (envVars *EnvVariables) CloseEnvFile(file string) (err error) {
}
func (envVars *EnvVariables) Set(name string, value string) {
- var envFound = false
for _, env := range envVars.Envs {
if *env.Name == name {
*env.Value = value
- envFound = true
return
}
}
- if !envFound {
- envVars.Envs = append(envVars.Envs, EnvVariable{Name: &name, Value: &value})
- }
+ envVars.Envs = append(envVars.Envs, EnvVariable{Name: &name, Value: &value})
}
func (envVars *EnvVariables) Get(name string) (envVariable *EnvVariable) {
diff --git a/internal/pkg/rcpersist/rc_file.go b/internal/pkg/rcpersist/rc_file.go
index b18f3ad..2ccd470 100644
--- a/internal/pkg/rcpersist/rc_file.go
+++ b/internal/pkg/rcpersist/rc_file.go
@@ -91,7 +91,7 @@ func (rc *RcFile) UpdateCreds(server string, repo string, token string) error {
func (rc *RcFile) Save() (err error) {
rc.ConnectCreds.TokenPlain = nil
- os.Truncate(rcFileName, 0)
+ _ = os.Truncate(rcFileName, 0)
yamlData, err := yaml.Marshal(rc)
if err != nil {
diff --git a/internal/pkg/semver/semver.go b/internal/pkg/semver/semver.go
index c3cdb00..3e4acf1 100644
--- a/internal/pkg/semver/semver.go
+++ b/internal/pkg/semver/semver.go
@@ -30,8 +30,6 @@ var (
// - incresedVersion: the increased version string.
// - err: an error if the patch level is invalid or if there is an error increasing the version.
func IncreaseVersion(patchLevel PatchLevel, version string) (incresedVersion string, err error) {
- incresedVersion = version
-
semVer, err := semver.NewVersion(version)
if err != nil {
return "", err
@@ -51,8 +49,6 @@ func IncreaseVersion(patchLevel PatchLevel, version string) (incresedVersion str
}
func ParsePatchLevelFormBranch(branchName string) (patchLevel PatchLevel, err error) {
- patchLevel = "bugfix" // default patch level
-
if strings.Index(branchName, "/") > 0 {
return ParsePatchLevel(branchName[:strings.Index(branchName, "/")])
} else {
diff --git a/internal/pkg/tools/tools.go b/internal/pkg/tools/tools.go
index b820550..9641ab0 100644
--- a/internal/pkg/tools/tools.go
+++ b/internal/pkg/tools/tools.go
@@ -54,7 +54,7 @@ func GetGitTagsUpToHead(gitRepo *git.Repository) (tags []*semver.Version, err er
Order: git.LogOrderCommitterTime,
})
- tagIter.ForEach(func(r *object.Commit) error {
+ _ = tagIter.ForEach(func(r *object.Commit) error {
if tagNames, exists := commitToTag[r.Hash.String()]; exists {
@@ -83,7 +83,7 @@ func GetGitTagMaps(gitRepo *git.Repository) (commitToTagMap map[string][]string,
return nil, nil, err
}
- tags.ForEach(func(r *plumbing.Reference) error {
+ _ = tags.ForEach(func(r *plumbing.Reference) error {
tagList, exists := commitToTagMap[r.Hash().String()]