... | ... | @@ -330,6 +330,45 @@ We are currently evaluating the possibility to offer the possibility to redirect |
|
|
|
|
|
Not available in gitlab
|
|
|
|
|
|
# Using the forge API (SOAP)
|
|
|
|
|
|
The forge API ( https://fusionforge.org/soap/# ) can be used to help retrieve some data programmatically (list of users for a project, releases names and metadata, ...).
|
|
|
|
|
|
Examples in python (using zeep to help build the SOAP client: https://pypi.org/project/zeep/ )
|
|
|
```python
|
|
|
# print names of users associated with a given project
|
|
|
from zeep import Client
|
|
|
|
|
|
client=Client("https://gforge.inria.fr/soap/index.php?wsdl")
|
|
|
session=client.service.login("<username here>","<password here>")
|
|
|
|
|
|
t=client.get_type("ns0:ArrayOfstring")
|
|
|
gid=client.service.getGroupsByName(session,t(["<insert project name here>"]))[0]["group_id"]
|
|
|
users=client.service.getGroupUsers(session,int(gid))
|
|
|
for user in users:
|
|
|
print(user["firstname"],user["lastname"])
|
|
|
client.service.logout(session)
|
|
|
```
|
|
|
|
|
|
```python
|
|
|
# list all releases of a given project
|
|
|
from zeep import Client
|
|
|
|
|
|
client=Client("https://gforge.inria.fr/soap/index.php?wsdl")
|
|
|
session=client.service.login("<username here>","<password here>")
|
|
|
t=client.get_type("ns0:ArrayOfstring")
|
|
|
group_id=int(client.service.getGroupsByName(session,t(["<insert project name here>"]))[0]["group_id"])
|
|
|
packages=client.service.getPackages(session,group_id)
|
|
|
for p in packages:
|
|
|
print("# Package: {} (id={})".format(p["name"],p["package_id"]))
|
|
|
releases=client.service.getReleases(session,group_id,p["package_id"])
|
|
|
for r in releases:
|
|
|
print("# Release: {} ({})".format(r["name"],time.ctime(r["release_date"])))
|
|
|
print("https://gforge.inria.fr/frs/download.php/zip/{}/{}-{}.zip".format(r["release_id"],p["name"],r["name"]))
|
|
|
```
|
|
|
|
|
|
Be aware that the forge API is known to be hard to use, and prone to bugs. ```userGetGroups``` does not work at all (you'll get an error 500 if you try).
|
|
|
|
|
|
# Alternatives to INRIA gitlab
|
|
|
|
|
|
* If you really need a close equivalent to INRIA forge, RENATER SourceSup might be an good alternative. It is based on FusionForge (like INRIA forge), offers git and subversion hosting, and is currently actively maintained. https://sourcesup.renater.fr/ INRIA members can directly create accounts on this forge through the Renater identity federation (french research and education organizations). Non INRIA members belonging to an organization of this identity federation can also directly create accounts. External users who don't have an account in this identity federation (for example from a foreign country) can create a CRU account, then login through the identity federation. There are a few notable differences between INRIA forge and SourceSup:
|
... | ... | |