Skip to content

Commit

Permalink
Merge pull request #291 from DefangLabs/linda-move-js-script
Browse files Browse the repository at this point in the history
Move JS script from check-samples into its own file
  • Loading branch information
jordanstephens authored Dec 20, 2024
2 parents ac63a2c + a6e18f8 commit fca1ecb
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 54 deletions.
59 changes: 5 additions & 54 deletions .github/workflows/check-sample.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,62 +42,13 @@ jobs:
uses: actions/github-script@v5
with:
script: |
const fs = require('fs');
const pr_number = context.issue.number;
const marker = '## Samples Checklist';
let checklist;
let error = false;
const script = require('./scripts/add-checklist-to-pr.js');
try {
// Read the checklist from the file
checklist = fs.readFileSync('checklist.txt', 'utf8');
checklist = checklist.trim();
if(!checklist) {
checklist = "✅ All good!"
}
else {
error = true;
}
} catch (readFileError) {
throw new Error("Could not read samples checklist from file. Please fix the issues and try again.")
}
try {
// Get the current PR
const { data: pullRequest } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr_number
});
let newBody;
const body = pullRequest.body || "";
const markerIndex = body.indexOf(marker);
if (markerIndex !== -1) {
// Replace the content below the marker
newBody = body.substring(0, markerIndex + marker.length) + "\n" + checklist;
} else {
// Append the checklist if the marker doesn't exist
newBody = body + "\n" + marker + "\n" + checklist;
}
// Update the PR description
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr_number,
body: newBody
});
} catch (updatePrError) {
throw new Error("Could not update PR description based on samples checklist. Please fix the issues and try again.")
}
if (error) {
throw new Error("Incomplete samples checklist. Please fix the issues and try again.");
await script({github, context});
core.info(`Checklist successfully added to PR description`);
} catch (error) {
core.setFailed(`Script execution failed: ${error.message}`);
}
- name: Create / Update Template Repo
uses: actions/github-script@v7
Expand Down
63 changes: 63 additions & 0 deletions scripts/add-checklist-to-pr.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
const fs = require('fs');

module.exports = async ({ github, context }) => {
const pr_number = context.issue.number;
const marker = '## Samples Checklist';

let checklist;
let error = false;

try {
// Read the checklist from the file
checklist = fs.readFileSync('checklist.txt', 'utf8');
checklist = checklist.trim();
if(!checklist) {
checklist = "✅ All good!"
}
else {
error = true;
}
} catch (readFileError) {
throw new Error("Could not read samples checklist from file. Please fix the issues and try again.")
}

try {
// Get the current PR
const { data: pullRequest } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr_number
});
} catch (getPrError) {
throw new Error ("Could not get current PR from source. Please fix the issues and try again.")
}

try {
let newBody;
const body = pullRequest.body || "";
const markerIndex = body.indexOf(marker);

if (markerIndex !== -1) {
// Replace the content below the marker
newBody = body.substring(0, markerIndex + marker.length) + "\n" + checklist;
} else {
// Append the checklist if the marker doesn't exist
newBody = body + "\n" + marker + "\n" + checklist;
}

// Update the PR description
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr_number,
body: newBody
});
} catch (updatePrError) {
throw new Error("Could not update PR description based on samples checklist. Please fix the issues and try again.")
}

if (error) {
throw new Error("Incomplete samples checklist. Please fix the issues and try again.");
}

}

0 comments on commit fca1ecb

Please sign in to comment.