Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: ✨ Metadata + license validators + bug patches #107

Merged
merged 81 commits into from
Dec 2, 2024
Merged

Conversation

slugb0t
Copy link
Member

@slugb0t slugb0t commented Nov 20, 2024

Summary by Sourcery

Implement metadata and license validation features, including re-validation through the UI, and enhance metadata processing and validation for codemeta.json and CITATION.cff files. Fix CWL file filtering issues and update build requirements to include jsonschema.

New Features:

  • Introduce metadata and license validation capabilities, allowing for re-validation of metadata files and licenses through the UI.
  • Add support for validating codemeta.json and CITATION.cff files using a new schema and validation endpoints.

Bug Fixes:

  • Fix issues related to filtering what is considered a CWL file in the repository.

Enhancements:

  • Improve metadata handling by introducing functions to convert and apply metadata from CITATION.cff and codemeta.json files to the database.
  • Enhance the validation process for metadata files by integrating external validation services and storing validation messages in the database.

Build:

  • Add jsonschema to the validator's requirements to support JSON schema validation.

slugb0t and others added 30 commits October 17, 2024 10:52
* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata
@slugb0t
Copy link
Member Author

slugb0t commented Nov 22, 2024

@sourcery-ai review

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @slugb0t - I've reviewed your changes and found some issues that need to be addressed.

Blocking issues:

  • The function name convertMetadataForDB was renamed but this reference wasn't updated (link)

Overall Comments:

  • Consider adding more specific error messages in the validation endpoints to help users better understand and fix validation failures
Here's what I looked at during the review
  • 🔴 General issues: 1 blocking issue, 2 other issues
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟡 Complexity: 1 issue found
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@@ -270,6 +296,13 @@ export async function gatherMetadata(context, owner, repo) {
return codeMeta;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): The function name convertMetadataForDB was renamed but this reference wasn't updated

This will cause a runtime error since the function was renamed to convertCodemetaForDB. Update this reference to use the new name.


### Added

- Introducde metadata and license validation capabilities, allows for re-validation of metadata files and licenses through the UI.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick (typo): There's a typo in 'Introducde' - should be 'Introduce'


## Fixed

- Fixed issues related to filtering what is consider a cwl file in the repository.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick (typo): Grammatical error: 'what is consider' should be 'what is considered'

metadata.runtimePlatform = convertedCodemeta.runtimePlatform || metadata.runtimePlatform || [];
metadata.uniqueIdentifier = convertedCodemeta.uniqueIdentifier || metadata.uniqueIdentifier || "";

if (metadata.authors) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (complexity): Consider extracting a reusable helper function for merging author metadata to reduce code duplication.

The author merging logic in applyCodemetaMetadata and applyCitationMetadata could be simplified by extracting a reusable helper function:

function mergeAuthors(existingAuthors, newAuthors) {
  const merged = [...existingAuthors];

  newAuthors.forEach(newAuthor => {
    const existingIdx = merged.findIndex(existing => 
      existing.familyName === newAuthor.familyName && 
      existing.givenName === newAuthor.givenName
    );

    if (existingIdx >= 0) {
      // Update existing author
      merged[existingIdx] = {
        ...merged[existingIdx],
        affiliation: merged[existingIdx].affiliation || newAuthor.affiliation || "",
        email: merged[existingIdx].email || newAuthor.email || "",
        roles: merged[existingIdx].roles || newAuthor.roles || [],
        uri: merged[existingIdx].uri || newAuthor.uri || ""
      };
    } else {
      // Add new author with defaults
      merged.push({
        ...newAuthor,
        affiliation: newAuthor.affiliation || "",
        email: newAuthor.email || "",
        roles: newAuthor.roles || [],
        uri: newAuthor.uri || ""
      });
    }
  });

  return merged;
}

This simplifies the author merging in both metadata functions to a single line:

metadata.authors = mergeAuthors(metadata.authors, convertedCodemeta.authors);

The helper function handles all the author matching, field merging and defaults in one place, making the code more maintainable while preserving the exact same functionality.

bot/cwl/index.js Outdated
Comment on lines 75 to 88
if (existingCWL) {
// TODO: Check for removed files
// // Check for removed files
// const removedFiles = existingCWL.files.filter((file) => {
// return !cwlFiles.some((newFile) => newFile.path === file.path)
// });

// if (removedFiles.length > 0) {
// cwlObject.removed_files = removedFiles.map((file) => file.path);
// }
if (existingCWL?.contains_cwl_files) {
cwlObject.contains_cwl_files = existingCWL.contains_cwl_files;
}
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (code-quality): Merge nested if conditions (merge-nested-ifs)

Suggested change
if (existingCWL) {
// TODO: Check for removed files
// // Check for removed files
// const removedFiles = existingCWL.files.filter((file) => {
// return !cwlFiles.some((newFile) => newFile.path === file.path)
// });
// if (removedFiles.length > 0) {
// cwlObject.removed_files = removedFiles.map((file) => file.path);
// }
if (existingCWL?.contains_cwl_files) {
cwlObject.contains_cwl_files = existingCWL.contains_cwl_files;
}
}
if (existingCWL && existingCWL?.contains_cwl_files) {
cwlObject.contains_cwl_files = existingCWL.contains_cwl_files;
}


ExplanationReading deeply nested conditional code is confusing, since you have to keep track of which
conditions relate to which levels. We therefore strive to reduce nesting where
possible, and the situation where two if conditions can be combined using
and is an easy win.

bot/index.js Outdated
}
})

const license = licenseRequest.data.license ? true : false;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (code-quality): Avoid unneeded ternary statements (simplify-ternary)

Suggested change
const license = licenseRequest.data.license ? true : false;
const license = !!licenseRequest.data.license;


ExplanationIt is possible to simplify certain ternary statements into either use of an || or !.
This makes the code easier to read, since there is no conditional logic.

Comment on lines 622 to 642
if (metadata.authors) {
// consola.info("metadata.authors", metadata.authors);
// consola.info("convertedCodemeta.authors", convertedCodemeta.authors);
// Check if authors are already in the metadata, if so update the details of the author
if (convertedCodemeta.authors.length > 0) {
const updatedAuthors = convertedCodemeta.authors.map((author) => {
const foundAuthor = metadata.authors.find((newAuthor) => newAuthor?.familyName === author?.familyName && newAuthor.givenName === author.givenName);
if (foundAuthor) {
// consola.info("Found author:", foundAuthor);
author.affiliation = foundAuthor.affiliation || author.affiliation || "";
author.email = foundAuthor.email || author.email || "";
author.roles = foundAuthor.roles || author.roles || [];
author.uri = foundAuthor.uri || author.uri || "";
}
return author;
});

// join the updated authors with the remaining authors
metadata.authors = updatedAuthors;
}
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (code-quality): Merge nested if conditions (merge-nested-ifs)

Suggested change
if (metadata.authors) {
// consola.info("metadata.authors", metadata.authors);
// consola.info("convertedCodemeta.authors", convertedCodemeta.authors);
// Check if authors are already in the metadata, if so update the details of the author
if (convertedCodemeta.authors.length > 0) {
const updatedAuthors = convertedCodemeta.authors.map((author) => {
const foundAuthor = metadata.authors.find((newAuthor) => newAuthor?.familyName === author?.familyName && newAuthor.givenName === author.givenName);
if (foundAuthor) {
// consola.info("Found author:", foundAuthor);
author.affiliation = foundAuthor.affiliation || author.affiliation || "";
author.email = foundAuthor.email || author.email || "";
author.roles = foundAuthor.roles || author.roles || [];
author.uri = foundAuthor.uri || author.uri || "";
}
return author;
});
// join the updated authors with the remaining authors
metadata.authors = updatedAuthors;
}
}
if (metadata.authors && convertedCodemeta.authors.length > 0) {
const updatedAuthors = convertedCodemeta.authors.map((author) => {
const foundAuthor = metadata.authors.find((newAuthor) => newAuthor?.familyName === author?.familyName && newAuthor.givenName === author.givenName);
if (foundAuthor) {
// consola.info("Found author:", foundAuthor);
author.affiliation = foundAuthor.affiliation || author.affiliation || "";
author.email = foundAuthor.email || author.email || "";
author.roles = foundAuthor.roles || author.roles || [];
author.uri = foundAuthor.uri || author.uri || "";
}
return author;
});
// join the updated authors with the remaining authors
metadata.authors = updatedAuthors;
}


ExplanationReading deeply nested conditional code is confusing, since you have to keep track of which
conditions relate to which levels. We therefore strive to reduce nesting where
possible, and the situation where two if conditions can be combined using
and is an easy win.

Comment on lines 644 to 660
if (metadata.contributors) {
// Check if contributors are already in the metadata, if so update the details of the contributor
if (convertedCodemeta.contributors.length > 0) {
const updatedContributors = convertedCodemeta.contributors.map((contributor) => {
const foundContributor = metadata.contributors.find((newContributor) => newContributor.familyName === contributor.familyName && newContributor.givenName === contributor.givenName);
if (foundContributor) {
contributor.affiliation = foundContributor.affiliation || contributor.affiliation || "";
contributor.email = foundContributor.email || contributor.email || "";
contributor.roles = foundContributor.roles || contributor.roles || [];
contributor.uri = foundContributor.uri || contributor.uri || "";
}
return contributor;
});

metadata.contributors = updatedContributors;
}
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (code-quality): Merge nested if conditions (merge-nested-ifs)

Suggested change
if (metadata.contributors) {
// Check if contributors are already in the metadata, if so update the details of the contributor
if (convertedCodemeta.contributors.length > 0) {
const updatedContributors = convertedCodemeta.contributors.map((contributor) => {
const foundContributor = metadata.contributors.find((newContributor) => newContributor.familyName === contributor.familyName && newContributor.givenName === contributor.givenName);
if (foundContributor) {
contributor.affiliation = foundContributor.affiliation || contributor.affiliation || "";
contributor.email = foundContributor.email || contributor.email || "";
contributor.roles = foundContributor.roles || contributor.roles || [];
contributor.uri = foundContributor.uri || contributor.uri || "";
}
return contributor;
});
metadata.contributors = updatedContributors;
}
}
if (metadata.contributors && convertedCodemeta.contributors.length > 0) {
const updatedContributors = convertedCodemeta.contributors.map((contributor) => {
const foundContributor = metadata.contributors.find((newContributor) => newContributor.familyName === contributor.familyName && newContributor.givenName === contributor.givenName);
if (foundContributor) {
contributor.affiliation = foundContributor.affiliation || contributor.affiliation || "";
contributor.email = foundContributor.email || contributor.email || "";
contributor.roles = foundContributor.roles || contributor.roles || [];
contributor.uri = foundContributor.uri || contributor.uri || "";
}
return contributor;
});
metadata.contributors = updatedContributors;
}


ExplanationReading deeply nested conditional code is confusing, since you have to keep track of which
conditions relate to which levels. We therefore strive to reduce nesting where
possible, and the situation where two if conditions can be combined using
and is an easy win.

Comment on lines 679 to 709
if (convertedCitation.authors) {
// Check if the authors are already in the metadata, if so update the details of the author
if (metadata.authors.length > 0) {
const updatedAuthors = metadata.authors.map((author) => {
const foundAuthor = convertedCitation.authors.find((newAuthor) => newAuthor.familyName === author.familyName && newAuthor.givenName === author.givenName);
if (foundAuthor) {
author.affiliation = author.affiliation || foundAuthor.affiliation || "";
author.email = author.email || foundAuthor.email || "";

// Remove author from convertedCitation.authors
const index = convertedCitation.authors.indexOf(foundAuthor);
if (index > -1) {
convertedCitation.authors.splice(index, 1);
}
}

return author;
});

// Apply the missings fields to the remaining convertedCitation.authors
convertedCitation.authors = convertedCitation.authors.map((author) => {
author.affiliation = author.affiliation || "";
author.email = author.email || "";
author.roles = author.roles || [];
author.uri = author.uri || "";
return author;
});

metadata.authors = updatedAuthors.concat(convertedCitation.authors);
}
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (code-quality): Merge nested if conditions (merge-nested-ifs)

Suggested change
if (convertedCitation.authors) {
// Check if the authors are already in the metadata, if so update the details of the author
if (metadata.authors.length > 0) {
const updatedAuthors = metadata.authors.map((author) => {
const foundAuthor = convertedCitation.authors.find((newAuthor) => newAuthor.familyName === author.familyName && newAuthor.givenName === author.givenName);
if (foundAuthor) {
author.affiliation = author.affiliation || foundAuthor.affiliation || "";
author.email = author.email || foundAuthor.email || "";
// Remove author from convertedCitation.authors
const index = convertedCitation.authors.indexOf(foundAuthor);
if (index > -1) {
convertedCitation.authors.splice(index, 1);
}
}
return author;
});
// Apply the missings fields to the remaining convertedCitation.authors
convertedCitation.authors = convertedCitation.authors.map((author) => {
author.affiliation = author.affiliation || "";
author.email = author.email || "";
author.roles = author.roles || [];
author.uri = author.uri || "";
return author;
});
metadata.authors = updatedAuthors.concat(convertedCitation.authors);
}
}
if (convertedCitation.authors && metadata.authors.length > 0) {
const updatedAuthors = metadata.authors.map((author) => {
const foundAuthor = convertedCitation.authors.find((newAuthor) => newAuthor.familyName === author.familyName && newAuthor.givenName === author.givenName);
if (foundAuthor) {
author.affiliation = author.affiliation || foundAuthor.affiliation || "";
author.email = author.email || foundAuthor.email || "";
// Remove author from convertedCitation.authors
const index = convertedCitation.authors.indexOf(foundAuthor);
if (index > -1) {
convertedCitation.authors.splice(index, 1);
}
}
return author;
});
// Apply the missings fields to the remaining convertedCitation.authors
convertedCitation.authors = convertedCitation.authors.map((author) => {
author.affiliation = author.affiliation || "";
author.email = author.email || "";
author.roles = author.roles || [];
author.uri = author.uri || "";
return author;
});
metadata.authors = updatedAuthors.concat(convertedCitation.authors);
}


ExplanationReading deeply nested conditional code is confusing, since you have to keep track of which
conditions relate to which levels. We therefore strive to reduce nesting where
possible, and the situation where two if conditions can be combined using
and is an easy win.

try:
file_content = json.loads(file_content)
except Exception as e:
return {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): We've found these issues:

Copy link

Thanks for making updates to your pull request. Our team will take a look and provide feedback as soon as possible. Please wait for any GitHub Actions to complete before editing your pull request. If you have any additional questions or concerns, feel free to let us know. Thank you for your contributions!

@slugb0t slugb0t merged commit 96d4e82 into staging Dec 2, 2024
Copy link

Thanks for closing this pull request! If you have any further questions, please feel free to open a new issue. We are always happy to help!

slugb0t added a commit that referenced this pull request Dec 10, 2024
* refactor: ♻️ transfer validation api to codefair repo (#106)

* 🚚 chore: rename `validator-api` to `validator`

* 👷 ci: add validator deploy

* 👷 ci: add validator healthcheck

* 👷 ci: add validator deploy for prod

* refactor: ♻️ update codefair name

* feat: ✨ Metadata + license validators + bug patches (#107)

* merge: 🔀 merge main to staging

* refactor: ♻️ 🐛 Codefair 3.1.0 (#89)

* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: ♻️ safety checks for protected middleware

* refacotr: ♻️ update protectRoute to redirect to login when no user or session

* feat: :fix: redirect to login if not signed in

* refactor: ♻️ remove import

* chore: 🔊 🔨 remove logs

* docs: 📝 update changelog

* fix: 🐛 check license content all times

* fix: 🐛 update on zenodo ui page

* feat: ✨ delete branch after pr has been closed/merged

* chore: 🔨 spacing in changelog

* wip: 🚧 individual validation requests for license and metadata

* feat: ✨ license validation endpoint

* wip: 🚧 creating updated metadata validation

* wip: 🚧 patches for metadata revalidation workflow

* wip: 🚧 validation for codemeta

* doc: 🔖 jsdoc comments on fns

* fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata

* fix: 🐛 preserve authors and contributors from codemeta

* feat: ✨ re-validated codemeta from repo dashboard

* fix: 🐛 await metadata validation

* feat: ✨ codemeta validation extended with microservice validator

* refactor: ♻️ update timestamps to be unix format

* feat: ✨ clean privatekey env before use

* refactor: ♻️ update cwl validation endpoint

* wip: 🚧 send validation message to db

* feat: ✨ create migrations for metadata validation messages

* wip: 🚧 creating json schema for codemeta.json validations

* 👷 ci: setup deployment environments (#101)

* 👷 ci: setup for staging env (#103)

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: slugb0t <wheresdorian@gmail.com>
fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 adjust env variables used after env changes

* 👷 ci: cleanup dockerfile

* feat: ✨ codemeta schema first draft

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: cleanup dockerfile

* 👷 ci: fix staging deploys (#104)

* wip: 🚧 abstracting cwl workflow

* refactor: ♻️ update codemeta schema to validate against the raw codemeta.json files

* refactor: ♻️ update codemeta schema for additional fields

* feat: ✨ validating raw content of codemeta.json file for 3.0

* refactor: ♻️ create required fields for codemeta schema

* wip: 🚧 testing validation responses for db

* handle codemeta.json 3.0 and 2.0 versioning

* fix: 🐛 correct branch watch for staging deployment action

* doc: 🔖 update changelog for 3.2.0 release

* feat: ✨ align bot prisma with ui

* fix: 🐛 bug patch for cwl workflow

* feat: ✨ metadata workflow update

* refactor: ♻️ preserving authors and contributors

* wip: 🚧 update the metadata workflow after discussions

* fix: 🐛 don't create cwlobject twice

* refactor: ♻️ send 200 status when invalid codemeta

* refactor: ♻️ update codemeta validation schema

* refactor: ♻️ do not revalidate metadata files for push events unless metadata files are updated themselves

* wip: 🚧 seperate rerun validation with regather information

* wip: 🚧 remove command from issue dashboard if error occurs (allows retry)

* refactor: ♻️ update the issue body after successful validation (remove the command from the issue body)

* refactor: ♻️ add additional key to codemeta schema

* refactor: ♻️ remove the regather options from the UI as validation is still needed when regathering

* fix: 🐛 pr button updated with new links

* fix: 🐛 patch variable declaration not in scope

* refactor: ♻️ update on the dropdown icons

* refactor: ♻️ update the keys of the cwl object

* refactor: ♻️ update the getcwlfiles function

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* fix: 🐛 use the correct env variable for private key

* fix: 🐛 Codefair v3.2.0 finalization (#113)

* fix: 🐛 correct cwlObject variables in push event

* fix: 🐛 better error message in metadata workflow + collect missing fields from codemeta.json

* fix: 🐛 apply await to async function call

* refactor: ♻️ removed unused imports

* refactor: ♻️ add try catch in then statement of promise

* fix: 🐛 missing fields in codemeta gathering + add error handling for convertCitationForDB fn

* refactor: ♻️ add try catch to renderer to preserve errors

* fix: 🐛 preserve metadata validation results in db

* wip: 🚧 validation results being displayed through the repo dashboard

* wip: 🚧 displaying metadata validation results in seperate pages

* feat: ✨ validation page for codemeta

* fix: 🐛 patch fundingCode not being preserved from codemeta

* wip: 🚧 final design for validation results

* feat: ✨ add view validation results conditionally

* test: ⚗️ ensuring validation progresses accordingly

* feat: ✨ popover messages for metadata badges

* feat: ✨ if metadata file fails to parse then update validation message

* fix: 🐛 update schema to handle 2.0 and 3.0 authors

* style: 🎨 formatting

* fix: 🐛 add releaseNotes key to schema for 3.0 versions

* refactor: ✏️ change wording

* fix: 🐛 validate metadata file that was updated only on push events

* chore: 📝 remove test logs

* fix: 🐛 migrate db during deployment

* fix: 🐛 revert

* fix: 🐛 typo on dockerfile

* refactor: ♻️ use npm instead of yarn for migration

* refactor: ♻️ access db url during prisma build

* refactor: ♻️ apply node env

* 💚 ci: copy package json

* 💚 ci: revert arg

* 💚 ci: add prisma migrate to ci

* 💚 ci: add prisma migrate to ci

* 👷 ci: update dockerfile

* refactor: ♻️ use deployed validator

* fix: 🐛 when license is updated validate metadata files

* fix: 🐛 validation returns codemeta version on errors

* 🐛 fix: add basic logwatch

* fix: 🐛 add @type key for 2.0 codemeta.json files

* refactor: ♻️ updated required fields for codemeta schmea

* 🐛 fix: add logwatch support

* 🐛 fix: add json to logwatch

* fix: 🐛 patch json parse issue

* fix: 🐛 update logging parameters

* refactor: ♻️ point a folder above for codemeta-schema

* refactor: ♻️ update dockerfile to include schema

* fix: 🐛 ensure authors have roles key

* refactor: ♻️ 🔊 convert some consola logs to logwatch

* fix: 🐛 roles are optional in save request

* chore: 🔊 remove dev logs

* doc: 📝 update changelog

* refactor: ♻️ revert roles key being optional

* fix: 🐛 add logwatch.start method

* fix: 🐛 ensure contrib and authros have roles

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
slugb0t added a commit that referenced this pull request Dec 10, 2024
* refactor: ♻️ transfer validation api to codefair repo (#106)

* 🚚 chore: rename `validator-api` to `validator`

* 👷 ci: add validator deploy

* 👷 ci: add validator healthcheck

* 👷 ci: add validator deploy for prod

* refactor: ♻️ update codefair name

* feat: ✨ Metadata + license validators + bug patches (#107)

* merge: 🔀 merge main to staging

* refactor: ♻️ 🐛 Codefair 3.1.0 (#89)

* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: ♻️ safety checks for protected middleware

* refacotr: ♻️ update protectRoute to redirect to login when no user or session

* feat: :fix: redirect to login if not signed in

* refactor: ♻️ remove import

* chore: 🔊 🔨 remove logs

* docs: 📝 update changelog

* fix: 🐛 check license content all times

* fix: 🐛 update on zenodo ui page

* feat: ✨ delete branch after pr has been closed/merged

* chore: 🔨 spacing in changelog

* wip: 🚧 individual validation requests for license and metadata

* feat: ✨ license validation endpoint

* wip: 🚧 creating updated metadata validation

* wip: 🚧 patches for metadata revalidation workflow

* wip: 🚧 validation for codemeta

* doc: 🔖 jsdoc comments on fns

* fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata

* fix: 🐛 preserve authors and contributors from codemeta

* feat: ✨ re-validated codemeta from repo dashboard

* fix: 🐛 await metadata validation

* feat: ✨ codemeta validation extended with microservice validator

* refactor: ♻️ update timestamps to be unix format

* feat: ✨ clean privatekey env before use

* refactor: ♻️ update cwl validation endpoint

* wip: 🚧 send validation message to db

* feat: ✨ create migrations for metadata validation messages

* wip: 🚧 creating json schema for codemeta.json validations

* 👷 ci: setup deployment environments (#101)

* 👷 ci: setup for staging env (#103)

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: slugb0t <wheresdorian@gmail.com>
fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 adjust env variables used after env changes

* 👷 ci: cleanup dockerfile

* feat: ✨ codemeta schema first draft

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: cleanup dockerfile

* 👷 ci: fix staging deploys (#104)

* wip: 🚧 abstracting cwl workflow

* refactor: ♻️ update codemeta schema to validate against the raw codemeta.json files

* refactor: ♻️ update codemeta schema for additional fields

* feat: ✨ validating raw content of codemeta.json file for 3.0

* refactor: ♻️ create required fields for codemeta schema

* wip: 🚧 testing validation responses for db

* handle codemeta.json 3.0 and 2.0 versioning

* fix: 🐛 correct branch watch for staging deployment action

* doc: 🔖 update changelog for 3.2.0 release

* feat: ✨ align bot prisma with ui

* fix: 🐛 bug patch for cwl workflow

* feat: ✨ metadata workflow update

* refactor: ♻️ preserving authors and contributors

* wip: 🚧 update the metadata workflow after discussions

* fix: 🐛 don't create cwlobject twice

* refactor: ♻️ send 200 status when invalid codemeta

* refactor: ♻️ update codemeta validation schema

* refactor: ♻️ do not revalidate metadata files for push events unless metadata files are updated themselves

* wip: 🚧 seperate rerun validation with regather information

* wip: 🚧 remove command from issue dashboard if error occurs (allows retry)

* refactor: ♻️ update the issue body after successful validation (remove the command from the issue body)

* refactor: ♻️ add additional key to codemeta schema

* refactor: ♻️ remove the regather options from the UI as validation is still needed when regathering

* fix: 🐛 pr button updated with new links

* fix: 🐛 patch variable declaration not in scope

* refactor: ♻️ update on the dropdown icons

* refactor: ♻️ update the keys of the cwl object

* refactor: ♻️ update the getcwlfiles function

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* fix: 🐛 use the correct env variable for private key

* fix: 🐛 Codefair v3.2.0 finalization (#113)

* fix: 🐛 correct cwlObject variables in push event

* fix: 🐛 better error message in metadata workflow + collect missing fields from codemeta.json

* fix: 🐛 apply await to async function call

* refactor: ♻️ removed unused imports

* refactor: ♻️ add try catch in then statement of promise

* fix: 🐛 missing fields in codemeta gathering + add error handling for convertCitationForDB fn

* refactor: ♻️ add try catch to renderer to preserve errors

* fix: 🐛 preserve metadata validation results in db

* wip: 🚧 validation results being displayed through the repo dashboard

* wip: 🚧 displaying metadata validation results in seperate pages

* feat: ✨ validation page for codemeta

* fix: 🐛 patch fundingCode not being preserved from codemeta

* wip: 🚧 final design for validation results

* feat: ✨ add view validation results conditionally

* test: ⚗️ ensuring validation progresses accordingly

* feat: ✨ popover messages for metadata badges

* feat: ✨ if metadata file fails to parse then update validation message

* fix: 🐛 update schema to handle 2.0 and 3.0 authors

* style: 🎨 formatting

* fix: 🐛 add releaseNotes key to schema for 3.0 versions

* refactor: ✏️ change wording

* fix: 🐛 validate metadata file that was updated only on push events

* chore: 📝 remove test logs

* fix: 🐛 migrate db during deployment

* fix: 🐛 revert

* fix: 🐛 typo on dockerfile

* refactor: ♻️ use npm instead of yarn for migration

* refactor: ♻️ access db url during prisma build

* refactor: ♻️ apply node env

* 💚 ci: copy package json

* 💚 ci: revert arg

* 💚 ci: add prisma migrate to ci

* 💚 ci: add prisma migrate to ci

* 👷 ci: update dockerfile

* refactor: ♻️ use deployed validator

* fix: 🐛 when license is updated validate metadata files

* fix: 🐛 validation returns codemeta version on errors

* 🐛 fix: add basic logwatch

* fix: 🐛 add @type key for 2.0 codemeta.json files

* refactor: ♻️ updated required fields for codemeta schmea

* 🐛 fix: add logwatch support

* 🐛 fix: add json to logwatch

* fix: 🐛 patch json parse issue

* fix: 🐛 update logging parameters

* refactor: ♻️ point a folder above for codemeta-schema

* refactor: ♻️ update dockerfile to include schema

* fix: 🐛 ensure authors have roles key

* refactor: ♻️ 🔊 convert some consola logs to logwatch

* fix: 🐛 roles are optional in save request

* chore: 🔊 remove dev logs

* doc: 📝 update changelog

* refactor: ♻️ revert roles key being optional

* fix: 🐛 add logwatch.start method

* fix: 🐛 ensure contrib and authros have roles

* fix: 🐛 CWL handles multiple installations

* refactor: ♻️ update log error

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
slugb0t added a commit that referenced this pull request Dec 11, 2024
…in (#116)

* refactor: ♻️ transfer validation api to codefair repo (#106)

* 🚚 chore: rename `validator-api` to `validator`

* 👷 ci: add validator deploy

* 👷 ci: add validator healthcheck

* 👷 ci: add validator deploy for prod

* refactor: ♻️ update codefair name

* feat: ✨ Metadata + license validators + bug patches (#107)

* merge: 🔀 merge main to staging

* refactor: ♻️ 🐛 Codefair 3.1.0 (#89)

* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: ♻️ safety checks for protected middleware

* refacotr: ♻️ update protectRoute to redirect to login when no user or session

* feat: :fix: redirect to login if not signed in

* refactor: ♻️ remove import

* chore: 🔊 🔨 remove logs

* docs: 📝 update changelog

* fix: 🐛 check license content all times

* fix: 🐛 update on zenodo ui page

* feat: ✨ delete branch after pr has been closed/merged

* chore: 🔨 spacing in changelog

* wip: 🚧 individual validation requests for license and metadata

* feat: ✨ license validation endpoint

* wip: 🚧 creating updated metadata validation

* wip: 🚧 patches for metadata revalidation workflow

* wip: 🚧 validation for codemeta

* doc: 🔖 jsdoc comments on fns

* fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata

* fix: 🐛 preserve authors and contributors from codemeta

* feat: ✨ re-validated codemeta from repo dashboard

* fix: 🐛 await metadata validation

* feat: ✨ codemeta validation extended with microservice validator

* refactor: ♻️ update timestamps to be unix format

* feat: ✨ clean privatekey env before use

* refactor: ♻️ update cwl validation endpoint

* wip: 🚧 send validation message to db

* feat: ✨ create migrations for metadata validation messages

* wip: 🚧 creating json schema for codemeta.json validations

* 👷 ci: setup deployment environments (#101)

* 👷 ci: setup for staging env (#103)

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: slugb0t <wheresdorian@gmail.com>
fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 adjust env variables used after env changes

* 👷 ci: cleanup dockerfile

* feat: ✨ codemeta schema first draft

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: cleanup dockerfile

* 👷 ci: fix staging deploys (#104)

* wip: 🚧 abstracting cwl workflow

* refactor: ♻️ update codemeta schema to validate against the raw codemeta.json files

* refactor: ♻️ update codemeta schema for additional fields

* feat: ✨ validating raw content of codemeta.json file for 3.0

* refactor: ♻️ create required fields for codemeta schema

* wip: 🚧 testing validation responses for db

* handle codemeta.json 3.0 and 2.0 versioning

* fix: 🐛 correct branch watch for staging deployment action

* doc: 🔖 update changelog for 3.2.0 release

* feat: ✨ align bot prisma with ui

* fix: 🐛 bug patch for cwl workflow

* feat: ✨ metadata workflow update

* refactor: ♻️ preserving authors and contributors

* wip: 🚧 update the metadata workflow after discussions

* fix: 🐛 don't create cwlobject twice

* refactor: ♻️ send 200 status when invalid codemeta

* refactor: ♻️ update codemeta validation schema

* refactor: ♻️ do not revalidate metadata files for push events unless metadata files are updated themselves

* wip: 🚧 seperate rerun validation with regather information

* wip: 🚧 remove command from issue dashboard if error occurs (allows retry)

* refactor: ♻️ update the issue body after successful validation (remove the command from the issue body)

* refactor: ♻️ add additional key to codemeta schema

* refactor: ♻️ remove the regather options from the UI as validation is still needed when regathering

* fix: 🐛 pr button updated with new links

* fix: 🐛 patch variable declaration not in scope

* refactor: ♻️ update on the dropdown icons

* refactor: ♻️ update the keys of the cwl object

* refactor: ♻️ update the getcwlfiles function

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* fix: 🐛 use the correct env variable for private key

* fix: 🐛 Codefair v3.2.0 finalization (#113)

* fix: 🐛 correct cwlObject variables in push event

* fix: 🐛 better error message in metadata workflow + collect missing fields from codemeta.json

* fix: 🐛 apply await to async function call

* refactor: ♻️ removed unused imports

* refactor: ♻️ add try catch in then statement of promise

* fix: 🐛 missing fields in codemeta gathering + add error handling for convertCitationForDB fn

* refactor: ♻️ add try catch to renderer to preserve errors

* fix: 🐛 preserve metadata validation results in db

* wip: 🚧 validation results being displayed through the repo dashboard

* wip: 🚧 displaying metadata validation results in seperate pages

* feat: ✨ validation page for codemeta

* fix: 🐛 patch fundingCode not being preserved from codemeta

* wip: 🚧 final design for validation results

* feat: ✨ add view validation results conditionally

* test: ⚗️ ensuring validation progresses accordingly

* feat: ✨ popover messages for metadata badges

* feat: ✨ if metadata file fails to parse then update validation message

* fix: 🐛 update schema to handle 2.0 and 3.0 authors

* style: 🎨 formatting

* fix: 🐛 add releaseNotes key to schema for 3.0 versions

* refactor: ✏️ change wording

* fix: 🐛 validate metadata file that was updated only on push events

* chore: 📝 remove test logs

* fix: 🐛 migrate db during deployment

* fix: 🐛 revert

* fix: 🐛 typo on dockerfile

* refactor: ♻️ use npm instead of yarn for migration

* refactor: ♻️ access db url during prisma build

* refactor: ♻️ apply node env

* 💚 ci: copy package json

* 💚 ci: revert arg

* 💚 ci: add prisma migrate to ci

* 💚 ci: add prisma migrate to ci

* 👷 ci: update dockerfile

* refactor: ♻️ use deployed validator

* fix: 🐛 when license is updated validate metadata files

* fix: 🐛 validation returns codemeta version on errors

* 🐛 fix: add basic logwatch

* fix: 🐛 add @type key for 2.0 codemeta.json files

* refactor: ♻️ updated required fields for codemeta schmea

* 🐛 fix: add logwatch support

* 🐛 fix: add json to logwatch

* fix: 🐛 patch json parse issue

* fix: 🐛 update logging parameters

* refactor: ♻️ point a folder above for codemeta-schema

* refactor: ♻️ update dockerfile to include schema

* fix: 🐛 ensure authors have roles key

* refactor: ♻️ 🔊 convert some consola logs to logwatch

* fix: 🐛 roles are optional in save request

* chore: 🔊 remove dev logs

* doc: 📝 update changelog

* refactor: ♻️ revert roles key being optional

* fix: 🐛 add logwatch.start method

* fix: 🐛 ensure contrib and authros have roles

* fix: 🐛 CWL handles multiple installations

* refactor: ♻️ update log error

* feat: ✨ purge zenodo token when sign in is required

* fix: 🐛 make login fn asyncronous

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
slugb0t added a commit that referenced this pull request Dec 11, 2024
* refactor: ♻️ transfer validation api to codefair repo (#106)

* 🚚 chore: rename `validator-api` to `validator`

* 👷 ci: add validator deploy

* 👷 ci: add validator healthcheck

* 👷 ci: add validator deploy for prod

* refactor: ♻️ update codefair name

* feat: ✨ Metadata + license validators + bug patches (#107)

* merge: 🔀 merge main to staging

* refactor: ♻️ 🐛 Codefair 3.1.0 (#89)

* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: ♻️ safety checks for protected middleware

* refacotr: ♻️ update protectRoute to redirect to login when no user or session

* feat: :fix: redirect to login if not signed in

* refactor: ♻️ remove import

* chore: 🔊 🔨 remove logs

* docs: 📝 update changelog

* fix: 🐛 check license content all times

* fix: 🐛 update on zenodo ui page

* feat: ✨ delete branch after pr has been closed/merged

* chore: 🔨 spacing in changelog

* wip: 🚧 individual validation requests for license and metadata

* feat: ✨ license validation endpoint

* wip: 🚧 creating updated metadata validation

* wip: 🚧 patches for metadata revalidation workflow

* wip: 🚧 validation for codemeta

* doc: 🔖 jsdoc comments on fns

* fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata

* fix: 🐛 preserve authors and contributors from codemeta

* feat: ✨ re-validated codemeta from repo dashboard

* fix: 🐛 await metadata validation

* feat: ✨ codemeta validation extended with microservice validator

* refactor: ♻️ update timestamps to be unix format

* feat: ✨ clean privatekey env before use

* refactor: ♻️ update cwl validation endpoint

* wip: 🚧 send validation message to db

* feat: ✨ create migrations for metadata validation messages

* wip: 🚧 creating json schema for codemeta.json validations

* 👷 ci: setup deployment environments (#101)

* 👷 ci: setup for staging env (#103)

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: slugb0t <wheresdorian@gmail.com>
fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 adjust env variables used after env changes

* 👷 ci: cleanup dockerfile

* feat: ✨ codemeta schema first draft

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: cleanup dockerfile

* 👷 ci: fix staging deploys (#104)

* wip: 🚧 abstracting cwl workflow

* refactor: ♻️ update codemeta schema to validate against the raw codemeta.json files

* refactor: ♻️ update codemeta schema for additional fields

* feat: ✨ validating raw content of codemeta.json file for 3.0

* refactor: ♻️ create required fields for codemeta schema

* wip: 🚧 testing validation responses for db

* handle codemeta.json 3.0 and 2.0 versioning

* fix: 🐛 correct branch watch for staging deployment action

* doc: 🔖 update changelog for 3.2.0 release

* feat: ✨ align bot prisma with ui

* fix: 🐛 bug patch for cwl workflow

* feat: ✨ metadata workflow update

* refactor: ♻️ preserving authors and contributors

* wip: 🚧 update the metadata workflow after discussions

* fix: 🐛 don't create cwlobject twice

* refactor: ♻️ send 200 status when invalid codemeta

* refactor: ♻️ update codemeta validation schema

* refactor: ♻️ do not revalidate metadata files for push events unless metadata files are updated themselves

* wip: 🚧 seperate rerun validation with regather information

* wip: 🚧 remove command from issue dashboard if error occurs (allows retry)

* refactor: ♻️ update the issue body after successful validation (remove the command from the issue body)

* refactor: ♻️ add additional key to codemeta schema

* refactor: ♻️ remove the regather options from the UI as validation is still needed when regathering

* fix: 🐛 pr button updated with new links

* fix: 🐛 patch variable declaration not in scope

* refactor: ♻️ update on the dropdown icons

* refactor: ♻️ update the keys of the cwl object

* refactor: ♻️ update the getcwlfiles function

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* fix: 🐛 use the correct env variable for private key

* fix: 🐛 Codefair v3.2.0 finalization (#113)

* fix: 🐛 correct cwlObject variables in push event

* fix: 🐛 better error message in metadata workflow + collect missing fields from codemeta.json

* fix: 🐛 apply await to async function call

* refactor: ♻️ removed unused imports

* refactor: ♻️ add try catch in then statement of promise

* fix: 🐛 missing fields in codemeta gathering + add error handling for convertCitationForDB fn

* refactor: ♻️ add try catch to renderer to preserve errors

* fix: 🐛 preserve metadata validation results in db

* wip: 🚧 validation results being displayed through the repo dashboard

* wip: 🚧 displaying metadata validation results in seperate pages

* feat: ✨ validation page for codemeta

* fix: 🐛 patch fundingCode not being preserved from codemeta

* wip: 🚧 final design for validation results

* feat: ✨ add view validation results conditionally

* test: ⚗️ ensuring validation progresses accordingly

* feat: ✨ popover messages for metadata badges

* feat: ✨ if metadata file fails to parse then update validation message

* fix: 🐛 update schema to handle 2.0 and 3.0 authors

* style: 🎨 formatting

* fix: 🐛 add releaseNotes key to schema for 3.0 versions

* refactor: ✏️ change wording

* fix: 🐛 validate metadata file that was updated only on push events

* chore: 📝 remove test logs

* fix: 🐛 migrate db during deployment

* fix: 🐛 revert

* fix: 🐛 typo on dockerfile

* refactor: ♻️ use npm instead of yarn for migration

* refactor: ♻️ access db url during prisma build

* refactor: ♻️ apply node env

* 💚 ci: copy package json

* 💚 ci: revert arg

* 💚 ci: add prisma migrate to ci

* 💚 ci: add prisma migrate to ci

* 👷 ci: update dockerfile

* refactor: ♻️ use deployed validator

* fix: 🐛 when license is updated validate metadata files

* fix: 🐛 validation returns codemeta version on errors

* 🐛 fix: add basic logwatch

* fix: 🐛 add @type key for 2.0 codemeta.json files

* refactor: ♻️ updated required fields for codemeta schmea

* 🐛 fix: add logwatch support

* 🐛 fix: add json to logwatch

* fix: 🐛 patch json parse issue

* fix: 🐛 update logging parameters

* refactor: ♻️ point a folder above for codemeta-schema

* refactor: ♻️ update dockerfile to include schema

* fix: 🐛 ensure authors have roles key

* refactor: ♻️ 🔊 convert some consola logs to logwatch

* fix: 🐛 roles are optional in save request

* chore: 🔊 remove dev logs

* doc: 📝 update changelog

* refactor: ♻️ revert roles key being optional

* fix: 🐛 add logwatch.start method

* fix: 🐛 ensure contrib and authros have roles

* fix: 🐛 CWL handles multiple installations

* refactor: ♻️ update log error

* feat: ✨ purge zenodo token when sign in is required

* fix: 🐛 make login fn asyncronous

* refactor: 🎨 update spacing and color of validation results button

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
slugb0t added a commit that referenced this pull request Dec 11, 2024
* fix: 🐛 Zenodo callback issue resolved with purging token before sign in (#116)

* refactor: ♻️ transfer validation api to codefair repo (#106)

* 🚚 chore: rename `validator-api` to `validator`

* 👷 ci: add validator deploy

* 👷 ci: add validator healthcheck

* 👷 ci: add validator deploy for prod

* refactor: ♻️ update codefair name

* feat: ✨ Metadata + license validators + bug patches (#107)

* merge: 🔀 merge main to staging

* refactor: ♻️ 🐛 Codefair 3.1.0 (#89)

* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: ♻️ safety checks for protected middleware

* refacotr: ♻️ update protectRoute to redirect to login when no user or session

* feat: :fix: redirect to login if not signed in

* refactor: ♻️ remove import

* chore: 🔊 🔨 remove logs

* docs: 📝 update changelog

* fix: 🐛 check license content all times

* fix: 🐛 update on zenodo ui page

* feat: ✨ delete branch after pr has been closed/merged

* chore: 🔨 spacing in changelog

* wip: 🚧 individual validation requests for license and metadata

* feat: ✨ license validation endpoint

* wip: 🚧 creating updated metadata validation

* wip: 🚧 patches for metadata revalidation workflow

* wip: 🚧 validation for codemeta

* doc: 🔖 jsdoc comments on fns

* fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata

* fix: 🐛 preserve authors and contributors from codemeta

* feat: ✨ re-validated codemeta from repo dashboard

* fix: 🐛 await metadata validation

* feat: ✨ codemeta validation extended with microservice validator

* refactor: ♻️ update timestamps to be unix format

* feat: ✨ clean privatekey env before use

* refactor: ♻️ update cwl validation endpoint

* wip: 🚧 send validation message to db

* feat: ✨ create migrations for metadata validation messages

* wip: 🚧 creating json schema for codemeta.json validations

* 👷 ci: setup deployment environments (#101)

* 👷 ci: setup for staging env (#103)

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: slugb0t <wheresdorian@gmail.com>
fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 adjust env variables used after env changes

* 👷 ci: cleanup dockerfile

* feat: ✨ codemeta schema first draft

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: cleanup dockerfile

* 👷 ci: fix staging deploys (#104)

* wip: 🚧 abstracting cwl workflow

* refactor: ♻️ update codemeta schema to validate against the raw codemeta.json files

* refactor: ♻️ update codemeta schema for additional fields

* feat: ✨ validating raw content of codemeta.json file for 3.0

* refactor: ♻️ create required fields for codemeta schema

* wip: 🚧 testing validation responses for db

* handle codemeta.json 3.0 and 2.0 versioning

* fix: 🐛 correct branch watch for staging deployment action

* doc: 🔖 update changelog for 3.2.0 release

* feat: ✨ align bot prisma with ui

* fix: 🐛 bug patch for cwl workflow

* feat: ✨ metadata workflow update

* refactor: ♻️ preserving authors and contributors

* wip: 🚧 update the metadata workflow after discussions

* fix: 🐛 don't create cwlobject twice

* refactor: ♻️ send 200 status when invalid codemeta

* refactor: ♻️ update codemeta validation schema

* refactor: ♻️ do not revalidate metadata files for push events unless metadata files are updated themselves

* wip: 🚧 seperate rerun validation with regather information

* wip: 🚧 remove command from issue dashboard if error occurs (allows retry)

* refactor: ♻️ update the issue body after successful validation (remove the command from the issue body)

* refactor: ♻️ add additional key to codemeta schema

* refactor: ♻️ remove the regather options from the UI as validation is still needed when regathering

* fix: 🐛 pr button updated with new links

* fix: 🐛 patch variable declaration not in scope

* refactor: ♻️ update on the dropdown icons

* refactor: ♻️ update the keys of the cwl object

* refactor: ♻️ update the getcwlfiles function

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* fix: 🐛 use the correct env variable for private key

* fix: 🐛 Codefair v3.2.0 finalization (#113)

* fix: 🐛 correct cwlObject variables in push event

* fix: 🐛 better error message in metadata workflow + collect missing fields from codemeta.json

* fix: 🐛 apply await to async function call

* refactor: ♻️ removed unused imports

* refactor: ♻️ add try catch in then statement of promise

* fix: 🐛 missing fields in codemeta gathering + add error handling for convertCitationForDB fn

* refactor: ♻️ add try catch to renderer to preserve errors

* fix: 🐛 preserve metadata validation results in db

* wip: 🚧 validation results being displayed through the repo dashboard

* wip: 🚧 displaying metadata validation results in seperate pages

* feat: ✨ validation page for codemeta

* fix: 🐛 patch fundingCode not being preserved from codemeta

* wip: 🚧 final design for validation results

* feat: ✨ add view validation results conditionally

* test: ⚗️ ensuring validation progresses accordingly

* feat: ✨ popover messages for metadata badges

* feat: ✨ if metadata file fails to parse then update validation message

* fix: 🐛 update schema to handle 2.0 and 3.0 authors

* style: 🎨 formatting

* fix: 🐛 add releaseNotes key to schema for 3.0 versions

* refactor: ✏️ change wording

* fix: 🐛 validate metadata file that was updated only on push events

* chore: 📝 remove test logs

* fix: 🐛 migrate db during deployment

* fix: 🐛 revert

* fix: 🐛 typo on dockerfile

* refactor: ♻️ use npm instead of yarn for migration

* refactor: ♻️ access db url during prisma build

* refactor: ♻️ apply node env

* 💚 ci: copy package json

* 💚 ci: revert arg

* 💚 ci: add prisma migrate to ci

* 💚 ci: add prisma migrate to ci

* 👷 ci: update dockerfile

* refactor: ♻️ use deployed validator

* fix: 🐛 when license is updated validate metadata files

* fix: 🐛 validation returns codemeta version on errors

* 🐛 fix: add basic logwatch

* fix: 🐛 add @type key for 2.0 codemeta.json files

* refactor: ♻️ updated required fields for codemeta schmea

* 🐛 fix: add logwatch support

* 🐛 fix: add json to logwatch

* fix: 🐛 patch json parse issue

* fix: 🐛 update logging parameters

* refactor: ♻️ point a folder above for codemeta-schema

* refactor: ♻️ update dockerfile to include schema

* fix: 🐛 ensure authors have roles key

* refactor: ♻️ 🔊 convert some consola logs to logwatch

* fix: 🐛 roles are optional in save request

* chore: 🔊 remove dev logs

* doc: 📝 update changelog

* refactor: ♻️ revert roles key being optional

* fix: 🐛 add logwatch.start method

* fix: 🐛 ensure contrib and authros have roles

* fix: 🐛 CWL handles multiple installations

* refactor: ♻️ update log error

* feat: ✨ purge zenodo token when sign in is required

* fix: 🐛 make login fn asyncronous

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: 🎨 update view validation & edit metadata buttons (#117)

* refactor: ♻️ transfer validation api to codefair repo (#106)

* 🚚 chore: rename `validator-api` to `validator`

* 👷 ci: add validator deploy

* 👷 ci: add validator healthcheck

* 👷 ci: add validator deploy for prod

* refactor: ♻️ update codefair name

* feat: ✨ Metadata + license validators + bug patches (#107)

* merge: 🔀 merge main to staging

* refactor: ♻️ 🐛 Codefair 3.1.0 (#89)

* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: ♻️ safety checks for protected middleware

* refacotr: ♻️ update protectRoute to redirect to login when no user or session

* feat: :fix: redirect to login if not signed in

* refactor: ♻️ remove import

* chore: 🔊 🔨 remove logs

* docs: 📝 update changelog

* fix: 🐛 check license content all times

* fix: 🐛 update on zenodo ui page

* feat: ✨ delete branch after pr has been closed/merged

* chore: 🔨 spacing in changelog

* wip: 🚧 individual validation requests for license and metadata

* feat: ✨ license validation endpoint

* wip: 🚧 creating updated metadata validation

* wip: 🚧 patches for metadata revalidation workflow

* wip: 🚧 validation for codemeta

* doc: 🔖 jsdoc comments on fns

* fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata

* fix: 🐛 preserve authors and contributors from codemeta

* feat: ✨ re-validated codemeta from repo dashboard

* fix: 🐛 await metadata validation

* feat: ✨ codemeta validation extended with microservice validator

* refactor: ♻️ update timestamps to be unix format

* feat: ✨ clean privatekey env before use

* refactor: ♻️ update cwl validation endpoint

* wip: 🚧 send validation message to db

* feat: ✨ create migrations for metadata validation messages

* wip: 🚧 creating json schema for codemeta.json validations

* 👷 ci: setup deployment environments (#101)

* 👷 ci: setup for staging env (#103)

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: slugb0t <wheresdorian@gmail.com>
fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 adjust env variables used after env changes

* 👷 ci: cleanup dockerfile

* feat: ✨ codemeta schema first draft

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: cleanup dockerfile

* 👷 ci: fix staging deploys (#104)

* wip: 🚧 abstracting cwl workflow

* refactor: ♻️ update codemeta schema to validate against the raw codemeta.json files

* refactor: ♻️ update codemeta schema for additional fields

* feat: ✨ validating raw content of codemeta.json file for 3.0

* refactor: ♻️ create required fields for codemeta schema

* wip: 🚧 testing validation responses for db

* handle codemeta.json 3.0 and 2.0 versioning

* fix: 🐛 correct branch watch for staging deployment action

* doc: 🔖 update changelog for 3.2.0 release

* feat: ✨ align bot prisma with ui

* fix: 🐛 bug patch for cwl workflow

* feat: ✨ metadata workflow update

* refactor: ♻️ preserving authors and contributors

* wip: 🚧 update the metadata workflow after discussions

* fix: 🐛 don't create cwlobject twice

* refactor: ♻️ send 200 status when invalid codemeta

* refactor: ♻️ update codemeta validation schema

* refactor: ♻️ do not revalidate metadata files for push events unless metadata files are updated themselves

* wip: 🚧 seperate rerun validation with regather information

* wip: 🚧 remove command from issue dashboard if error occurs (allows retry)

* refactor: ♻️ update the issue body after successful validation (remove the command from the issue body)

* refactor: ♻️ add additional key to codemeta schema

* refactor: ♻️ remove the regather options from the UI as validation is still needed when regathering

* fix: 🐛 pr button updated with new links

* fix: 🐛 patch variable declaration not in scope

* refactor: ♻️ update on the dropdown icons

* refactor: ♻️ update the keys of the cwl object

* refactor: ♻️ update the getcwlfiles function

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* fix: 🐛 use the correct env variable for private key

* fix: 🐛 Codefair v3.2.0 finalization (#113)

* fix: 🐛 correct cwlObject variables in push event

* fix: 🐛 better error message in metadata workflow + collect missing fields from codemeta.json

* fix: 🐛 apply await to async function call

* refactor: ♻️ removed unused imports

* refactor: ♻️ add try catch in then statement of promise

* fix: 🐛 missing fields in codemeta gathering + add error handling for convertCitationForDB fn

* refactor: ♻️ add try catch to renderer to preserve errors

* fix: 🐛 preserve metadata validation results in db

* wip: 🚧 validation results being displayed through the repo dashboard

* wip: 🚧 displaying metadata validation results in seperate pages

* feat: ✨ validation page for codemeta

* fix: 🐛 patch fundingCode not being preserved from codemeta

* wip: 🚧 final design for validation results

* feat: ✨ add view validation results conditionally

* test: ⚗️ ensuring validation progresses accordingly

* feat: ✨ popover messages for metadata badges

* feat: ✨ if metadata file fails to parse then update validation message

* fix: 🐛 update schema to handle 2.0 and 3.0 authors

* style: 🎨 formatting

* fix: 🐛 add releaseNotes key to schema for 3.0 versions

* refactor: ✏️ change wording

* fix: 🐛 validate metadata file that was updated only on push events

* chore: 📝 remove test logs

* fix: 🐛 migrate db during deployment

* fix: 🐛 revert

* fix: 🐛 typo on dockerfile

* refactor: ♻️ use npm instead of yarn for migration

* refactor: ♻️ access db url during prisma build

* refactor: ♻️ apply node env

* 💚 ci: copy package json

* 💚 ci: revert arg

* 💚 ci: add prisma migrate to ci

* 💚 ci: add prisma migrate to ci

* 👷 ci: update dockerfile

* refactor: ♻️ use deployed validator

* fix: 🐛 when license is updated validate metadata files

* fix: 🐛 validation returns codemeta version on errors

* 🐛 fix: add basic logwatch

* fix: 🐛 add @type key for 2.0 codemeta.json files

* refactor: ♻️ updated required fields for codemeta schmea

* 🐛 fix: add logwatch support

* 🐛 fix: add json to logwatch

* fix: 🐛 patch json parse issue

* fix: 🐛 update logging parameters

* refactor: ♻️ point a folder above for codemeta-schema

* refactor: ♻️ update dockerfile to include schema

* fix: 🐛 ensure authors have roles key

* refactor: ♻️ 🔊 convert some consola logs to logwatch

* fix: 🐛 roles are optional in save request

* chore: 🔊 remove dev logs

* doc: 📝 update changelog

* refactor: ♻️ revert roles key being optional

* fix: 🐛 add logwatch.start method

* fix: 🐛 ensure contrib and authros have roles

* fix: 🐛 CWL handles multiple installations

* refactor: ♻️ update log error

* feat: ✨ purge zenodo token when sign in is required

* fix: 🐛 make login fn asyncronous

* refactor: 🎨 update spacing and color of validation results button

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* chore: 📝 Update CITATION.cff with Zenodo identifier

* chore: 📝 Update codemeta.json with Zenodo identifier

* fix: 🐛 bad logwatch calls removed

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: codefair-io[bot] <165336008+codefair-io[bot]@users.noreply.github.com>
slugb0t added a commit that referenced this pull request Dec 12, 2024
… Use Logwatch (#120)

* refactor: ♻️ transfer validation api to codefair repo (#106)

* 🚚 chore: rename `validator-api` to `validator`

* 👷 ci: add validator deploy

* 👷 ci: add validator healthcheck

* 👷 ci: add validator deploy for prod

* refactor: ♻️ update codefair name

* feat: ✨ Metadata + license validators + bug patches (#107)

* merge: 🔀 merge main to staging

* refactor: ♻️ 🐛 Codefair 3.1.0 (#89)

* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: ♻️ safety checks for protected middleware

* refacotr: ♻️ update protectRoute to redirect to login when no user or session

* feat: :fix: redirect to login if not signed in

* refactor: ♻️ remove import

* chore: 🔊 🔨 remove logs

* docs: 📝 update changelog

* fix: 🐛 check license content all times

* fix: 🐛 update on zenodo ui page

* feat: ✨ delete branch after pr has been closed/merged

* chore: 🔨 spacing in changelog

* wip: 🚧 individual validation requests for license and metadata

* feat: ✨ license validation endpoint

* wip: 🚧 creating updated metadata validation

* wip: 🚧 patches for metadata revalidation workflow

* wip: 🚧 validation for codemeta

* doc: 🔖 jsdoc comments on fns

* fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata

* fix: 🐛 preserve authors and contributors from codemeta

* feat: ✨ re-validated codemeta from repo dashboard

* fix: 🐛 await metadata validation

* feat: ✨ codemeta validation extended with microservice validator

* refactor: ♻️ update timestamps to be unix format

* feat: ✨ clean privatekey env before use

* refactor: ♻️ update cwl validation endpoint

* wip: 🚧 send validation message to db

* feat: ✨ create migrations for metadata validation messages

* wip: 🚧 creating json schema for codemeta.json validations

* 👷 ci: setup deployment environments (#101)

* 👷 ci: setup for staging env (#103)

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: slugb0t <wheresdorian@gmail.com>
fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 adjust env variables used after env changes

* 👷 ci: cleanup dockerfile

* feat: ✨ codemeta schema first draft

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: cleanup dockerfile

* 👷 ci: fix staging deploys (#104)

* wip: 🚧 abstracting cwl workflow

* refactor: ♻️ update codemeta schema to validate against the raw codemeta.json files

* refactor: ♻️ update codemeta schema for additional fields

* feat: ✨ validating raw content of codemeta.json file for 3.0

* refactor: ♻️ create required fields for codemeta schema

* wip: 🚧 testing validation responses for db

* handle codemeta.json 3.0 and 2.0 versioning

* fix: 🐛 correct branch watch for staging deployment action

* doc: 🔖 update changelog for 3.2.0 release

* feat: ✨ align bot prisma with ui

* fix: 🐛 bug patch for cwl workflow

* feat: ✨ metadata workflow update

* refactor: ♻️ preserving authors and contributors

* wip: 🚧 update the metadata workflow after discussions

* fix: 🐛 don't create cwlobject twice

* refactor: ♻️ send 200 status when invalid codemeta

* refactor: ♻️ update codemeta validation schema

* refactor: ♻️ do not revalidate metadata files for push events unless metadata files are updated themselves

* wip: 🚧 seperate rerun validation with regather information

* wip: 🚧 remove command from issue dashboard if error occurs (allows retry)

* refactor: ♻️ update the issue body after successful validation (remove the command from the issue body)

* refactor: ♻️ add additional key to codemeta schema

* refactor: ♻️ remove the regather options from the UI as validation is still needed when regathering

* fix: 🐛 pr button updated with new links

* fix: 🐛 patch variable declaration not in scope

* refactor: ♻️ update on the dropdown icons

* refactor: ♻️ update the keys of the cwl object

* refactor: ♻️ update the getcwlfiles function

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* fix: 🐛 use the correct env variable for private key

* fix: 🐛 Codefair v3.2.0 finalization (#113)

* fix: 🐛 correct cwlObject variables in push event

* fix: 🐛 better error message in metadata workflow + collect missing fields from codemeta.json

* fix: 🐛 apply await to async function call

* refactor: ♻️ removed unused imports

* refactor: ♻️ add try catch in then statement of promise

* fix: 🐛 missing fields in codemeta gathering + add error handling for convertCitationForDB fn

* refactor: ♻️ add try catch to renderer to preserve errors

* fix: 🐛 preserve metadata validation results in db

* wip: 🚧 validation results being displayed through the repo dashboard

* wip: 🚧 displaying metadata validation results in seperate pages

* feat: ✨ validation page for codemeta

* fix: 🐛 patch fundingCode not being preserved from codemeta

* wip: 🚧 final design for validation results

* feat: ✨ add view validation results conditionally

* test: ⚗️ ensuring validation progresses accordingly

* feat: ✨ popover messages for metadata badges

* feat: ✨ if metadata file fails to parse then update validation message

* fix: 🐛 update schema to handle 2.0 and 3.0 authors

* style: 🎨 formatting

* fix: 🐛 add releaseNotes key to schema for 3.0 versions

* refactor: ✏️ change wording

* fix: 🐛 validate metadata file that was updated only on push events

* chore: 📝 remove test logs

* fix: 🐛 migrate db during deployment

* fix: 🐛 revert

* fix: 🐛 typo on dockerfile

* refactor: ♻️ use npm instead of yarn for migration

* refactor: ♻️ access db url during prisma build

* refactor: ♻️ apply node env

* 💚 ci: copy package json

* 💚 ci: revert arg

* 💚 ci: add prisma migrate to ci

* 💚 ci: add prisma migrate to ci

* 👷 ci: update dockerfile

* refactor: ♻️ use deployed validator

* fix: 🐛 when license is updated validate metadata files

* fix: 🐛 validation returns codemeta version on errors

* 🐛 fix: add basic logwatch

* fix: 🐛 add @type key for 2.0 codemeta.json files

* refactor: ♻️ updated required fields for codemeta schmea

* 🐛 fix: add logwatch support

* 🐛 fix: add json to logwatch

* fix: 🐛 patch json parse issue

* fix: 🐛 update logging parameters

* refactor: ♻️ point a folder above for codemeta-schema

* refactor: ♻️ update dockerfile to include schema

* fix: 🐛 ensure authors have roles key

* refactor: ♻️ 🔊 convert some consola logs to logwatch

* fix: 🐛 roles are optional in save request

* chore: 🔊 remove dev logs

* doc: 📝 update changelog

* refactor: ♻️ revert roles key being optional

* fix: 🐛 add logwatch.start method

* fix: 🐛 ensure contrib and authros have roles

* fix: 🐛 CWL handles multiple installations

* refactor: ♻️ update log error

* feat: ✨ purge zenodo token when sign in is required

* fix: 🐛 make login fn asyncronous

* refactor: 🎨 update spacing and color of validation results button

* fix: 🐛 bad logwatch call removed

* chore: 🔨 sync main to staging (#118)

* fix: 🐛 Zenodo callback issue resolved with purging token before sign in (#116)

* refactor: ♻️ transfer validation api to codefair repo (#106)

* 🚚 chore: rename `validator-api` to `validator`

* 👷 ci: add validator deploy

* 👷 ci: add validator healthcheck

* 👷 ci: add validator deploy for prod

* refactor: ♻️ update codefair name

* feat: ✨ Metadata + license validators + bug patches (#107)

* merge: 🔀 merge main to staging

* refactor: ♻️ 🐛 Codefair 3.1.0 (#89)

* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: ♻️ safety checks for protected middleware

* refacotr: ♻️ update protectRoute to redirect to login when no user or session

* feat: :fix: redirect to login if not signed in

* refactor: ♻️ remove import

* chore: 🔊 🔨 remove logs

* docs: 📝 update changelog

* fix: 🐛 check license content all times

* fix: 🐛 update on zenodo ui page

* feat: ✨ delete branch after pr has been closed/merged

* chore: 🔨 spacing in changelog

* wip: 🚧 individual validation requests for license and metadata

* feat: ✨ license validation endpoint

* wip: 🚧 creating updated metadata validation

* wip: 🚧 patches for metadata revalidation workflow

* wip: 🚧 validation for codemeta

* doc: 🔖 jsdoc comments on fns

* fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata

* fix: 🐛 preserve authors and contributors from codemeta

* feat: ✨ re-validated codemeta from repo dashboard

* fix: 🐛 await metadata validation

* feat: ✨ codemeta validation extended with microservice validator

* refactor: ♻️ update timestamps to be unix format

* feat: ✨ clean privatekey env before use

* refactor: ♻️ update cwl validation endpoint

* wip: 🚧 send validation message to db

* feat: ✨ create migrations for metadata validation messages

* wip: 🚧 creating json schema for codemeta.json validations

* 👷 ci: setup deployment environments (#101)

* 👷 ci: setup for staging env (#103)

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: slugb0t <wheresdorian@gmail.com>
fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 adjust env variables used after env changes

* 👷 ci: cleanup dockerfile

* feat: ✨ codemeta schema first draft

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: cleanup dockerfile

* 👷 ci: fix staging deploys (#104)

* wip: 🚧 abstracting cwl workflow

* refactor: ♻️ update codemeta schema to validate against the raw codemeta.json files

* refactor: ♻️ update codemeta schema for additional fields

* feat: ✨ validating raw content of codemeta.json file for 3.0

* refactor: ♻️ create required fields for codemeta schema

* wip: 🚧 testing validation responses for db

* handle codemeta.json 3.0 and 2.0 versioning

* fix: 🐛 correct branch watch for staging deployment action

* doc: 🔖 update changelog for 3.2.0 release

* feat: ✨ align bot prisma with ui

* fix: 🐛 bug patch for cwl workflow

* feat: ✨ metadata workflow update

* refactor: ♻️ preserving authors and contributors

* wip: 🚧 update the metadata workflow after discussions

* fix: 🐛 don't create cwlobject twice

* refactor: ♻️ send 200 status when invalid codemeta

* refactor: ♻️ update codemeta validation schema

* refactor: ♻️ do not revalidate metadata files for push events unless metadata files are updated themselves

* wip: 🚧 seperate rerun validation with regather information

* wip: 🚧 remove command from issue dashboard if error occurs (allows retry)

* refactor: ♻️ update the issue body after successful validation (remove the command from the issue body)

* refactor: ♻️ add additional key to codemeta schema

* refactor: ♻️ remove the regather options from the UI as validation is still needed when regathering

* fix: 🐛 pr button updated with new links

* fix: 🐛 patch variable declaration not in scope

* refactor: ♻️ update on the dropdown icons

* refactor: ♻️ update the keys of the cwl object

* refactor: ♻️ update the getcwlfiles function

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* fix: 🐛 use the correct env variable for private key

* fix: 🐛 Codefair v3.2.0 finalization (#113)

* fix: 🐛 correct cwlObject variables in push event

* fix: 🐛 better error message in metadata workflow + collect missing fields from codemeta.json

* fix: 🐛 apply await to async function call

* refactor: ♻️ removed unused imports

* refactor: ♻️ add try catch in then statement of promise

* fix: 🐛 missing fields in codemeta gathering + add error handling for convertCitationForDB fn

* refactor: ♻️ add try catch to renderer to preserve errors

* fix: 🐛 preserve metadata validation results in db

* wip: 🚧 validation results being displayed through the repo dashboard

* wip: 🚧 displaying metadata validation results in seperate pages

* feat: ✨ validation page for codemeta

* fix: 🐛 patch fundingCode not being preserved from codemeta

* wip: 🚧 final design for validation results

* feat: ✨ add view validation results conditionally

* test: ⚗️ ensuring validation progresses accordingly

* feat: ✨ popover messages for metadata badges

* feat: ✨ if metadata file fails to parse then update validation message

* fix: 🐛 update schema to handle 2.0 and 3.0 authors

* style: 🎨 formatting

* fix: 🐛 add releaseNotes key to schema for 3.0 versions

* refactor: ✏️ change wording

* fix: 🐛 validate metadata file that was updated only on push events

* chore: 📝 remove test logs

* fix: 🐛 migrate db during deployment

* fix: 🐛 revert

* fix: 🐛 typo on dockerfile

* refactor: ♻️ use npm instead of yarn for migration

* refactor: ♻️ access db url during prisma build

* refactor: ♻️ apply node env

* 💚 ci: copy package json

* 💚 ci: revert arg

* 💚 ci: add prisma migrate to ci

* 💚 ci: add prisma migrate to ci

* 👷 ci: update dockerfile

* refactor: ♻️ use deployed validator

* fix: 🐛 when license is updated validate metadata files

* fix: 🐛 validation returns codemeta version on errors

* 🐛 fix: add basic logwatch

* fix: 🐛 add @type key for 2.0 codemeta.json files

* refactor: ♻️ updated required fields for codemeta schmea

* 🐛 fix: add logwatch support

* 🐛 fix: add json to logwatch

* fix: 🐛 patch json parse issue

* fix: 🐛 update logging parameters

* refactor: ♻️ point a folder above for codemeta-schema

* refactor: ♻️ update dockerfile to include schema

* fix: 🐛 ensure authors have roles key

* refactor: ♻️ 🔊 convert some consola logs to logwatch

* fix: 🐛 roles are optional in save request

* chore: 🔊 remove dev logs

* doc: 📝 update changelog

* refactor: ♻️ revert roles key being optional

* fix: 🐛 add logwatch.start method

* fix: 🐛 ensure contrib and authros have roles

* fix: 🐛 CWL handles multiple installations

* refactor: ♻️ update log error

* feat: ✨ purge zenodo token when sign in is required

* fix: 🐛 make login fn asyncronous

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: 🎨 update view validation & edit metadata buttons (#117)

* refactor: ♻️ transfer validation api to codefair repo (#106)

* 🚚 chore: rename `validator-api` to `validator`

* 👷 ci: add validator deploy

* 👷 ci: add validator healthcheck

* 👷 ci: add validator deploy for prod

* refactor: ♻️ update codefair name

* feat: ✨ Metadata + license validators + bug patches (#107)

* merge: 🔀 merge main to staging

* refactor: ♻️ 🐛 Codefair 3.1.0 (#89)

* fix: 🐛 patch removing pull_request.closed bug on metadata pr merge

* fix: 🐛 don't update firstPublished in the codemeta file + better logs

* fix: 🐛 patch error on reading db entry when it doesn't exist

* chore: 🔊 better log on successful Zenodo publish

* style: 🎨 margins between text and icon

* feat: ✨ links to the list of tools used for codefair in /codefair

* refactor: ✨ ♻️ abstract the license validation fn

* doc: 🔖 update changelog

* feat: ✨ ♻️ abstraction to zenodo workflow

* wip: 🚧 abstracting zenodo workflow

* feat: ✨ add help link in the Zenodo release page

* refactor: ♻️ ✨ abstract out github release functions

* refactor: 🔊 ♻️ improve error tracing in metadata file

* chore: 🔨 remove todo

* refactor: ✨ ♻️ abstracted Zenodo workflow (bot)

* wip: 🚧 save custom license content when no assertion is provided

* ✨ feat: add support for custom licenses (#90)

* ✨ feat: add support for custom licenses

* 🐛 fix: reset citation license field

* 🐛 fix: update zenodo workflow for custom licenses

* fix: 🐛 license is valid with custom license

* feat: ✨ custom license template

* ✨ feat: update codemeta, license and cwl ui paths (#91)

* ✨ feat: update meta paths for consistency

* 🚚 fix: updatel icense request path

* ✨ feat: add support for custom license title (#92)

* refactor: ♻️ ✨ new patches for license, cwl, metadata UI's

* refactor: ✨ ♻️ apply migrations from UI to bot

* feat: ✨ request custom license title from user

* refactor: ♻️ hide message box when custom license title is blank

* refactor: ♻️ issue dashboard requests custom title

* feat: ✨ Saving custom title (#93)

* feat: ✨ save custom title option

* refactor: :recyle: reuse saveLicenseDraft for storing custom license title

* refactor: ♻️ join draft and save title buttons together

* refactor: ♻️ use naive-ui's properties for styling

* chore: 🔨 remove typo

* chore: 🔨 remove unused variables

* feat: ✨ toasts for custom title saved button

* refactor: ♻️ function rename

* feat: ✨ create Zenodo metadata fn handles custom licenses

* feat: ✨ custom license reference for archival workflow

* refactor: ♻️ stop creating identifiers for new db entries

* refactor: ♻️ 🐛 revert allowing custom licenses for zenodo

* refactor: ♻️ Custom License Support (#94)

* refactor: ♻️ ✨ custom title saved updates dashboard, disable create release btn when custom license

* refactor: ♻️ block progress of fair release if license is custom

* feat: ✨ listener for when custom license title is saved through UI

* feat: ✨ prevent fair release if not fair compliant

* refactor: ♻️ improve license validation and update template text for custom licenses

* refactor: ♻️ re-render issue from ui side

* refactor: ♻️ update to message explaining custom licenses

* db calls running in parallel

* fix: 🐛 prevent Zendo section from being seen when the license is custom

* fix: 🐛 trim license content before comparison

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* refactor: ♻️ safety checks for protected middleware

* refacotr: ♻️ update protectRoute to redirect to login when no user or session

* feat: :fix: redirect to login if not signed in

* refactor: ♻️ remove import

* chore: 🔊 🔨 remove logs

* docs: 📝 update changelog

* fix: 🐛 check license content all times

* fix: 🐛 update on zenodo ui page

* feat: ✨ delete branch after pr has been closed/merged

* chore: 🔨 spacing in changelog

* wip: 🚧 individual validation requests for license and metadata

* feat: ✨ license validation endpoint

* wip: 🚧 creating updated metadata validation

* wip: 🚧 patches for metadata revalidation workflow

* wip: 🚧 validation for codemeta

* doc: 🔖 jsdoc comments on fns

* fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 rerender template will stop using old links

* doc: 📝 update CHANGELOG

* doc: 📝 update metadata

* fix: 🐛 preserve authors and contributors from codemeta

* feat: ✨ re-validated codemeta from repo dashboard

* fix: 🐛 await metadata validation

* feat: ✨ codemeta validation extended with microservice validator

* refactor: ♻️ update timestamps to be unix format

* feat: ✨ clean privatekey env before use

* refactor: ♻️ update cwl validation endpoint

* wip: 🚧 send validation message to db

* feat: ✨ create migrations for metadata validation messages

* wip: 🚧 creating json schema for codemeta.json validations

* 👷 ci: setup deployment environments (#101)

* 👷 ci: setup for staging env (#103)

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: slugb0t <wheresdorian@gmail.com>
fix: 🐛 template renderer will stop using old links (#99)

* fix: 🐛 adjust env variables used after env changes

* 👷 ci: cleanup dockerfile

* feat: ✨ codemeta schema first draft

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: cleanup dockerfile

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: setup for staging env

* 👷 ci: cleanup dockerfile

* 👷 ci: fix staging deploys (#104)

* wip: 🚧 abstracting cwl workflow

* refactor: ♻️ update codemeta schema to validate against the raw codemeta.json files

* refactor: ♻️ update codemeta schema for additional fields

* feat: ✨ validating raw content of codemeta.json file for 3.0

* refactor: ♻️ create required fields for codemeta schema

* wip: 🚧 testing validation responses for db

* handle codemeta.json 3.0 and 2.0 versioning

* fix: 🐛 correct branch watch for staging deployment action

* doc: 🔖 update changelog for 3.2.0 release

* feat: ✨ align bot prisma with ui

* fix: 🐛 bug patch for cwl workflow

* feat: ✨ metadata workflow update

* refactor: ♻️ preserving authors and contributors

* wip: 🚧 update the metadata workflow after discussions

* fix: 🐛 don't create cwlobject twice

* refactor: ♻️ send 200 status when invalid codemeta

* refactor: ♻️ update codemeta validation schema

* refactor: ♻️ do not revalidate metadata files for push events unless metadata files are updated themselves

* wip: 🚧 seperate rerun validation with regather information

* wip: 🚧 remove command from issue dashboard if error occurs (allows retry)

* refactor: ♻️ update the issue body after successful validation (remove the command from the issue body)

* refactor: ♻️ add additional key to codemeta schema

* refactor: ♻️ remove the regather options from the UI as validation is still needed when regathering

* fix: 🐛 pr button updated with new links

* fix: 🐛 patch variable declaration not in scope

* refactor: ♻️ update on the dropdown icons

* refactor: ♻️ update the keys of the cwl object

* refactor: ♻️ update the getcwlfiles function

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* fix: 🐛 use the correct env variable for private key

* fix: 🐛 Codefair v3.2.0 finalization (#113)

* fix: 🐛 correct cwlObject variables in push event

* fix: 🐛 better error message in metadata workflow + collect missing fields from codemeta.json

* fix: 🐛 apply await to async function call

* refactor: ♻️ removed unused imports

* refactor: ♻️ add try catch in then statement of promise

* fix: 🐛 missing fields in codemeta gathering + add error handling for convertCitationForDB fn

* refactor: ♻️ add try catch to renderer to preserve errors

* fix: 🐛 preserve metadata validation results in db

* wip: 🚧 validation results being displayed through the repo dashboard

* wip: 🚧 displaying metadata validation results in seperate pages

* feat: ✨ validation page for codemeta

* fix: 🐛 patch fundingCode not being preserved from codemeta

* wip: 🚧 final design for validation results

* feat: ✨ add view validation results conditionally

* test: ⚗️ ensuring validation progresses accordingly

* feat: ✨ popover messages for metadata badges

* feat: ✨ if metadata file fails to parse then update validation message

* fix: 🐛 update schema to handle 2.0 and 3.0 authors

* style: 🎨 formatting

* fix: 🐛 add releaseNotes key to schema for 3.0 versions

* refactor: ✏️ change wording

* fix: 🐛 validate metadata file that was updated only on push events

* chore: 📝 remove test logs

* fix: 🐛 migrate db during deployment

* fix: 🐛 revert

* fix: 🐛 typo on dockerfile

* refactor: ♻️ use npm instead of yarn for migration

* refactor: ♻️ access db url during prisma build

* refactor: ♻️ apply node env

* 💚 ci: copy package json

* 💚 ci: revert arg

* 💚 ci: add prisma migrate to ci

* 💚 ci: add prisma migrate to ci

* 👷 ci: update dockerfile

* refactor: ♻️ use deployed validator

* fix: 🐛 when license is updated validate metadata files

* fix: 🐛 validation returns codemeta version on errors

* 🐛 fix: add basic logwatch

* fix: 🐛 add @type key for 2.0 codemeta.json files

* refactor: ♻️ updated required fields for codemeta schmea

* 🐛 fix: add logwatch support

* 🐛 fix: add json to logwatch

* fix: 🐛 patch json parse issue

* fix: 🐛 update logging parameters

* refactor: ♻️ point a folder above for codemeta-schema

* refactor: ♻️ update dockerfile to include schema

* fix: 🐛 ensure authors have roles key

* refactor: ♻️ 🔊 convert some consola logs to logwatch

* fix: 🐛 roles are optional in save request

* chore: 🔊 remove dev logs

* doc: 📝 update changelog

* refactor: ♻️ revert roles key being optional

* fix: 🐛 add logwatch.start method

* fix: 🐛 ensure contrib and authros have roles

* fix: 🐛 CWL handles multiple installations

* refactor: ♻️ update log error

* feat: ✨ purge zenodo token when sign in is required

* fix: 🐛 make login fn asyncronous

* refactor: 🎨 update spacing and color of validation results button

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>

* chore: 📝 Update CITATION.cff with Zenodo identifier

* chore: 📝 Update codemeta.json with Zenodo identifier

* fix: 🐛 bad logwatch calls removed

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: codefair-io[bot] <165336008+codefair-io[bot]@users.noreply.github.com>

* refactor: ♻️ 🔏 🔊 🧑‍💻 Add Environment Variables and Convert Logging to Use Logwatch (#119)

* dev: 🧑‍💻 🔐 add env variables for logwatch and validator

* refactor: ♻️ 🔊 replace consola with logwatch

* doc: 📝 update CHANGELOG

---------

Co-authored-by: Sanjay Soundarajan <sanjay.16@live.com>
Co-authored-by: codefair-io[bot] <165336008+codefair-io[bot]@users.noreply.github.com>
@slugb0t slugb0t deleted the 3.2.0 branch December 12, 2024 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants