Evenimentul pull_request_target este o variantă specializată a lui pull_request, concepută pentru a permite rularea fluxurilor automate pe cereri de îmbinare (PR) inițiate din depozite bifurcate (forks), având acces legitim la secretele criptate ale depozitului țintă și la un token cu permisiuni extinse de scriere.
Avertisment critic de securitate: Spre deosebire de
pull_request (care rulează codul din fork într-un mediu izolat fără acces la secrete), pull_request_target execută workflow-ul în contextul ramurii de bază (ex: main). Dacă descărcați și rulați cod neverificat din fork prin comenzi shell (ex: npm test), expuneți secretele depozitului la atacuri de tip pwn request.
Cazuri de utilizare recomandate
- Etichetarea automată a Pull Request-urilor trimise de colaboratori externi (labelling).
- Comentarea automată cu instrucțiuni sau mulțumiri pe PR-uri externe.
- Declanșarea build-urilor doar după verificarea semnăturilor sau a statutului de membru al organizației.
Exemplu: Comentarea sigură pe un PR dintr-un fork folosind pull_request_target
name: Bun venit colaborator
on:
pull_request_target:
types: [opened]
permissions:
pull-requests: write
jobs:
salut:
runs-on: ubuntu-latest
steps:
- name: Trimite mesaj de întâmpinare
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '👋 Îți mulțumim pentru contribuție! Un maintainer va analiza modificările tale în curând.'
})
Întrebări & Exemple de Cod:
Evenimentul pull_request_target în GitHub ActionsAi o nelămurire despre utilizarea comenzii
Evenimentul pull_request_target în GitHub Actionssau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.