🤖 denopendabot
denopendabot
keeps your Deno projects up-to-date.
Warning
Still under development. Many bugs might remain. Any breaking changes may be introduced on each Feature release.
🪄 Features
Update Deno modules
import { assert } from "https://deno.land/std@0.158.0/testing/asserts.ts";
💡 deno.land/std 0.158.0 => 0.159.0
Denopendabot takes advantage of the core engine of udd, one of the most widely used module update libraries for Deno, which supports many registry domains.
Update GitHub repositories
- uses: denoland/setup-deno@v1
with:
deno-version: v1.26.0 # @denopendabot denoland/deno
💡 denoland/deno v1.26.0 => v1.26.1
Denopendabot update any SemVer related to a GitHub repository, specified by a
comment of @denopendabot {owner}/{repo}
.
Commits and pull requests
- Commits are created for each updated module/repository individually
- Each run of Denopendabot creates only one pull request
💡 Usage
GitHub App (experimental)
Install the App and create a workflow
file to dispatch denopendabot-run
events:
name: Denopendabot
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *" # modify to your convenient time
jobs:
update:
steps:
- name: Run
uses: peter-evans/repository-dispatch@v2
with:
event-type: denopendabot-run
client-payload: '{ "base": "main", "branch": "denopendabot" }' # optional
GitHub Action
Denopendabot needs a GitHub access token authorized to run workflows.
secrets.GITHUB_TOKEN
is used by default and it works fine in most cases.
If you want to update workflow files (./github/workflows/*.yml
), it also needs
a private access token with the workflow
scope. In the examples below, we
assume the token is added in repository secrets as GH_TOKEN
.
Predefined workflow (recommended)
name: Denopendabot
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *" # modify to your convenient time
jobs:
update:
name: Update
runs-on: ubuntu-latest
steps:
- uses: hasundue/denopendabot@0.7.0 # @denopendabot hasundue/denopendabot
with:
user-token: ${{ secrets.GH_TOKEN }}
See action.yml for other options.
Manual configuration
name: Denopendabot
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *" # modify to your convenient time
jobs:
update:
name: Update
runs-on: ubuntu-latest
steps:
- name: Setup Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.26.2 # @denopendabot denoland/deno
- name: Run Denopendabot
run: >
deno run -q --allow-env --allow-net
https://deno.land/x/denopendabot@0.7.0/main.ts
${{ github.repository }}
--token ${{ secrets.GITHUB_TOKEN }}
--user-token ${{ secrets.GH_TOKEN }}