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

github: github integration #2249

Closed
9 of 11 tasks
alejandromumo opened this issue Jun 6, 2023 · 3 comments
Closed
9 of 11 tasks

github: github integration #2249

alejandromumo opened this issue Jun 6, 2023 · 3 comments
Assignees
Labels
Milestone

Comments

@alejandromumo
Copy link
Member

alejandromumo commented Jun 6, 2023

Taken from https://github.com/zenodo/rdm-project/issues/10

Documentation

I have drafted a temporary doc using a CodiMD. To be moved to a proper documentation format after we finish the epic.

Specifications

    • Users connect their GitHub accounts via OAuth
  • User and organization repositories list fetched to populate GitHub settings page; synchronized every 24h or on demand
  • Webhooks created on repository enabling
  • On a new (pre)release publish:
    • Event payload received on Zenodo
    • Metadata fetched for the release
      • From basic information (release title, version tag, authors, links)
      • From metadata files like .zenodo.json and CITATION.cff
    • ZIP ball file of the release downloaded
    • New version record is published with metadata and ZIP ball file
  • Release history tracked in GitHub settings for each repository
  • Release errors retried and tracked
  • Still possible to create "manual" versions, or have drafts in progress that don't interrupt the workflow
  • GitHub DOI badge always pointing to the latest DOI/version
  • GitHub Settings UI pages (repositories list and repository releases) contain some interactive elements currently implemented with jQuery
    • Toggle button for enabling/disabling integration for repositories
    • "Sync now..." button, triggering repositories fetch from the GitHub API

Prerequisites

  • All metadata fields have to be part of the record/deposit schema (since they can be included in .zenodo.json files)

Next steps

  1. Webhooks module review and integration + GPL -> MIT
  2. GitHub module review and integration + GPL -> MIT
    a. Fully working backend and programmatic API
    b. Metadata extraction and mapping (translation of .zenodo.json, and updated CITATION.cff mapping) to InvenioRDM datamodel
    c. Integrate publishing step with the RDMRecord service
  3. Migration (and possible rewrite) of interactive UI parts into React

Nice to haves:

  • Admin for new admin interface
  • REST API to support new admin interface + permissions

Current

Image

Image

CITATION.cff generation

Image

Future

@github-actions
Copy link
Contributor

This issue was automatically marked as stale.

@github-actions github-actions bot added the stale No activity for more than 60 days. label Sep 16, 2023
@kpsherva kpsherva added this to the v12 milestone Sep 20, 2023
@Samk13 Samk13 removed the stale No activity for more than 60 days. label Jan 11, 2024
Copy link
Contributor

This issue was automatically marked as stale.

@github-actions github-actions bot added the stale No activity for more than 60 days. label Mar 12, 2024
@Samk13 Samk13 removed the stale No activity for more than 60 days. label Mar 12, 2024
@alejandromumo
Copy link
Member Author

Closing this issue since the feature was already migrated to RDM.

Still is missing docs, but that is being tracked separately as part of the v12 release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants