diff --git a/.github/workflows/dependabot-sync.yml b/.github/workflows/dependabot-sync.yml new file mode 100644 index 0000000..ba25983 --- /dev/null +++ b/.github/workflows/dependabot-sync.yml @@ -0,0 +1,51 @@ +name: dependabot-sync +on: + workflow_call: + inputs: + repo_name: + description: The repository name, without the "charmbracelet/" prefix. + required: true + type: string + +permissions: + contents: write + pull-requests: write + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + path: ${{ github.repository_owner }}/${{ inputs.repo_name }} + + - uses: actions/checkout@v4 + with: + repository: ${{ github.repository_owner }}/meta + path: ${{ github.repository_owner }}/meta + + - run: | + cp "${{ github.repository_owner }}/meta/dependabot/workflows/dependabot-sync.yml" "${{ github.repository_owner }}/${{ inputs.repo_name }}/.github/workflows/dependabot-sync.yml" + cp "${{ github.repository_owner }}/meta/dependabot/dependabot.yml" "${{ github.repository_owner }}/${{ inputs.repo_name }}/dependabot.yml" + DEPENDABOT_FILE="${{ github.repository_owner }}/meta/dependabot/dependabot-${{ inputs.repo_name }}.yml" + if [ -f "$DEPENDABOT_FILE" ]; then + cat "$DEPENDABOT_FILE" >> "${{ github.repository_owner }}/${{ inputs.repo_name }}/dependabot.yml" + fi + + - name: Create Pull Request + id: cpr + uses: peter-evans/create-pull-request@v7 + with: + commit-message: "ci: sync dependabot config" + title: "ci: sync dependabot config" + body: | + This is an automated pull request to sync the Dependabot config with the meta repository. + branch: "ci/sync-dependabot-config" + delete-branch: true + path: "${{ github.repository_owner }}/${{ inputs.repo_name }}" + + - name: Check outputs + if: ${{ steps.cpr.outputs.pull-request-number }} + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7c242d2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +dependabot/current diff --git a/dependabot/dependabot-bubbletea.yml b/dependabot/dependabot-bubbletea.yml new file mode 100644 index 0000000..0b5bbac --- /dev/null +++ b/dependabot/dependabot-bubbletea.yml @@ -0,0 +1,26 @@ + + - package-ecosystem: "gomod" + directory: "/examples" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" + + - package-ecosystem: "gomod" + directory: "/tutorials" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" diff --git a/dependabot/dependabot-colorprofile.yml b/dependabot/dependabot-colorprofile.yml new file mode 100644 index 0000000..0b5bbac --- /dev/null +++ b/dependabot/dependabot-colorprofile.yml @@ -0,0 +1,26 @@ + + - package-ecosystem: "gomod" + directory: "/examples" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" + + - package-ecosystem: "gomod" + directory: "/tutorials" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" diff --git a/dependabot/dependabot-huh.yml b/dependabot/dependabot-huh.yml new file mode 100644 index 0000000..7bec00b --- /dev/null +++ b/dependabot/dependabot-huh.yml @@ -0,0 +1,26 @@ + + - package-ecosystem: "gomod" + directory: "/examples" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" + + - package-ecosystem: "gomod" + directory: "/spinner" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" diff --git a/dependabot/dependabot-lipgloss.yml b/dependabot/dependabot-lipgloss.yml new file mode 100644 index 0000000..2d943b1 --- /dev/null +++ b/dependabot/dependabot-lipgloss.yml @@ -0,0 +1,13 @@ + + - package-ecosystem: "gomod" + directory: "/example" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" diff --git a/dependabot/dependabot-soft-serve-action.yml b/dependabot/dependabot-soft-serve-action.yml new file mode 100644 index 0000000..a7c5779 --- /dev/null +++ b/dependabot/dependabot-soft-serve-action.yml @@ -0,0 +1,8 @@ + + - package-ecosystem: npm + directory: / + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" diff --git a/dependabot/dependabot-vhs-action.yml b/dependabot/dependabot-vhs-action.yml new file mode 100644 index 0000000..a7c5779 --- /dev/null +++ b/dependabot/dependabot-vhs-action.yml @@ -0,0 +1,8 @@ + + - package-ecosystem: npm + directory: / + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" diff --git a/dependabot/dependabot-wish.yml b/dependabot/dependabot-wish.yml new file mode 100644 index 0000000..034962b --- /dev/null +++ b/dependabot/dependabot-wish.yml @@ -0,0 +1,13 @@ + + - package-ecosystem: "gomod" + directory: "/examples" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" diff --git a/dependabot/dependabot.yml b/dependabot/dependabot.yml new file mode 100644 index 0000000..cbc9aa4 --- /dev/null +++ b/dependabot/dependabot.yml @@ -0,0 +1,41 @@ +version: 2 + +updates: + - package-ecosystem: "gomod" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "chore" + include: "scope" + + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + time: "05:00" + timezone: "America/New_York" + labels: + - "dependencies" + commit-message: + prefix: "feat" + include: "scope" diff --git a/dependabot/download-current.sh b/dependabot/download-current.sh new file mode 100644 index 0000000..c3fb0c9 --- /dev/null +++ b/dependabot/download-current.sh @@ -0,0 +1,13 @@ +# NOTE(@andreynering): This is just a script to download dependabot.yml from +# many of our repos. I used it to compare the contents to see which of them +# were different from the base template. + +REPOS=$(gh repo list charmbracelet --visibility public --no-archived --limit 1000 --json "name,defaultBranchRef" -t '{{range .}}{{printf "%s %s\n" .name .defaultBranchRef.name}}{{end}}') + +rm -rf dependabot/current +mkdir -p dependabot/current + +while read -r repo branch; do + echo "Downloading $repo | $branch" + curl -s https://raw.githubusercontent.com/charmbracelet/${repo}/refs/heads/${branch}/.github/dependabot.yml > dependabot/current/${repo}.yml +done <<< "$REPOS" diff --git a/dependabot/workflows/dependabot-sync.yml b/dependabot/workflows/dependabot-sync.yml new file mode 100644 index 0000000..e5aa74e --- /dev/null +++ b/dependabot/workflows/dependabot-sync.yml @@ -0,0 +1,15 @@ +name: dependabot-sync +on: + schedule: + - cron: "0 0 * * 0" # every Sunday at midnight + workflow_dispatch: # allows manual triggering + +permissions: + contents: write + pull-requests: write + +jobs: + dependabot-sync: + uses: charmbracelet/meta/.github/workflows/dependabot-sync.yml@main + with: + repo_name: ${{ github.event.repository.name }}