
Product
Socket Brings Supply Chain Security to skills.sh
Socket is now scanning AI agent skills across multiple languages and ecosystems, detecting malicious behavior before developers install, starting with skills.sh's 60,000+ skills.
@veecode-platform/backstage-plugin-github-workflows-backend
Advanced tools
This plugin provides GitHub workflows API endpoints for Backstage, moving GitHub API interactions from the frontend to the backend for better security, CORS handling, and potential caching.
This plugin provides GitHub workflows API endpoints for Backstage, moving GitHub API interactions from the frontend to the backend for better security, CORS handling, and potential caching.
/gh-workflowsThis plugin is installed via the @veecode-platform/backstage-plugin-github-workflows-backend package. To install it to your backend package, run the following command:
# From your root directory
yarn --cwd packages/backend add @veecode-platform/backstage-plugin-github-workflows-backend
Then add the plugin to your backend in packages/backend/src/index.ts:
const backend = createBackend();
// ...
backend.add(import('@veecode-platform/backstage-plugin-github-workflows-backend'));
Add the following configuration to your app-config.yaml:
GitHub Apps are preferred over personal access tokens for better security and permissions. The plugin uses Backstage's standard ScmIntegrations which automatically handles GitHub App authentication.
integrations:
github:
- host: github.com
apps:
- appId: ${GITHUB_APP_ID}
clientId: ${GITHUB_CLIENT_ID}
clientSecret: ${GITHUB_CLIENT_SECRET}
privateKey: |
${GITHUB_PRIVATE_KEY}
# Optional fallback token if GitHub App auth fails
# token: ${GITHUB_TOKEN}
Required Environment Variables:
GITHUB_APP_ID - Your GitHub App IDGITHUB_CLIENT_ID - Your GitHub App Client IDGITHUB_CLIENT_SECRET - Your GitHub App Client SecretGITHUB_PRIVATE_KEY - Your GitHub App Private Key (PEM format, with newlines)For GitHub Enterprise:
integrations:
github:
- host: github.yourcompany.com
apps:
- appId: ${GITHUB_APP_ID}
clientId: ${GITHUB_CLIENT_ID}
clientSecret: ${GITHUB_CLIENT_SECRET}
privateKey: |
${GITHUB_PRIVATE_KEY}
apiBaseUrl: https://github.yourcompany.com/api/v3
How to verify GitHub App authentication:
When the plugin starts, you'll see log messages indicating which authentication method is being used:
info: GitHub integration using GitHub App installation token for github.com/owner/repo
If you don't have a GitHub App, you can use a personal access token:
integrations:
github:
- host: github.com
token: ${GITHUB_TOKEN}
Required Permissions:
repo - Full control of private repositoriesworkflow - Update GitHub Action workflowsNote: The plugin will automatically try GitHub App authentication first, then fall back to the token if the app fails or isn't configured.
This plugin backend can be started in a standalone mode from directly in this
package with yarn start. It is a limited setup that is most convenient when
developing the plugin backend itself.
When running the backend in isolation with yarn start, you can test the endpoints directly with curl. The dev setup uses mock authentication, so no auth headers are required.
Set your environment variables:
export GITHUB_TOKEN=your_github_token_here
export REPO_SLUG=veecode-platform/devportal-base # e.g., octocat/Hello-World
Then test the endpoints:
# List workflows
curl "http://localhost:7007/api/github-workflow-backend/workflows?hostname=github.com&githubRepoSlug=${REPO_SLUG}&branch=main"
# List branches
curl "http://localhost:7007/api/github-workflow-backend/branches?hostname=github.com&githubRepoSlug=${REPO_SLUG}"
# Get default branch
curl "http://localhost:7007/api/github-workflow-backend/default-branch?hostname=github.com&githubRepoSlug=${REPO_SLUG}"
# List environments
curl "http://localhost:7007/api/github-workflow-backend/environments?hostname=github.com&githubRepoSlug=${REPO_SLUG}"
# Start a workflow (replace workflowId with actual workflow ID)
curl -X POST "http://localhost:7007/api/github-workflow-backend/start" \
-H "Content-Type: application/json" \
-d "{
\"hostname\": \"github.com\",
\"githubRepoSlug\": \"${REPO_SLUG}\",
\"workflowId\": 12345,
\"branch\": \"main\",
\"inputs\": {}
}"
# Get workflow run details (replace 123456 with actual run ID)
curl "http://localhost:7007/api/github-workflow-backend/run/123456?hostname=github.com&githubRepoSlug=${REPO_SLUG}"
# List jobs for a workflow run (replace 123456 with actual run ID)
curl "http://localhost:7007/api/github-workflow-backend/jobs?hostname=github.com&githubRepoSlug=${REPO_SLUG}&id=123456"
# Download job logs (replace 987654 with actual job ID)
curl "http://localhost:7007/api/github-workflow-backend/logs/987654?hostname=github.com&githubRepoSlug=${REPO_SLUG}"
# Stop a workflow run (replace 123456 with actual run ID)
curl -X POST "http://localhost:7007/api/github-workflow-backend/stop" \
-H "Content-Type: application/json" \
-d "{
\"hostname\": \"github.com\",
\"githubRepoSlug\": \"${REPO_SLUG}\",
\"runId\": 123456
}"
The plugin exposes the following endpoints under /gh-workflows:
GET /workflows - List workflowsGET /branches - List repository branchesGET /default-branch - Get default branchPOST /start - Start a workflow runPOST /stop - Stop a workflow runGET /jobs - List jobs for a workflow runGET /run/:id - Get workflow run detailsGET /logs/:jobId - Download job logsGET /environments - List environmentsIf you want to run the entire project, including the frontend, run yarn start from the root directory.
FAQs
This backend plugin provides secure GitHub workflows API endpoints for Backstage, moving GitHub API interactions from the frontend to the backend for better security, CORS handling, and potential caching.
The npm package @veecode-platform/backstage-plugin-github-workflows-backend receives a total of 22 weekly downloads. As such, @veecode-platform/backstage-plugin-github-workflows-backend popularity was classified as not popular.
We found that @veecode-platform/backstage-plugin-github-workflows-backend demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers 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.

Product
Socket is now scanning AI agent skills across multiple languages and ecosystems, detecting malicious behavior before developers install, starting with skills.sh's 60,000+ skills.

Product
Socket now supports PHP with full Composer and Packagist integration, enabling developers to search packages, generate SBOMs, and protect their PHP dependencies from supply chain threats.

Security News
An AI agent is merging PRs into major OSS projects and cold-emailing maintainers to drum up more work.