Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | 3x 3x 52x 52x 52x 52x 104x 100x 104x 52x 54x 52x 2x 2x 52x 50x 52x 52x 50x 50x 50x 50x 50x 50x 50x 52x 52x 15x 37x 37x 37x 37x 37x 222x 3x | const core = require( '@actions/core' ) const github = require( '@actions/github' ) async function handleGHUpdate( issueToUpdate, jiraIssues, DEBUG ) { const repoToken = core.getInput( 'GITHUB_TOKEN', { required: true } ) const ghForceCreateLabel = core.getInput( 'FORCE_CREATION_LABEL' ) const ghClient = new github.GitHub( repoToken ) const arrLabelsWithoutForceCreate = issueToUpdate.details.labels.reduce( ( accumulatedLabels, currentLabel ) => { if( currentLabel.name !== ghForceCreateLabel ) { accumulatedLabels.push( currentLabel.name ) } return accumulatedLabels }, [] ) Iif( arrLabelsWithoutForceCreate.length <= 0 ) { console.log( `--- no other label than the one we're adding` ) } //making sure we don't have any label already const arrUniqueLabelsFromJiraIssues = jiraIssues.filter( currentIssue => !arrLabelsWithoutForceCreate.includes( currentIssue.key ) ) if( arrUniqueLabelsFromJiraIssues.length <= 0 ) { console.log( '-- all stories are already in the labels for this issue, nothing to update in GITHUB' ) return } const arrLabelsFromJiraKeyToAdd = arrUniqueLabelsFromJiraIssues.map( currentJiraIssue => ( currentJiraIssue.key ) ) for( const currentJiraIssue of arrUniqueLabelsFromJiraIssues ) { console.log( `-- checking label ${ currentJiraIssue.key } exist in repo` ) await createLabelIfNotExist( ghClient, issueToUpdate.repository.owner.login, issueToUpdate.repository.name, currentJiraIssue.key, currentJiraIssue.parentTitle ) } const arrFinalLabels = [ ...arrLabelsWithoutForceCreate, ...arrLabelsFromJiraKeyToAdd ] DEBUG( arrFinalLabels ) Iif( arrFinalLabels.length <= 0 ) { console.log( `--! nothing to update in GITHUB` ) return } console.log( `-- update GITHUB issue ${ issueToUpdate.details.number }` ) const updateStatus = await ghClient.issues.update( { owner: issueToUpdate.repository.owner.login, repo: issueToUpdate.repository.name, issue_number: issueToUpdate.details.number, labels: arrFinalLabels, } ) DEBUG( updateStatus ) console.log( '- finishing sync with GITHUB' ) } async function createLabelIfNotExist( ghClient, loginRepoOwner, nameRepo, nameLabel, parentTitle ) { try { await ghClient.issues.getLabel( { owner: loginRepoOwner, repo: nameRepo, name: nameLabel, } ) console.log( `--- label ${ nameLabel } exists already, we just add it to the issue` ) } catch( error ) { Eif( error.status === 404 ) { console.log( `--- creating label ${ nameLabel }` ) const labelToCreate = { owner: loginRepoOwner, repo: nameRepo, name: nameLabel, color: randomHexaColor(), } if( parentTitle ) { labelToCreate.description = parentTitle } await ghClient.issues.createLabel( labelToCreate ) } else { throw error } } } function randomHexaColor() { return "000000".replace( /0/g, () => { return ( ~~( Math.random() * 16 ) ).toString( 16 ) } ) } module.exports.handleGHUpdate = handleGHUpdate |