proposal_labeled.yaml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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. # TODO: `--repo carbon-language/carbon-lang` is a temporary workaround for:
  22. # https://github.com/cli/cli/issues/11055
  23. # Once a later version is released on runners, maybe August 2025, we should be
  24. # able to remove the extra flag.
  25. jobs:
  26. proposal_labeled:
  27. runs-on: ubuntu-latest
  28. steps:
  29. - name: Harden Runner
  30. uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
  31. with:
  32. disable-sudo: true
  33. egress-policy: block
  34. # prettier-ignore
  35. allowed-endpoints: >
  36. api.github.com:443
  37. - name: draft
  38. if: |
  39. github.event.label.name == 'proposal draft'
  40. run: |
  41. gh pr edit "${PR}" \
  42. --remove-label "proposal rfc" \
  43. --remove-label "proposal accepted" \
  44. --remove-label "proposal declined" \
  45. --remove-label "proposal deferred" \
  46. --add-label "proposal" \
  47. --repo carbon-language/carbon-lang
  48. env:
  49. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  50. PR: ${{ github.event.pull_request.html_url }}
  51. - name: rfc
  52. if: |
  53. github.event.label.name == 'proposal rfc'
  54. run: |
  55. gh pr edit "${PR}" \
  56. --remove-label "proposal draft" \
  57. --remove-label "proposal accepted" \
  58. --remove-label "proposal declined" \
  59. --remove-label "proposal deferred" \
  60. --add-label "proposal" \
  61. --repo carbon-language/carbon-lang
  62. env:
  63. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  64. PR: ${{ github.event.pull_request.html_url }}
  65. - name: accepted
  66. if: |
  67. github.event.label.name == 'proposal accepted'
  68. run: |
  69. gh pr edit "${PR}" \
  70. --remove-label "proposal draft" \
  71. --remove-label "proposal rfc" \
  72. --remove-label "proposal declined" \
  73. --remove-label "proposal deferred" \
  74. --add-label "proposal" \
  75. --repo carbon-language/carbon-lang
  76. env:
  77. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  78. PR: ${{ github.event.pull_request.html_url }}
  79. - name: declined
  80. if: |
  81. github.event.label.name == 'proposal declined'
  82. run: |
  83. gh pr edit "${PR}" \
  84. --remove-label "proposal draft" \
  85. --remove-label "proposal rfc" \
  86. --remove-label "proposal accepted" \
  87. --remove-label "proposal deferred" \
  88. --add-label "proposal" \
  89. --repo carbon-language/carbon-lang
  90. env:
  91. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  92. PR: ${{ github.event.pull_request.html_url }}
  93. - name: deferred
  94. if: |
  95. github.event.label.name == 'proposal deferred'
  96. run: |
  97. gh pr edit "${PR}" \
  98. --remove-label "proposal draft" \
  99. --remove-label "proposal rfc" \
  100. --remove-label "proposal accepted" \
  101. --remove-label "proposal declined" \
  102. --add-label "proposal" \
  103. --repo carbon-language/carbon-lang
  104. env:
  105. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  106. PR: ${{ github.event.pull_request.html_url }}