Mirror of
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update GitHub template files

+607 -24
+8
.changeset/README.md
··· 1 + # Changesets 2 + 3 + Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 + with multi-package repos, or single-package repos to help you version and publish your code. You can 5 + find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 + 7 + We have a quick list of common questions to get you started engaging with this project in 8 + [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
+18
.changeset/config.json
··· 1 + { 2 + "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json", 3 + "changelog": [ 4 + "@changesets/changelog-github", 5 + { "repo": "trueberryless-org/release-image-generator" } 6 + ], 7 + "commit": false, 8 + "fixed": [], 9 + "linked": [], 10 + "access": "public", 11 + "baseBranch": "main", 12 + "updateInternalDependencies": "patch", 13 + "ignore": [], 14 + "privatePackages": { 15 + "version": true, 16 + "tag": true 17 + } 18 + }
+34
.github/labeler.yaml
··· 1 + # See https://github.com/actions/labeler/tree/v5 2 + 3 + "🚨 action": 4 + - changed-files: 5 + - any-glob-to-any-file: .github/workflows/** 6 + 7 + "📝 changeset": 8 + - changed-files: 9 + - any-glob-to-any-file: "**/.changeset/**.{md,mdx}" 10 + 11 + "🚧 config": 12 + - changed-files: 13 + - any-glob-to-any-file: "**/*config*.{js,ts,jsx,tsx,mjs,mts,json,yml,yaml,toml,cjs,cts}" 14 + 15 + "✒️ documentation": 16 + - changed-files: 17 + - any-glob-to-any-file: "**/README.md" 18 + 19 + "🌏 i18n": 20 + - changed-files: 21 + - all-globs-to-any-file: ["**/docs/**", "!**/docs/en/**"] 22 + 23 + "🚀 manifest": 24 + - changed-files: 25 + - any-glob-to-any-file: "manifest*/**" 26 + 27 + "📦 package": 28 + - changed-files: 29 + - any-glob-to-any-file: "**/packages/**" 30 + - any-glob-to-any-file: "**/package.json" 31 + 32 + "🏯 styles": 33 + - changed-files: 34 + - any-glob-to-any-file: "**/*.{css,scss,sass,less,styl}"
+170
.github/workflows/deployment.yaml
··· 1 + name: Deployment 2 + 3 + on: 4 + push: 5 + branches: [main] 6 + workflow_dispatch: 7 + 8 + concurrency: 9 + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.head_ref || github.ref }} 10 + cancel-in-progress: true 11 + 12 + env: 13 + REGISTRY: docker.io 14 + IMAGE_OWNER: trueberryless 15 + IMAGE_NAME: release-image-generator 16 + NODE_VERSION: 20 17 + 18 + jobs: 19 + changesets: 20 + name: Changesets 21 + runs-on: ubuntu-latest 22 + outputs: 23 + hasChangesets: ${{ steps.changesets.outputs.hasChangesets }} 24 + permissions: 25 + contents: write 26 + pull-requests: write 27 + steps: 28 + - name: Generate GitHub App token 29 + id: generate_token 30 + uses: tibdex/github-app-token@v2.1.0 31 + with: 32 + app_id: ${{ secrets.BOT_APP_ID }} 33 + private_key: ${{ secrets.BOT_PRIVATE_KEY }} 34 + 35 + - name: Checkout Repo 36 + uses: actions/checkout@v4 37 + 38 + - name: Setup PNPM 39 + uses: pnpm/action-setup@v3 40 + 41 + - name: Setup Node 42 + uses: actions/setup-node@v4 43 + with: 44 + node-version: ${{ env.NODE_VERSION }} 45 + cache: "pnpm" 46 + 47 + - name: Install Dependencies 48 + run: pnpm i 49 + 50 + - name: Create Release Pull Request 51 + id: changesets 52 + uses: changesets/action@v1 53 + with: 54 + commit: "[ci] release" 55 + title: "[ci] release" 56 + env: 57 + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} 58 + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 59 + 60 + image-tag: 61 + name: Image Tag 62 + runs-on: ubuntu-latest 63 + outputs: 64 + IMAGE_TAG: ${{ env.IMAGE_TAG }} 65 + steps: 66 + - name: Check out the repo 67 + uses: actions/checkout@v4 68 + 69 + - name: Read version from package.json 70 + id: get_version 71 + run: | 72 + VERSION=$(jq -r '.version' app/package.json) 73 + echo "IMAGE_TAG=$VERSION" >> $GITHUB_ENV 74 + 75 + deployment: 76 + needs: [changesets, image-tag] 77 + if: > 78 + ( 79 + needs.changesets.outputs.hasChangesets == 'false' && 80 + ( 81 + contains(github.event.head_commit.message, 'deploy') || 82 + contains(github.event.head_commit.message, '[ci] release') 83 + ) 84 + ) || 85 + github.event_name == 'workflow_dispatch' 86 + runs-on: ubuntu-latest 87 + permissions: 88 + contents: write 89 + steps: 90 + - name: Check out the repo 91 + uses: actions/checkout@v4 92 + with: 93 + fetch-depth: 0 94 + 95 + - name: Set up Docker Buildx 96 + uses: docker/setup-buildx-action@v3 97 + 98 + - name: Log in to Docker Hub 99 + uses: docker/login-action@v3 100 + with: 101 + username: ${{ secrets.DOCKER_USERNAME }} 102 + password: ${{ secrets.DOCKER_PASSWORD }} 103 + 104 + - name: Extract metadata (tags, labels) for Docker 105 + id: meta 106 + uses: docker/metadata-action@v5 107 + with: 108 + images: ${{ env.REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }} 109 + 110 + - name: Build and push Docker image 111 + uses: docker/build-push-action@v6 112 + with: 113 + context: ./app 114 + push: true 115 + tags: | 116 + ${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:${{ needs.image-tag.outputs.IMAGE_TAG }} 117 + ${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:latest 118 + labels: ${{ steps.meta.outputs.labels }} 119 + 120 + - name: Update deployment.yaml file 121 + run: | 122 + yq eval '.spec.template.spec.containers[0].image = "${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:${{ needs.image-tag.outputs.IMAGE_TAG }}"' -i manifest/deployment.yaml 123 + 124 + - uses: stefanzweifel/git-auto-commit-action@v4 125 + with: 126 + commit_message: update deployment.json container image (automated) 127 + 128 + release: 129 + name: Release 130 + needs: [image-tag, deployment] 131 + runs-on: ubuntu-latest 132 + permissions: 133 + contents: write 134 + steps: 135 + - name: Check out the repo 136 + uses: actions/checkout@v4 137 + 138 + - id: extract-changelog 139 + uses: sean0x42/markdown-extract@v2.1.0 140 + with: 141 + file: app/CHANGELOG.md 142 + pattern: ${{ needs.image-tag.outputs.IMAGE_TAG }} 143 + 144 + - uses: ncipollo/release-action@v1 145 + id: create_release 146 + with: 147 + tag: ${{ env.IMAGE_NAME }}@${{ needs.image-tag.outputs.IMAGE_TAG }} 148 + makeLatest: true 149 + body: ${{ steps.extract-changelog.outputs.markdown }} 150 + skipIfReleaseExists: true 151 + 152 + - name: Check if release was created 153 + id: check_release 154 + run: | 155 + if [ -z "${{ steps.create_release.outputs.html_url }}" ]; then 156 + echo "RELEASE_SKIPPED=true" >> $GITHUB_ENV 157 + else 158 + echo "RELEASE_SKIPPED=false" >> $GITHUB_ENV 159 + fi 160 + 161 + - name: Discord notification 162 + if: env.RELEASE_SKIPPED == 'false' 163 + env: 164 + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL }} 165 + uses: Ilshidur/action-discord@0.3.2 166 + with: 167 + args: | 168 + # ${{ env.IMAGE_NAME }}@${{ needs.image-tag.outputs.IMAGE_TAG }} 169 + 170 + ${{ steps.extract-changelog.outputs.markdown }}
+37
.github/workflows/format.yaml
··· 1 + name: autofix.ci 2 + on: 3 + pull_request: 4 + push: 5 + branches: [main] 6 + permissions: 7 + contents: read 8 + 9 + jobs: 10 + autofix: 11 + runs-on: ubuntu-latest 12 + steps: 13 + - uses: actions/checkout@v4 14 + 15 + - name: Setup PNPM 16 + uses: pnpm/action-setup@v3 17 + 18 + - name: Setup Node 19 + uses: actions/setup-node@v4 20 + with: 21 + node-version: 20 22 + cache: "pnpm" 23 + 24 + - name: Install Dependencies 25 + run: pnpm i 26 + 27 + - name: Run prettier 28 + run: pnpm exec prettier . --write 29 + 30 + # Optimize all PNGs with https://pngquant.org/ 31 + - run: sudo apt-get update && sudo apt-get install -y pngquant 32 + - name: Run pngquant 33 + run: | 34 + shopt -s globstar 35 + find . -name '*.png' -exec pngquant --ext .png --force 256 {} \; 36 + 37 + - uses: autofix-ci/action@ff86a557419858bb967097bfc916833f5647fa8c
+55
.github/workflows/labeler.yaml
··· 1 + name: "Pull Request Labeler" 2 + on: 3 + - pull_request_target 4 + 5 + jobs: 6 + labeler: 7 + permissions: 8 + contents: read 9 + pull-requests: write 10 + runs-on: ubuntu-latest 11 + steps: 12 + - name: Generate GitHub App token 13 + id: generate_token 14 + uses: tibdex/github-app-token@v2.1.0 15 + with: 16 + app_id: ${{ secrets.BOT_APP_ID }} 17 + private_key: ${{ secrets.BOT_PRIVATE_KEY }} 18 + 19 + - uses: actions/checkout@v4 20 + - name: Ensure labels exist 21 + env: 22 + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} 23 + run: | 24 + gh label delete "bug" --yes || true 25 + gh label delete "documentation" --yes || true 26 + gh label delete "duplicate" --yes || true 27 + gh label delete "enhancement" --yes || true 28 + gh label delete "good first issue" --yes || true 29 + gh label delete "help wanted" --yes || true 30 + gh label delete "invalid" --yes || true 31 + gh label delete "question" --yes || true 32 + gh label delete "wontfix" --yes || true 33 + 34 + gh label create "🚨 action" --description "Changes in GitHub workflows or actions" --color "A75AD5" --force 35 + gh label create "🤖 bot" --description "Automatically generated pull request" --color "0075CA" --force 36 + gh label create "🐛 bug" --description "Something isn't working" --color "D73A4A" --force 37 + gh label create "📝 changeset" --description "Contains changeset files" --color "304EF9" --force 38 + gh label create "🚧 config" --description "Configuration file updates" --color "C0ED4F" --force 39 + gh label create "✒️ documentation" --description "Documentation updates, like README changes" --color "66741D" --force 40 + gh label create "🔁 duplicate" --description "This issue or pull request already exists" --color "008672" --force 41 + gh label create "⏫ enhancement" --description "New feature or request" --color "3C11FD" --force 42 + gh label create "🥇 good first issue" --description "Good for newcomers" --color "7057FF" --force 43 + gh label create "🆘 help wanted" --description "Extra attention is needed" --color "BFD4F2" --force 44 + gh label create "🌏 i18n" --description "Updates to internationalized docs, excluding English" --color "006B75" --force 45 + gh label create "👀 invalid" --description "This doesn't seem right" --color "E4E669" --force 46 + gh label create "🚀 manifest" --description "Manifest-related changes" --color "96D3D7" --force 47 + gh label create "📦 package" --description "Updates in package structure or package.json" --color "F34A37" --force 48 + gh label create "❓ question" --description "Further information is requested" --color "D876E3" --force 49 + gh label create "🏯 styles" --description "Stylesheets or design updates" --color "550F5A" --force 50 + gh label create "🔒 wontfix" --description "This will not be worked on" --color "FFFFFF" --force 51 + 52 + - uses: actions/labeler@v5 53 + with: 54 + configuration-path: .github/labeler.yaml 55 + sync-labels: true
+47
.github/workflows/release.yaml
··· 1 + name: Release 2 + 3 + on: 4 + push: 5 + branches: [main] 6 + 7 + jobs: 8 + release: 9 + name: Release 10 + if: ${{ github.repository_owner == 'trueberryless-org' }} 11 + permissions: 12 + contents: write 13 + pull-requests: write 14 + runs-on: ubuntu-latest 15 + steps: 16 + - name: Generate GitHub App token 17 + id: generate_token 18 + uses: tibdex/github-app-token@v2.1.0 19 + with: 20 + app_id: ${{ secrets.BOT_APP_ID }} 21 + private_key: ${{ secrets.BOT_PRIVATE_KEY }} 22 + 23 + - name: Checkout Repo 24 + uses: actions/checkout@v4 25 + with: 26 + fetch-depth: 0 27 + 28 + - name: Setup PNPM 29 + uses: pnpm/action-setup@v3 30 + 31 + - name: Setup Node 32 + uses: actions/setup-node@v4 33 + with: 34 + node-version: 20 35 + cache: "pnpm" 36 + 37 + - name: Install Dependencies 38 + run: pnpm i 39 + 40 + - name: Create Release Pull Request 41 + uses: changesets/action@v1 42 + with: 43 + version: pnpm run version 44 + commit: "[ci] release" 45 + title: "[ci] release" 46 + env: 47 + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token}}
+43
.github/workflows/welcome-bot.yaml
··· 1 + name: WelcomeBot 2 + 3 + on: 4 + pull_request_target: 5 + branches: [main] 6 + types: [opened] 7 + 8 + permissions: 9 + pull-requests: write 10 + 11 + jobs: 12 + welcome: 13 + name: Welcome First-Time Contributors 14 + runs-on: ubuntu-latest 15 + steps: 16 + - name: Generate GitHub App token 17 + id: generate_token 18 + uses: tibdex/github-app-token@v2.1.0 19 + with: 20 + app_id: ${{ secrets.BOT_APP_ID }} 21 + private_key: ${{ secrets.BOT_PRIVATE_KEY }} 22 + 23 + - uses: actions/checkout@v4 24 + - name: Convert Repository Name to Title Case 25 + id: convert_repo_name 26 + run: | 27 + REPO_NAME="${{ github.event.repository.name }}" 28 + TITLE_CASE_REPO_NAME=$(echo "$REPO_NAME" | sed 's/-/ /g' | awk '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) tolower(substr($i,2))} 1') 29 + echo "title_case_repo_name=$TITLE_CASE_REPO_NAME" >> $GITHUB_ENV 30 + - uses: zephyrproject-rtos/action-first-interaction@7e6446f8439d8b4399169880c36a3a12b5747699 31 + with: 32 + repo-token: ${{ steps.generate_token.outputs.token }} 33 + pr-opened-message: | 34 + Hello! Thank you for opening your **first PR** to ${{ env.title_case_repo_name }}! ✨ 35 + 36 + Here’s what will happen next: 37 + 38 + 1. Our GitHub bots will run to check your changes. 39 + If they spot any issues you will see some error messages on this PR. 40 + Don’t hesitate to ask any questions if you’re not sure what these mean! 41 + 42 + 2. One or more of our maintainers will take a look and may ask you to make changes. 43 + We try to be responsive, but don’t worry if this takes a few days.
+37
.gitignore
··· 1 + *.swp 2 + *.*~ 3 + project.lock.json 4 + .DS_Store 5 + *.pyc 6 + nupkg/ 7 + 8 + # Visual Studio Code 9 + .vscode 10 + 11 + # Rider 12 + .idea 13 + 14 + # User-specific files 15 + *.suo 16 + *.user 17 + *.userosscache 18 + *.sln.docstates 19 + 20 + # Build results 21 + [Dd]ebug/ 22 + [Dd]ebugPublic/ 23 + [Rr]elease/ 24 + [Rr]eleases/ 25 + x64/ 26 + x86/ 27 + build/ 28 + bld/ 29 + [Bb]in/ 30 + [Oo]bj/ 31 + [Oo]ut/ 32 + msbuild.log 33 + msbuild.err 34 + msbuild.wrn 35 + 36 + # Visual Studio 2015 37 + .vs/
+23
Dockerfile
··· 1 + FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base 2 + USER $APP_UID 3 + WORKDIR /app 4 + EXPOSE 8080 5 + EXPOSE 8081 6 + 7 + FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build 8 + ARG BUILD_CONFIGURATION=Release 9 + WORKDIR /src 10 + COPY ["ReleaseImageGenerator/ReleaseImageGenerator.API.csproj", "ReleaseImageGenerator/"] 11 + RUN dotnet restore "ReleaseImageGenerator/ReleaseImageGenerator.API.csproj" 12 + COPY . . 13 + WORKDIR "/src/ReleaseImageGenerator" 14 + RUN dotnet build "ReleaseImageGenerator.API.csproj" -c $BUILD_CONFIGURATION -o /app/build 15 + 16 + FROM build AS publish 17 + ARG BUILD_CONFIGURATION=Release 18 + RUN dotnet publish "ReleaseImageGenerator.API.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false 19 + 20 + FROM base AS final 21 + WORKDIR /app 22 + COPY --from=publish /app/publish . 23 + ENTRYPOINT ["dotnet", "ReleaseImageGenerator.API.dll"]
+21
LICENSE
··· 1 + MIT License 2 + 3 + Copyright (c) 2025-present, trueberryless 4 + 5 + Permission is hereby granted, free of charge, to any person obtaining a copy 6 + of this software and associated documentation files (the "Software"), to deal 7 + in the Software without restriction, including without limitation the rights 8 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 + copies of the Software, and to permit persons to whom the Software is 10 + furnished to do so, subject to the following conditions: 11 + 12 + The above copyright notice and this permission notice shall be included in all 13 + copies or substantial portions of the Software. 14 + 15 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 + SOFTWARE.
+5
README.md
··· 1 + ## License 2 + 3 + Licensed under the MIT license, Copyright © trueberryless. 4 + 5 + See [LICENSE](/LICENSE) for more information.
+10 -24
app/.dockerignore
··· 1 - **/.dockerignore 2 - **/.env 1 + Dockerfile 2 + .dockerignore 3 + **/node_modules/ 3 4 **/.git 4 - **/.gitignore 5 - **/.project 6 - **/.settings 7 - **/.toolstarget 8 - **/.vs 9 - **/.vscode 10 - **/.idea 11 - **/*.*proj.user 12 - **/*.dbmdl 13 - **/*.jfm 14 - **/azds.yaml 15 - **/bin 16 - **/charts 17 - **/docker-compose* 18 - **/Dockerfile* 19 - **/node_modules 20 - **/npm-debug.log 21 - **/obj 22 - **/secrets.dev.yaml 23 - **/values.dev.yaml 24 - LICENSE 25 - README.md 5 + README.md 6 + npm-debug.log 7 + .coverage 8 + .coverage.* 9 + .env 10 + .aws 11 + .next
+3
app/package.json
··· 1 + { 2 + "packageManager": "pnpm@9.6.0" 3 + }
+12
manifest/certificate.yaml
··· 1 + apiVersion: cert-manager.io/v1 2 + kind: Certificate 3 + metadata: 4 + name: release-image-generator 5 + namespace: release-image-generator 6 + spec: 7 + secretName: release-image-generator 8 + issuerRef: 9 + name: acme-issuer 10 + kind: ClusterIssuer 11 + dnsNames: 12 + - "release-image-generator.trueberryless.org"
+21
manifest/deployment.yaml
··· 1 + apiVersion: apps/v1 2 + kind: Deployment 3 + metadata: 4 + name: release-image-generator 5 + namespace: release-image-generator 6 + labels: 7 + app: release-image-generator 8 + spec: 9 + replicas: 3 10 + selector: 11 + matchLabels: 12 + app: release-image-generator 13 + template: 14 + metadata: 15 + labels: 16 + app: release-image-generator 17 + spec: 18 + containers: 19 + - name: release-image-generator 20 + image: "trueberryless/release-image-generator" 21 + imagePullPolicy: Always
+22
manifest/ingress.yaml
··· 1 + apiVersion: networking.k8s.io/v1 2 + kind: Ingress 3 + metadata: 4 + name: release-image-generator 5 + namespace: release-image-generator 6 + spec: 7 + rules: 8 + - host: release-image-generator.trueberryless.org 9 + http: 10 + paths: 11 + - path: / 12 + pathType: Prefix 13 + backend: 14 + service: 15 + name: release-image-generator 16 + port: 17 + number: 80 18 + 19 + tls: 20 + - hosts: 21 + - release-image-generator.trueberryless.org 22 + secretName: release-image-generator
+4
manifest/namespace.yaml
··· 1 + apiVersion: v1 2 + kind: Namespace 3 + metadata: 4 + name: release-image-generator
+13
manifest/service.yaml
··· 1 + apiVersion: v1 2 + kind: Service 3 + metadata: 4 + name: release-image-generator 5 + namespace: release-image-generator 6 + annotations: 7 + cert-manager.io/issuer: acme-issuer 8 + spec: 9 + selector: 10 + app: release-image-generator 11 + ports: 12 + - name: http 13 + port: 80
+21
package.json
··· 1 + { 2 + "name": "release-image-generator-monorepo", 3 + "homepage": "https://github.com/trueberryless-org/release-image-generator", 4 + "bugs": { 5 + "url": "https://github.com/trueberryless-org/release-image-generator/issues" 6 + }, 7 + "repository": { 8 + "type": "git", 9 + "url": "https://github.com/trueberryless-org/release-image-generator.git" 10 + }, 11 + "license": "MIT", 12 + "author": "trueberryless <trueberryless@gmail.com> (https://trueberryless.org)", 13 + "scripts": { 14 + "version": "pnpm changeset version && pnpm i --no-frozen-lockfile" 15 + }, 16 + "devDependencies": { 17 + "@changesets/changelog-github": "^0.5.0", 18 + "@changesets/cli": "^2.27.11" 19 + }, 20 + "packageManager": "pnpm@9.6.0" 21 + }
+3
pnpm-workspace.yaml
··· 1 + packages: 2 + - "app/" 3 + - "packages/**/*"