mirror of
https://github.com/penpot/penpot.git
synced 2026-07-01 20:05:26 +00:00
69 lines
2.4 KiB
YAML
69 lines
2.4 KiB
YAML
name: Auto Label and Add to Project
|
|
|
|
on:
|
|
issues:
|
|
types: [opened]
|
|
pull_request:
|
|
types: [opened]
|
|
|
|
jobs:
|
|
triage:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Process Issue or PR
|
|
uses: actions/github-script@v7
|
|
with:
|
|
github-token: ${{ secrets.PROJECT_TOKEN }}
|
|
script: |
|
|
// === 1. CONFIGURATION ===
|
|
const PROJECT_NUMBER = 8; // <--- Replace with your project board number
|
|
const IS_ORG = true; // <--- Set to false if this is a personal project, true if an organization
|
|
const OWNER = context.repo.owner;
|
|
const REPO = context.repo.repo;
|
|
|
|
const issueNumber = context.issue.number;
|
|
const isPR = !!context.payload.pull_request;
|
|
const contentId = isPR ? context.payload.pull_request.node_id : context.payload.issue.node_id;
|
|
|
|
// Define your labels here
|
|
const labelToApply = 'needs triage';
|
|
|
|
// === 2. APPLY THE LABEL ===
|
|
console.log(`Applying label "${labelToApply}" to ${isPR ? 'PR' : 'Issue'} #${issueNumber}...`);
|
|
await github.rest.issues.addLabels({
|
|
issue_number: issueNumber,
|
|
owner: OWNER,
|
|
repo: REPO,
|
|
labels: [labelToApply]
|
|
});
|
|
|
|
// === 3. ADD TO PROJECT BOARD ===
|
|
console.log(`Fetching Project #${PROJECT_NUMBER} ID...`);
|
|
const projectQuery = `
|
|
query($owner: String!, $number: Int!) {
|
|
${IS_ORG ? 'organization' : 'user'}(login: $owner) {
|
|
projectV2(number: $number) {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
const projectRes = await github.graphql(projectQuery, { owner: OWNER, number: PROJECT_NUMBER });
|
|
const projectId = IS_ORG ? projectRes.organization.projectV2.id : projectRes.user.projectV2.id;
|
|
|
|
console.log(`Adding item to project board...`);
|
|
const addToProjectMutation = `
|
|
mutation($projectId: ID!, $contentId: ID!) {
|
|
addProjectV2ItemById(input: {projectId: $projectId, contentId: $contentId}) {
|
|
item {
|
|
id
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
await github.graphql(addToProjectMutation, { projectId, contentId });
|
|
console.log("Automation successfully completed!");
|
|
|