
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
fetch-github-logs
Advanced tools
A powerful CLI tool to download GitHub Actions workflow logs. Perfect for developers who need quick access to workflow logs for debugging and analysis.
npm install -g fetch-github-logs
# Set your GitHub token
export GITHUB_TOKEN=your_github_token_here
# Download latest workflow logs
fetch-github-logs fetch-logs
# Push and wait for workflow, then download logs
fetch-github-logs after-push
npm install -g fetch-github-logs
npm install --save-dev fetch-github-logs
git clone https://github.com/Skeyelab/fetch-github-logs.git
cd fetch-github-logs
npm install
npm link # for global usage
fetch-logs - Download Workflow Logsfetch-github-logs fetch-logs [options]
Options:
-w, --workflow <workflow> - Workflow file name (default: build.yml)-r, --repo <repo> - Repository in owner/repo format (auto-detected)-i, --run-id <runId> - Specific run ID to download--wait - Wait for workflow run to appear--wait-for-completion - Wait for run to complete--timeout <seconds> - Wait timeout (default: 300)--interval <seconds> - Polling interval (default: 5)Examples:
# Download latest workflow logs
fetch-github-logs fetch-logs
# Download logs for specific workflow
fetch-github-logs fetch-logs --workflow deploy.yml
# Wait for workflow to complete then download
fetch-github-logs fetch-logs --wait-for-completion
# Download specific run
fetch-github-logs fetch-logs --run-id 123456789
after-push - Push & Fetch Workflow Logsfetch-github-logs after-push [options]
Options:
-r, --remote <remote> - Git remote (default: origin)-b, --branch <branch> - Branch to push (auto-detected)--skip-push - Skip git push-w, --workflow <workflow> - Workflow file name (default: build.yml)--wait-for-completion - Wait for run to complete--timeout <seconds> - Wait timeoutExamples:
# Push current branch and wait for workflow
fetch-github-logs after-push
# Push specific branch to specific remote
fetch-github-logs after-push --remote upstream --branch feature-branch
# Just wait for workflow without pushing
fetch-github-logs after-push --skip-push
| Variable | Description | Default |
|---|---|---|
GITHUB_TOKEN | GitHub personal access token | Required |
GITHUB_REPO | Repository in "owner/repo" format | Auto-detected |
GITHUB_WORKFLOW | Workflow file name | build.yml |
RUN_ID | Specific run ID to download | Latest run |
WAIT_FOR_RUN | Wait for workflow run to appear | false |
WAIT_FOR_COMPLETION | Wait for run to complete | false |
WAIT_TIMEOUT | Timeout in seconds | 300 |
WAIT_INTERVAL | Polling interval in seconds | 5 |
SKIP_PUSH | Skip git push in after-push | false |
const { fetchLogs, afterPush } = require('fetch-github-logs');
// Download logs programmatically
await fetchLogs({
workflow: 'build.yml',
repo: 'owner/repo',
waitForCompletion: true
});
// Push and fetch logs
await afterPush({
remote: 'origin',
branch: 'main',
waitForCompletion: true
});
Logs are saved in the following structure:
log/github/
└── 123456789-abc1234/
├── run_123456789.zip # Combined run logs
├── run_123456789_metadata.json # Run metadata
├── job_987654321_test.log # Individual job logs
├── job_987654322_build.log
└── job_987654323_deploy.log
You need a GitHub personal access token with the following permissions:
actions: read - to read workflow runs and download logsCreate a token:
Actions read permissionexport GITHUB_TOKEN=your_token_heregit clone https://github.com/Skeyelab/fetch-github-logs.git
cd fetch-github-logs
npm install
npm test
npm run test:watch
npm run lint
npm run lint:fix
npm run prepare # runs lint and test
git checkout -b feature/amazing-featurenpm testgit commit -m 'Add amazing feature'git push origin feature/amazing-featureSee CHANGELOG.md for version history.
This project is licensed under the MIT License - see the LICENSE file for details.
This project uses GitHub Actions for automated npm publishing. There are two ways to trigger releases:
Update version manually:
npm run release:patch # or release:minor / release:major
Commit and push changes:
git add package.json package-lock.json
git commit -m "chore: bump version to x.x.x"
git push origin main
Create a GitHub release:
vx.x.x (must match package.json version)GitHub Actions will automatically publish to npm
Create npm token:
npm login
# Get token from: https://www.npmjs.com/settings/tokens
Add to GitHub Secrets:
NPM_TOKEN = your npm tokennpm run release:patch # 1.0.0 → 1.0.1
npm run release:minor # 1.0.0 → 1.1.0
npm run release:major # 1.0.0 → 2.0.0
Made with ❤️ for developers
FAQs
Download GitHub Actions workflow logs
We found that fetch-github-logs demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.