diff --git a/.github/workflows/ofborg-pending.yml b/.github/workflows/ofborg-pending.yml new file mode 100644 index 000000000000..b5e0a7c46c8c --- /dev/null +++ b/.github/workflows/ofborg-pending.yml @@ -0,0 +1,33 @@ +name: "Set pending OfBorg status" +on: + pull_request_target: + +# Sets the ofborg-eval status to "pending" to signal that we are waiting for +# OfBorg even if it is running late. The status will be overwritten by OfBorg +# once it starts evaluation. + +# WARNING: +# When extending this action, be aware that $GITHUB_TOKEN allows (restricted) write access to +# the GitHub repository. This means that it should not evaluate user input in a +# way that allows code injection. + +permissions: + contents: read + +jobs: + action: + if: github.repository_owner == 'NixOS' + permissions: + statuses: write + runs-on: ubuntu-latest + steps: + - name: "Set pending OfBorg status" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + curl \ + -X POST \ + -H "Accept: application/vnd.github.v3+json" \ + -H "Authorization: Bearer $GITHUB_TOKEN" \ + -d '{"context": "ofborg-eval", "state": "pending", "description": "Waiting for OfBorg..."}' \ + "https://api.github.com/repos/NixOS/nixpkgs/commits/${{ github.event.pull_request.head.sha }}/statuses" diff --git a/.github/workflows/pending-clear.yml b/.github/workflows/pending-clear.yml deleted file mode 100644 index 7e8960597e5c..000000000000 --- a/.github/workflows/pending-clear.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: "clear pending status" - -on: - check_suite: - types: [ completed ] - -permissions: - contents: read - -jobs: - action: - permissions: - statuses: write - runs-on: ubuntu-latest - steps: - - name: clear pending status - if: github.repository_owner == 'NixOS' && github.event.check_suite.app.name == 'OfBorg' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - curl \ - -X POST \ - -H "Accept: application/vnd.github.v3+json" \ - -H "Authorization: token $GITHUB_TOKEN" \ - -d '{"state": "success", "target_url": " ", "description": " ", "context": "Wait for ofborg"}' \ - "https://api.github.com/repos/NixOS/nixpkgs/statuses/${{ github.event.check_suite.head_sha }}" diff --git a/.github/workflows/pending-set.yml b/.github/workflows/pending-set.yml deleted file mode 100644 index 0dc3031d87c0..000000000000 --- a/.github/workflows/pending-set.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: "set pending status" - -on: - pull_request_target: - -# WARNING: -# When extending this action, be aware that $GITHUB_TOKEN allows write access to -# the GitHub repository. This means that it should not evaluate user input in a -# way that allows code injection. - -permissions: - contents: read - -jobs: - action: - permissions: - statuses: write - runs-on: ubuntu-latest - steps: - - name: set pending status - if: github.repository_owner == 'NixOS' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - curl \ - -X POST \ - -H "Accept: application/vnd.github.v3+json" \ - -H "Authorization: token $GITHUB_TOKEN" \ - -d '{"state": "pending", "target_url": " ", "description": "This pending status will be cleared when ofborg starts eval.", "context": "Wait for ofborg"}' \ - "https://api.github.com/repos/NixOS/nixpkgs/statuses/${{ github.event.pull_request.head.sha }}"