7 Commits
v13 ... v16

Author SHA1 Message Date
a0c5484d59 feat: accept list of reviewers and assignees
Pass a list of GitHub usernames through to
peter-evans/create-pull-request.

Assignees are specified with the `pr-assignees` property.
Reviewers are specified with the `pr-reviewers` property.

Both properties expect the value to be a list of GitHub usernames,
separated by either commas or newlines.
2023-01-19 07:29:15 -08:00
aa092a7430 README: document using a different Git author / committer 2022-11-28 08:02:01 -08:00
913da8731c Remove stray > 2022-11-28 08:02:01 -08:00
867efeb864 Emails should be in < ... > 2022-11-28 08:02:01 -08:00
5e50e4bcfb Allow to customize git author/committer name+email 2022-11-28 08:02:01 -08:00
0ad9a55048 feat: allow specifying a path to flake.nix within the repository 2022-09-14 07:46:21 -07:00
0ed7fb71ea build(deps): bump cachix/install-nix-action from 16 to 17
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 16 to 17.
- [Release notes](https://github.com/cachix/install-nix-action/releases)
- [Commits](https://github.com/cachix/install-nix-action/compare/v16...v17)

---
updated-dependencies:
- dependency-name: cachix/install-nix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-07 09:08:06 -07:00
5 changed files with 100 additions and 6 deletions

View File

@ -12,6 +12,6 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Install Nix - name: Install Nix
uses: cachix/install-nix-action@v16 uses: cachix/install-nix-action@v17
- name: Shellcheck - name: Shellcheck
run: nix-shell --run 'shellcheck $(find . -type f -name "*.sh" -executable)' run: nix-shell --run 'shellcheck $(find . -type f -name "*.sh" -executable)'

View File

@ -11,7 +11,7 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install Nix - name: Install Nix
uses: cachix/install-nix-action@v16 uses: cachix/install-nix-action@v17
with: with:
extra_nix_config: | extra_nix_config: |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}

View File

@ -122,6 +122,38 @@ jobs:
uses: DeterminateSystems/update-flake-lock@vX uses: DeterminateSystems/update-flake-lock@vX
with: with:
inputs: input1 input2 input3 inputs: input1 input2 input3
path-to-flake-dir: 'nix/' # in this example our flake doesn't sit at the root of the repository, it sits under 'nix/flake.nix'
```
## Example using a different Git user
If you want to change the author and / or committer of the flake.lock update commit, you can tweak the `git-{author,committer}-{name,email}` options:
```yaml
name: update-flake-lock
on:
workflow_dispatch: # allows manual triggering
schedule:
- cron: '0 0 * * 0' # runs weekly on Sunday at 00:00
jobs:
lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Nix
uses: cachix/install-nix-action@v16
with:
extra_nix_config: |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@vX
with:
git-author-name: 'Jane Author'
git-author-email: 'github-actions[bot]@users.noreply.github.com'
git-committer-name: 'John Committer'
git-committer-email: 'github-actions[bot]@users.noreply.github.com'
``` ```
## Running GitHub Actions CI ## Running GitHub Actions CI
@ -237,6 +269,33 @@ However you can customize it, with variable interpolation performed with [Handle
- env.GIT_COMMITTER_EMAIL - env.GIT_COMMITTER_EMAIL
- env.GIT_COMMIT_MESSAGE - env.GIT_COMMIT_MESSAGE
## Add assignees or reviewers
You can assign the PR to or request a review from one or more GitHub users with `pr-assignees` and `pr-reviewers`, respectively.
These properties expect a comma or newline separated list of GitHub usernames:
```yaml
name: update-flake-lock
on:
workflow_dispatch: # allows manual triggering
schedule:
- cron: '0 0 * * 1,4' # Run twice a week
jobs:
lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Nix
uses: cachix/install-nix-action@v16
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@vX
with:
pr-assignees: SomeGitHubUsername
pr-reviewers: SomeOtherGitHubUsername,SomeThirdGitHubUsername
```
## Contributing ## Contributing
Feel free to send a PR or open an issue if you find something functions unexpectedly! Please make sure to test your changes and update any related documentation before submitting your PR. Feel free to send a PR or open an issue if you find something functions unexpectedly! Please make sure to test your changes and update any related documentation before submitting your PR.

View File

@ -17,6 +17,10 @@ inputs:
description: 'The branch of the PR to be created' description: 'The branch of the PR to be created'
required: false required: false
default: "update_flake_lock_action" default: "update_flake_lock_action"
path-to-flake-dir:
description: 'The path of the directory containing `flake.nix` file within your repository. Useful when `flake.nix` cannot reside at the root of your repository.'
required: false
default: ''
pr-title: pr-title:
description: 'The title of the PR to be created' description: 'The title of the PR to be created'
required: false required: false
@ -49,6 +53,30 @@ inputs:
description: 'A comma or newline separated list of labels to set on the Pull Request to be created' description: 'A comma or newline separated list of labels to set on the Pull Request to be created'
required: false required: false
default: '' default: ''
pr-assignees:
description: 'A comma or newline separated list of assignees (GitHub usernames).'
required: false
default: ''
pr-reviewers:
description: 'A comma or newline separated list of reviewers (GitHub usernames) to request a review from.'
required: false
default: ''
git-author-name:
description: 'Author name used for commit. Only used if sign-commits is false.'
required: false
default: 'github-actions[bot]'
git-author-email:
description: 'Author email used for commit. Only used if sign-commits is false.'
required: false
default: 'github-actions[bot]@users.noreply.github.com'
git-committer-name:
description: 'Committer name used for commit. Only used if sign-commits is false.'
required: false
default: 'github-actions[bot]'
git-committer-email:
description: 'Committer email used for commit. Only used if sign-commits is false.'
required: false
default: 'github-actions[bot]@users.noreply.github.com'
sign-commits: sign-commits:
description: 'Set to true if the action should sign the commit with GPG' description: 'Set to true if the action should sign the commit with GPG'
required: false required: false
@ -100,10 +128,10 @@ runs:
if: ${{ inputs.sign-commits != 'true' }} if: ${{ inputs.sign-commits != 'true' }}
shell: bash shell: bash
run: | run: |
echo "GIT_AUTHOR_NAME=github-actions[bot]" >> $GITHUB_ENV echo "GIT_AUTHOR_NAME=${{ inputs.git-author-name }}" >> $GITHUB_ENV
echo "GIT_AUTHOR_EMAIL=<github-actions[bot]@users.noreply.github.com>" >> $GITHUB_ENV echo "GIT_AUTHOR_EMAIL=<${{ inputs.git-author-email }}>" >> $GITHUB_ENV
echo "GIT_COMMITTER_NAME=github-actions[bot]" >> $GITHUB_ENV echo "GIT_COMMITTER_NAME=${{ inputs.git-committer-name }}" >> $GITHUB_ENV
echo "GIT_COMMITTER_EMAIL=<github-actions[bot]@users.noreply.github.com>" >> $GITHUB_ENV echo "GIT_COMMITTER_EMAIL=<${{ inputs.git-committer-email }}>" >> $GITHUB_ENV
- name: Run update-flake-lock.sh - name: Run update-flake-lock.sh
run: $GITHUB_ACTION_PATH/update-flake-lock.sh run: $GITHUB_ACTION_PATH/update-flake-lock.sh
shell: bash shell: bash
@ -114,6 +142,7 @@ runs:
GIT_COMMITTER_EMAIL: ${{ env.GIT_COMMITTER_EMAIL }} GIT_COMMITTER_EMAIL: ${{ env.GIT_COMMITTER_EMAIL }}
TARGETS: ${{ inputs.inputs }} TARGETS: ${{ inputs.inputs }}
COMMIT_MSG: ${{ inputs.commit-msg }} COMMIT_MSG: ${{ inputs.commit-msg }}
PATH_TO_FLAKE_DIR: ${{ inputs.path-to-flake-dir }}
- name: Save PR Body as file - name: Save PR Body as file
uses: DamianReeves/write-file-action@v1.1 uses: DamianReeves/write-file-action@v1.1
with: with:
@ -155,5 +184,7 @@ runs:
author: ${{ env.GIT_AUTHOR_NAME }} ${{ env.GIT_AUTHOR_EMAIL }} author: ${{ env.GIT_AUTHOR_NAME }} ${{ env.GIT_AUTHOR_EMAIL }}
title: ${{ inputs.pr-title }} title: ${{ inputs.pr-title }}
token: ${{ inputs.token }} token: ${{ inputs.token }}
assignees: ${{ inputs.pr-assignees }}
labels: ${{ inputs.pr-labels }} labels: ${{ inputs.pr-labels }}
reviewers: ${{ inputs.pr-reviewers }}
body: ${{ steps.pr_body.outputs.contents }} body: ${{ steps.pr_body.outputs.contents }}

View File

@ -1,6 +1,10 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
if [[ -n "$PATH_TO_FLAKE_DIR" ]]; then
cd "$PATH_TO_FLAKE_DIR"
fi
if [[ -n "$TARGETS" ]]; then if [[ -n "$TARGETS" ]]; then
inputs=() inputs=()
for input in $TARGETS; do for input in $TARGETS; do