<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ontology Curation - Github Sync]]></title><description><![CDATA[<h2>Concept</h2>
<p dir="auto">Each working ontology is stored as a <strong>public repository</strong> in the <a href="https://github.com/mds-ontologies" rel="nofollow ugc">mds-ontologies</a> organization. The canonical RDF file is <code>ontology.ttl</code> at the repo root. Fuseki holds the live graph; Git holds the versioned snapshot you commit and share. All kinds of ontology curation methods in MAT-X will use this.</p>
<h3>GitHub personal access token (fine-grained)</h3>
<p dir="auto">MAT-X uses a <strong>fine-grained</strong> token (not a classic token). You must be a member of <code>mds-ontologies</code> before it appears in the token wizard. An org admin can invite you under the organization's <strong>People</strong> tab on GitHub.</p>
<p dir="auto">Open <a href="https://github.com/settings/personal-access-tokens/new" rel="nofollow ugc">github.com/settings/personal-access-tokens/new</a><br />
(or: your avatar -&gt; <strong>Settings</strong> -&gt; <strong>Developer settings</strong> -&gt; <strong>Personal access tokens</strong> -&gt; <strong>Fine-grained tokens</strong> -&gt; <strong>Generate new token</strong>).</p>
<h4>1) Token name and expiration</h4>
<p dir="auto">Choose any name (e.g. <code>Mat-X ontology curation</code>) and an expiration you are comfortable with. You can rotate the token later in Profile.</p>
<h4>2) Resource owner - this selects <code>mds-ontologies</code></h4>
<p dir="auto">Under <strong>Resource owner</strong>, open the dropdown. You will see your personal GitHub username and, if you are a member, organizations such as <code>mds-ontologies</code>.</p>
<ul>
<li>Select <strong>mds-ontologies</strong>, not your personal username. The token is then scoped to that organization's repositories.</li>
<li>If <code>mds-ontologies</code> is missing, you are not a member yet - ask an org admin to add you, then refresh and restart the wizard.</li>
</ul>
<h4>3) Repository access</h4>
<p dir="auto">Choose <strong>All repositories</strong> (essential as otherwise the options below do not work). MAT-X creates a new public repo per working ontology (e.g. <code>mds-ontologies/cement-model</code>), so the token must cover repositories that do not exist yet.</p>
<p dir="auto"><strong>Only select repositories</strong> works only if you manually add every ontology repo to the token.</p>
<h4>4) Repository permissions</h4>
<p dir="auto">Set these permissions under <strong>Repository permissions</strong>:</p>
<ul>
<li><strong>Contents</strong>: <strong>Read and write</strong> - clone, pull, commit, and push <code>ontology.ttl</code>.</li>
<li><strong>Metadata</strong>: <strong>Read-only</strong> - usually required automatically.</li>
<li><strong>Administration</strong>: <strong>Read and write</strong> - allows MAT-X to create new public repositories in <code>mds-ontologies</code>.</li>
<li>** Issues**: ** Read and write** allows MAT-X to create issues in case you are unhappy with developments</li>
</ul>
<p dir="auto">You do <strong>not</strong> Pull requests, Actions, or other permissions for ontology curation.</p>
<h4>5) Generate token and authorize SSO (if prompted)</h4>
<p dir="auto">Click <strong>Generate token</strong> and copy it immediately (GitHub shows it once). If your organization uses SAML SSO, go to <a href="https://github.com/settings/tokens?type=beta" rel="nofollow ugc">Settings -&gt; Personal access tokens -&gt; Fine-grained tokens</a>, find the new token, click <strong>Configure SSO</strong>, and authorize <strong>mds-ontologies</strong>.</p>
<p dir="auto">Without SSO authorization, API calls return <code>403</code>.</p>
<h3>Save the token in MAT-X Profile</h3>
<p dir="auto">On the <strong>Profile</strong> page (<code>/profile</code>), add an API credential:</p>
<ul>
<li>Vendor: GitHub (or any label containing <code>github</code>)</li>
<li>API URL: <code>https://api.github.com</code></li>
<li>API key: paste the fine-grained token</li>
</ul>
<p dir="auto">Keys are encrypted at rest with <code>NEXTAUTH_SECRET</code>. The server uses the first profile credential whose vendor or URL matches GitHub.</p>
<h4>Quick checklist</h4>
<pre><code class="language-text">Resource owner:     mds-ontologies  (not your username)
Repository access:  All repositories
Contents:           Read and write
Metadata:           Read-only
Administration:     Read and write
Issues: Read and write 
SSO:                Authorized for mds-ontologies (if your org uses SAML)
</code></pre>
]]></description><link>https://community.mat-space.eu/topic/3/ontology-curation-github-sync</link><generator>RSS for Node</generator><lastBuildDate>Wed, 10 Jun 2026 11:46:49 GMT</lastBuildDate><atom:link href="https://community.mat-space.eu/topic/3.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 May 2026 19:14:50 GMT</pubDate><ttl>60</ttl></channel></rss>