4320041ed3
* Add support for signed commits (#3055) * formatting * fix eslint and lint errors * shift setting the base to before the push * sign commits by default for testing * add debug lines * read to buffer not string and use non-legacy method to base64 * debug payload without contents * disable linter for debug code * fix filepath when using path input * try to fix head repo * remove commented code * Try refactor of file changes * add tests for building file changes * add build file changes test for binary files * refactor graphql code into github helper class * build file changes even when there is no diff * add function to get commit detail * fix format * build branch commits * use source mode for deleted files * try rest api route * fix check for branch existence * force push * try fix base tree * debug commit verification * debug commit verification * fix format and cleanup * add executable mode file to test * limit blob creation concurrency * only build commits when feature enabled * remove unused code * update readme link * update docs for commit signing * fix capital letter * update docs * add throttling * set default back to false * output head sha and verified status * log outputs * fix head sha output * default the operation output to none * output retryafter for secondary rate limit * use separate client for branch and pull operations * add maintainer-can-modify input * rename git-token to branch-token * fix branch token input * remove deprecated env output * update docs * fix doc * update docs * build branch commits when there is a diff with the base * check verification status of head commit when not known * fix verified output when no commit signing is being used * draft always-true * convert to draft on branch updates when there is a diff with base * update docs with blob size limit * catch errors during blob creation for debugging * parse empty commits * pass base commit to push signed commits * use parent commit details in create commit * use parent tree for base_tree * multipart tree creation * update docs * update readme about the permissions of the default token * fix edge case where changes are partially merged * add updating documentation * fix typo * update major version --------- Co-authored-by: Ravi <1299606+rustycl0ck@users.noreply.github.com>
85 lines
2.6 KiB
TypeScript
85 lines
2.6 KiB
TypeScript
import {GitCommandManager} from '../lib/git-command-manager'
|
|
import {GitConfigHelper} from '../lib/git-config-helper'
|
|
|
|
const REPO_PATH = '/git/local/repos/test-base'
|
|
|
|
const extraheaderConfigKey = 'http.https://127.0.0.1/.extraheader'
|
|
|
|
describe('git-config-helper integration tests', () => {
|
|
let git: GitCommandManager
|
|
|
|
beforeAll(async () => {
|
|
git = await GitCommandManager.create(REPO_PATH)
|
|
})
|
|
|
|
it('tests save and restore with no persisted auth', async () => {
|
|
const gitConfigHelper = await GitConfigHelper.create(git)
|
|
await gitConfigHelper.close()
|
|
})
|
|
|
|
it('tests configure and removal of auth', async () => {
|
|
const gitConfigHelper = await GitConfigHelper.create(git)
|
|
await gitConfigHelper.configureToken('github-token')
|
|
expect(await git.configExists(extraheaderConfigKey)).toBeTruthy()
|
|
expect(await git.getConfigValue(extraheaderConfigKey)).toEqual(
|
|
'AUTHORIZATION: basic eC1hY2Nlc3MtdG9rZW46Z2l0aHViLXRva2Vu'
|
|
)
|
|
|
|
await gitConfigHelper.close()
|
|
expect(await git.configExists(extraheaderConfigKey)).toBeFalsy()
|
|
})
|
|
|
|
it('tests save and restore of persisted auth', async () => {
|
|
const extraheaderConfigValue = 'AUTHORIZATION: basic ***persisted-auth***'
|
|
await git.config(extraheaderConfigKey, extraheaderConfigValue)
|
|
|
|
const gitConfigHelper = await GitConfigHelper.create(git)
|
|
|
|
const exists = await git.configExists(extraheaderConfigKey)
|
|
expect(exists).toBeFalsy()
|
|
|
|
await gitConfigHelper.close()
|
|
|
|
const configValue = await git.getConfigValue(extraheaderConfigKey)
|
|
expect(configValue).toEqual(extraheaderConfigValue)
|
|
|
|
const unset = await git.tryConfigUnset(
|
|
extraheaderConfigKey,
|
|
'^AUTHORIZATION:'
|
|
)
|
|
expect(unset).toBeTruthy()
|
|
})
|
|
|
|
it('tests not adding/removing the safe.directory config when it already exists', async () => {
|
|
await git.config('safe.directory', '/another-value', true, true)
|
|
|
|
const gitConfigHelper = await GitConfigHelper.create(git)
|
|
|
|
expect(
|
|
await git.configExists('safe.directory', '/another-value', true)
|
|
).toBeTruthy()
|
|
|
|
await gitConfigHelper.close()
|
|
|
|
const unset = await git.tryConfigUnset(
|
|
'safe.directory',
|
|
'/another-value',
|
|
true
|
|
)
|
|
expect(unset).toBeTruthy()
|
|
})
|
|
|
|
it('tests adding and removing the safe.directory config', async () => {
|
|
const gitConfigHelper = await GitConfigHelper.create(git)
|
|
|
|
expect(
|
|
await git.configExists('safe.directory', REPO_PATH, true)
|
|
).toBeTruthy()
|
|
|
|
await gitConfigHelper.close()
|
|
|
|
expect(
|
|
await git.configExists('safe.directory', REPO_PATH, true)
|
|
).toBeFalsy()
|
|
})
|
|
})
|