Skip to content

Commit

Permalink
Add base (#1)
Browse files Browse the repository at this point in the history
* Add GitHub workflows for YAML consolidation and validation, along with schema definition

* Add Massa Explorer configuration to YAML file

* Attempt to fix schema

* Attempt to fix schema

* Update README

* Enhance README with detailed category descriptions for website classification
  • Loading branch information
thomas-senechal authored Nov 21, 2024
1 parent f0fe2fa commit b0ac43e
Show file tree
Hide file tree
Showing 5 changed files with 163 additions and 2 deletions.
34 changes: 34 additions & 0 deletions .github/workflows/consolidate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Consolidate YAML Files

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
consolidate_yaml:
runs-on: ubuntu-22.04

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Consolidate YAML files
uses: mikefarah/yq@v4
with:
cmd: yq eval-all '. as $item ireduce ([]; . + [$item])' websites/*.yaml > websites.yaml

- name: Upload websites.yaml as artifact
uses: actions/upload-artifact@v4
with:
path: websites.yaml

- name: Commit and push consolidated file
if: github.ref == 'refs/heads/main'
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Auto-update websites.yaml"
file_pattern: websites.yaml
24 changes: 24 additions & 0 deletions .github/workflows/validate_yaml.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Validate websites YAMLs

on:
pull_request:
paths:
- 'websites/**/*.yaml'

jobs:
validate_yaml:
runs-on: ubuntu-22.04

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Yamale
run: |
pip install yamale
- name: Validate YAML against schema
run: |
for file in websites/*.yaml; do
yamale -s schema.yaml "$file" || exit 1
done
85 changes: 83 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,83 @@
# Deweb-Websites
List of Websites hosted on DeWeb
# Deweb Websites

This GitHub repository is a collection of DeWeb websites that can be used by people and tools to help users access websites stored on the Massa Blockchain. For more information about DeWeb, please visit the [Massa DeWeb Documentation](https://docs.massa.net/docs/deweb/home).

## Adding a Website

To add your DeWeb website to this repository, please follow these steps:

1. Create a new YAML file in the `websites` directory.
2. Name the file to match your website's name.
3. Ensure the file follows the format specified in `schema.yaml`.
4. Submit a pull request with your new file.
5. The pull request will be tested by the CI pipeline to ensure it is valid.
6. If your pull request is valid, it will be reviewed by the Massa team and merged.

### Example Website File

Here is an example of a website file:

```yaml
title: "Massa Explorer"
mns: "explorer.massa"
desc: "Official Massa blockchain explorer."
owner: "Massa Team"
contact:
email: "[email protected]"
category:
- "Official"
- "Infrastructure"
```
You can also take example on the existing websites in the
websites
directory.
### Valid Contact Information
A valid contact is required in the website file. The contact information can include an email, Discord, or Telegram handle. Here is the format for the contact section:
```yaml
contact:
email: "[email protected]"
discord: "username"
telegram: "@username"
```
You must include at least one of the contact options in your website file.
### Categories
Each website must have at least one category from the list of available categories. Here are the available categories with descriptions:
| Category | Description |
|----------------|-----------------------------------------------------------------------------|
| `Official` | Massa Official websites (e.g., Explorer, MNS, etc.) |
| `Massa` | Massa related websites (e.g., Massa specific explorers, Massa specific tools, etc.) |
| `DeFi` | Decentralized Finance platforms (e.g., DEXs, lending protocols) |
| `NFT` | Non-Fungible Token platforms (e.g., marketplaces, galleries) |
| `GameFi` | Blockchain-based games and play-to-earn platforms |
| `Governance` | Decentralized Autonomous Organizations |
| `Social` | Social platforms or media (e.g., Twitter/Facebook clones) |
| `Art` | Art-related platforms (e.g., digital art galleries) |
| `Tool` | General-purpose tools (e.g., wallets, explorers, or utilities) |
| `E-Commerce` | Platforms for decentralized online shopping |
| `Infrastructure`| Blockchain infrastructure (e.g., nodes, APIs, oracles) |
| `Education` | Platforms for blockchain/web3 education |
| `Media` | News, blogs, and content platforms related to web3 |
| `Protocol` | Blockchain or layer-specific protocols |
| `Aggregator` | Aggregators (e.g., price tracking, DeFi aggregators) |
| `Marketplace` | General marketplaces (not specific to NFTs) |
| `Analytics` | Tools for blockchain data analysis or visualization |
| `Community` | Community-oriented platforms (forums, chat rooms, etc.) |
| `Identity` | Platforms for decentralized identity and verification |
| `Other` | Catch-all for platforms that don't fit into the above |

Make sure to include at least one of these categories in your website file.

## Accessing the Full List of Websites
Developers can access the full list of websites using the raw file available at the following URL:

https://github.com/massalabs/Deweb-Providers/raw/refs/heads/main/websites.yaml
13 changes: 13 additions & 0 deletions schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
title: str(required=True)
mns: str(required=True, regex='^(?!-)[a-z0-9-]{2,100}\\.massa$')
desc: str(required=True)
owner: str(required=True)
contact: map(required=True)
contact:
email: str(required=False, regex='^[\\w\\.-]+@[\\w\\.-]+\\.[a-zA-Z]{2,}$')
discord: str(required=False, regex='^[a-zA-Z0-9._-]{2,32}$') # Updated regex
telegram: str(required=False, regex='^@\\w{5,32}$')
category: list(enum('Official', 'Massa', 'DeFi', 'NFT', 'GameFi', 'Governance',
'Social', 'Art', 'Tool', 'E-Commerce', 'Infrastructure',
'Education', 'Media', 'Protocol', 'Aggregator', 'Marketplace',
'Analytics', 'Community', 'Identity', 'Other'), required=True, min=1, max=5)
9 changes: 9 additions & 0 deletions websites/explorer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
title: "Massa Explorer"
mns: "explorer.massa"
desc: "Official Massa blockchain explorer."
owner: "Massa Team"
contact:
email: "[email protected]"
category:
- "Official"
- "Infrastructure"

0 comments on commit b0ac43e

Please sign in to comment.