diff --git a/commit.js b/commit.js deleted file mode 100644 index 97c7c53..0000000 --- a/commit.js +++ /dev/null @@ -1,81 +0,0 @@ -const axios = require('axios'); - - - - -export async function commitChanges(filePath) { - const commitMessage = 'Commit message here'; - const newContent = 'New content to be added'; - - - // Get the repository owner and name - const repoFullName = process.env.GITHUB_REPOSITORY; - const [owner, repo] = repoFullName.split('/'); - - // Get the current branch - const branch = process.env.GITHUB_REF.replace('refs/heads/', ''); - - try { - // Get the current commit SHA for the branch - const branchResponse = await axios.get( - `https://api.github.com/repos/${owner}/${repo}/branches/${branch}` - ); - - const baseTreeSha = branchResponse.data.commit.sha; - - // Create a new blob with the updated content - const blobResponse = await axios.post( - `https://api.github.com/repos/${owner}/${repo}/git/blobs`, - { - content: newContent, - encoding: 'utf-8', - } - ); - - const newBlobSha = blobResponse.data.sha; - - // Create a new tree with the updated blob - const treeResponse = await axios.post( - `https://api.github.com/repos/${owner}/${repo}/git/trees`, - { - base_tree: baseTreeSha, - tree: [ - { - path: filePath, - mode: '100644', - type: 'blob', - sha: newBlobSha, - }, - ], - } - ); - - const newTreeSha = treeResponse.data.sha; - - // Create a new commit - const commitResponse = await axios.post( - `https://api.github.com/repos/${owner}/${repo}/git/commits`, - { - message: commitMessage, - tree: newTreeSha, - parents: [baseTreeSha], - } - ); - - const newCommitSha = commitResponse.data.sha; - - // Update the branch reference - await axios.patch( - `https://api.github.com/repos/${owner}/${repo}/git/refs/heads/${branch}`, - { - sha: newCommitSha, - } - ); - - console.log('Changes committed successfully!'); - } catch (error) { - console.error('Error committing changes:', error); - } -} - -commitChanges(); diff --git a/index.js b/index.js index 51db9d3..8207b95 100644 --- a/index.js +++ b/index.js @@ -1,60 +1,140 @@ const core = require('@actions/core') const github = require('@actions/github') const fs = require('fs') -import commitChanges from './commit.js'; -try { - console.log(`CWD: ${process.cwd()}`) - const label = core.getInput('label'); - const filePath = `${process.cwd()}/${core.getInput('filePath')}`; +async function run() { + try { + console.log(`CWD: ${process.cwd()}`) + const label = core.getInput('label'); + const filePath = `${process.cwd()}/${core.getInput('filePath')}`; - console.log(`Label: ${label}`) - console.log(`File path: ${filePath}`) + console.log(`Label: ${label}`) + console.log(`File path: ${filePath}`) - core.setOutput("label", label); + core.setOutput("label", label); - // if (project == 'dotnet') - // filePath = `${filePath}/.csproj`; - // else if (project == 'nodejs') - // filePath = `${filePath}/package.json`; + // if (project == 'dotnet') + // filePath = `${filePath}/.csproj`; + // else if (project == 'nodejs') + // filePath = `${filePath}/package.json`; - const packageJson = require(filePath); - const version = packageJson.version; + const packageJson = require(filePath); + const version = packageJson.version; - // the version is in semantic format, so we can split it by dot - const versionParts = version.split('.'); - if (label === 'major') { - versionParts[0] = parseInt(versionParts[0]) + 1; - versionParts[1] = 0; - versionParts[2] = 0; + // the version is in semantic format, so we can split it by dot + const versionParts = version.split('.'); + if (label === 'major') { + versionParts[0] = parseInt(versionParts[0]) + 1; + versionParts[1] = 0; + versionParts[2] = 0; + } + else if (label == 'minor') { + versionParts[1] = parseInt(versionParts[1]) + 1; + versionParts[2] = 0; + + } + else if (label == 'patch') + versionParts[2] = parseInt(versionParts[2]) + 1; + + + console.log(versionParts) + // increment the patch version + // join the parts back together + const newVersion = `v${versionParts.join('.')}`; + + + console.log(`Old version: ${version}. New version: ${newVersion}`) + + packageJson.version = newVersion; + + fs.writeFileSync(filePath, JSON.stringify(packageJson, null, 2)); + + await commitChanges(); + + const payload = JSON.stringify(github.context.payload, undefined, 2) + + // console.log(`The event payload: ${payload}`); + } catch (error) { + core.setFailed(error.message); + } +} + + +// Region functions +async function commitChanges(filePath) { + const commitMessage = 'Commit message here'; + const newContent = 'New content to be added'; + + + // Get the repository owner and name + const repoFullName = process.env.GITHUB_REPOSITORY; + const [owner, repo] = repoFullName.split('/'); + + // Get the current branch + const branch = process.env.GITHUB_REF.replace('refs/heads/', ''); + + try { + // Get the current commit SHA for the branch + const branchResponse = await axios.get( + `https://api.github.com/repos/${owner}/${repo}/branches/${branch}` + ); + + const baseTreeSha = branchResponse.data.commit.sha; + + // Create a new blob with the updated content + const blobResponse = await axios.post( + `https://api.github.com/repos/${owner}/${repo}/git/blobs`, + { + content: newContent, + encoding: 'utf-8', + } + ); + + const newBlobSha = blobResponse.data.sha; + + // Create a new tree with the updated blob + const treeResponse = await axios.post( + `https://api.github.com/repos/${owner}/${repo}/git/trees`, + { + base_tree: baseTreeSha, + tree: [ + { + path: filePath, + mode: '100644', + type: 'blob', + sha: newBlobSha, + }, + ], + } + ); + + const newTreeSha = treeResponse.data.sha; + + // Create a new commit + const commitResponse = await axios.post( + `https://api.github.com/repos/${owner}/${repo}/git/commits`, + { + message: commitMessage, + tree: newTreeSha, + parents: [baseTreeSha], + } + ); + + const newCommitSha = commitResponse.data.sha; + + // Update the branch reference + await axios.patch( + `https://api.github.com/repos/${owner}/${repo}/git/refs/heads/${branch}`, + { + sha: newCommitSha, + } + ); + + console.log('Changes committed successfully!'); + } catch (error) { + console.error('Error committing changes:', error); } - else if (label == 'minor') { - versionParts[1] = parseInt(versionParts[1]) + 1; - versionParts[2] = 0; - - } - else if (label == 'patch') - versionParts[2] = parseInt(versionParts[2]) + 1; - - - console.log(versionParts) - // increment the patch version - // join the parts back together - const newVersion = `v${versionParts.join('.')}`; - - - console.log(`Old version: ${version}. New version: ${newVersion}`) - - packageJson.version = newVersion; - - fs.writeFileSync(filePath, JSON.stringify(packageJson, null, 2)); - commitChanges(); - const payload = JSON.stringify(github.context.payload, undefined, 2) - - // console.log(`The event payload: ${payload}`); -} catch (error) { - core.setFailed(error.message); }