proposal_labeled.yaml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # Part of the Carbon Language project, under the Apache License v2.0 with LLVM
  2. # Exceptions. See /LICENSE for license information.
  3. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. # Applies mutual exclusivity between states labels:
  5. # - proposal draft
  6. # - proposal rfc
  7. # - proposal accepted
  8. # - proposal declined
  9. # - proposal deferred
  10. #
  11. # The "proposal" label is always applied in order to make searching for all
  12. # proposals (regardless of state) easy, although it will typically already be
  13. # present.
  14. name: Proposal labeled
  15. on:
  16. pull_request_target:
  17. types:
  18. - labeled
  19. permissions:
  20. pull-requests: write # For gh to edit labels.
  21. jobs:
  22. proposal_labeled:
  23. runs-on: ubuntu-latest
  24. steps:
  25. - name: Harden Runner
  26. uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
  27. with:
  28. disable-sudo: true
  29. egress-policy: block
  30. # prettier-ignore
  31. allowed-endpoints: >
  32. api.github.com:443
  33. - name: draft
  34. if: |
  35. github.event.label.name == 'proposal draft'
  36. run: |
  37. gh pr edit "${PR}" \
  38. --remove-label "proposal rfc" \
  39. --remove-label "proposal accepted" \
  40. --remove-label "proposal declined" \
  41. --remove-label "proposal deferred" \
  42. --add-label "proposal"
  43. env:
  44. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  45. PR: ${{ github.event.pull_request.html_url }}
  46. - name: rfc
  47. if: |
  48. github.event.label.name == 'proposal rfc'
  49. run: |
  50. gh pr edit "${PR}" \
  51. --remove-label "proposal draft" \
  52. --remove-label "proposal accepted" \
  53. --remove-label "proposal declined" \
  54. --remove-label "proposal deferred" \
  55. --add-label "proposal"
  56. env:
  57. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  58. PR: ${{ github.event.pull_request.html_url }}
  59. - name: accepted
  60. if: |
  61. github.event.label.name == 'proposal accepted'
  62. run: |
  63. gh pr edit "${PR}" \
  64. --remove-label "proposal draft" \
  65. --remove-label "proposal rfc" \
  66. --remove-label "proposal declined" \
  67. --remove-label "proposal deferred" \
  68. --add-label "proposal"
  69. env:
  70. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  71. PR: ${{ github.event.pull_request.html_url }}
  72. - name: declined
  73. if: |
  74. github.event.label.name == 'proposal declined'
  75. run: |
  76. gh pr edit "${PR}" \
  77. --remove-label "proposal draft" \
  78. --remove-label "proposal rfc" \
  79. --remove-label "proposal accepted" \
  80. --remove-label "proposal deferred" \
  81. --add-label "proposal"
  82. env:
  83. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  84. PR: ${{ github.event.pull_request.html_url }}
  85. - name: deferred
  86. if: |
  87. github.event.label.name == 'proposal deferred'
  88. run: |
  89. gh pr edit "${PR}" \
  90. --remove-label "proposal draft" \
  91. --remove-label "proposal rfc" \
  92. --remove-label "proposal accepted" \
  93. --remove-label "proposal declined" \
  94. --add-label "proposal"
  95. env:
  96. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  97. PR: ${{ github.event.pull_request.html_url }}