feat: add add loabl

This commit is contained in:
thomas
2024-04-17 21:45:41 +02:00
parent bdfb100b58
commit 41fc261705
4 changed files with 67 additions and 38 deletions

View File

@@ -1,13 +1,10 @@
name: 'Hello World'
description: 'Greet someone and record the time'
inputs:
who-to-greet: # id of input
description: 'Who to greet'
required: true
default: 'World'
outputs:
time: # id of output
description: 'The time we greeted you'
github_token:
description: A GitHub token.
required: false
default: ${{ github.token }}
runs:
using: 'node20'
main: 'index.js'

16
.github/github-action/contributors.js vendored Normal file
View File

@@ -0,0 +1,16 @@
const contributors = [
'tomalaforge',
'alcaidio',
'svenson95',
'jdegand',
'DeveshChau',
'stillst',
'wandri',
'webbomj',
'kabrunko-dev',
'Sanjar1304'
];
module.exports = {
contributors
};

View File

@@ -1,15 +1,48 @@
const core = require('@actions/core');
const github = require('@actions/github');
const core = require('@actions/core');
const contributors = require('./contributors');
try {
// `who-to-greet` input defined in action metadata file
const nameToGreet = core.getInput('who-to-greet');
console.log(`Hello ${nameToGreet}!`);
const time = (new Date()).toTimeString();
core.setOutput("time", time);
// Get the JSON webhook payload for the event that triggered the workflow
const payload = JSON.stringify(github.context.payload, undefined, 2)
console.log(`The event payload: ${payload}`);
} catch (error) {
core.setFailed(error.message);
async function run() {
try {
const title = github.context.payload.pull_request.title;
const labels = [];
if(!title.startsWith('Answer:')) {
return;
}
labels.push('answer');
const match = title.match(/Answer:\s*(\d+)/);
if (match) {
labels.push(parseInt(match[1], 10));
}
const actor = github.context.actor;
if(contributors.includes(actor)) {
labels.push('to be reviewed');
}
const githubToken = core.getInput('github_token');
const [owner, repo] = core.getInput('repo').split('/');
const number =
core.getInput('number') === ''
? github.context.issue.number
: parseInt(core.getInput('number'));
const octokit = github.getOctokit(githubToken);
await octokit.rest.issues.addLabels({
labels,
owner,
repo,
issue_number: number
});
} catch (e) {
if (e instanceof Error) {
core.error(e);
core.setFailed(e.message);
}
}
}
run();

View File

@@ -14,24 +14,7 @@ jobs:
- name: Install dependencies
run: npm i @actions/core @actions/github
- name: add supporter labels
uses: actions-ecosystem/action-add-labels@v1
if: ${{ contains( fromJson('[ "tomalaforge", "alcaidio" , "svenson95", "jdegand", "DeveshChau", "stillst", "wandri", "webbomj", "kabrunko-dev", "Sanjar1304"]'), github.actor ) && startsWith(github.event.pull_request.title, 'Answer') }}
with:
github_token: ${{ secrets.github_token }}
labels: supporter
- name: add answer labels
uses: actions-ecosystem/action-add-labels@v1
if: ${{ startsWith(github.event.pull_request.title, 'Answer') }}
with:
github_token: ${{ secrets.github_token }}
labels: answer
- name: Hello world action step
- name: Add labels
uses: ./.github/github-action/
id: hello
with:
who-to-greet: 'Mona the Octocat'
- name: Get the output time
run: echo "The time was ${{ steps.hello.outputs.time }}"
github_token: ${{ secrets.GITHUB_TOKEN }}